All of lore.kernel.org
 help / color / mirror / Atom feed
* [m-c-s][PATCH] uwsgi: fixups for gcc 7.x
@ 2017-08-23 19:20 Mark Asselstine
  2017-08-24 13:59 ` Bruce Ashfield
  0 siblings, 1 reply; 2+ messages in thread
From: Mark Asselstine @ 2017-08-23 19:20 UTC (permalink / raw)
  To: meta-virtualization, bruce.ashfield

Apply several upstream patches to fixup fallthrough switch
statements. This fixes build failures such as:

| core/hash.c:44:13: error: this statement may fall through [-Werror=implicit-fallthrough=]
|            h ^= key[2] << 16;
|            ~~^~~~~~~~~~~~~~~
| core/hash.c:45:7: note: here
|        case 2:
|        ^~~~

Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
---
 ...icit-breaks-to-avoid-implicit-passthrough.patch | 50 ++++++++++++++++++++++
 ...icit-breaks-to-avoid-implicit-passthrough.patch | 50 ++++++++++++++++++++++
 meta-openstack/recipes-extended/uwsgi/uwsgi_git.bb |  2 +
 3 files changed, 102 insertions(+)
 create mode 100644 meta-openstack/recipes-extended/uwsgi/files/Add-explicit-breaks-to-avoid-implicit-passthrough.patch
 create mode 100644 meta-openstack/recipes-extended/uwsgi/files/more-Add-explicit-breaks-to-avoid-implicit-passthrough.patch

diff --git a/meta-openstack/recipes-extended/uwsgi/files/Add-explicit-breaks-to-avoid-implicit-passthrough.patch b/meta-openstack/recipes-extended/uwsgi/files/Add-explicit-breaks-to-avoid-implicit-passthrough.patch
new file mode 100644
index 0000000..4b9c015
--- /dev/null
+++ b/meta-openstack/recipes-extended/uwsgi/files/Add-explicit-breaks-to-avoid-implicit-passthrough.patch
@@ -0,0 +1,50 @@
+From 0a14d0f0425f00421a69f0ca8e09a92cfdfc6a36 Mon Sep 17 00:00:00 2001
+From: Paul Tagliamonte <paultag@gmail.com>
+Date: Mon, 7 Aug 2017 11:18:56 -0400
+Subject: [PATCH] Add explicit breaks to avoid implicit passthrough.
+
+commit 0a14d0f0425f00421a69f0ca8e09a92cfdfc6a36 from upstream
+git://github.com/unbit/uwsgi.git
+
+-Werror=implicit-fallthrough was added in gcc 7.1, which will
+throw a compile error if a switch has an implicit passthrough.
+
+Seeing as how this switch doesn't appear to depend on passthrough to
+function correctly, I've added explicit breaks to the switch.
+
+From https://gcc.gnu.org/gcc-7/changes.html:
+
+-Wimplicit-fallthrough warns when a switch case falls through. This
+warning has five different levels. The compiler is able to parse a wide
+range of fallthrough comments, depending on the level. It also handles
+control-flow statements, such as ifs. It's possible to suppress the
+warning by either adding a fallthrough comment, or by using a null
+statement: __attribute__ ((fallthrough)); (C, C++), or [[fallthrough]];
+(C++17), or [[gnu::fallthrough]]; (C++11/C++14). This warning is enabled
+by -Wextra.
+---
+ core/hash.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/core/hash.c b/core/hash.c
+index a1288fa..9ae6bd2 100644
+--- a/core/hash.c
++++ b/core/hash.c
+@@ -42,11 +42,14 @@ static uint32_t murmur2_hash(char *key, uint64_t keylen) {
+ 	switch (keylen) {
+ 		case 3:
+         		h ^= key[2] << 16;
++        		break;
+     		case 2:
+         		h ^= key[1] << 8;
++        		break;
+     		case 1:
+         		h ^= key[0];
+         		h *= 0x5bd1e995;
++        		break;
+     	}
+ 
+ 	h ^= h >> 13;
+-- 
+2.7.4
+
diff --git a/meta-openstack/recipes-extended/uwsgi/files/more-Add-explicit-breaks-to-avoid-implicit-passthrough.patch b/meta-openstack/recipes-extended/uwsgi/files/more-Add-explicit-breaks-to-avoid-implicit-passthrough.patch
new file mode 100644
index 0000000..5a885ed
--- /dev/null
+++ b/meta-openstack/recipes-extended/uwsgi/files/more-Add-explicit-breaks-to-avoid-implicit-passthrough.patch
@@ -0,0 +1,50 @@
+From 54666237455273e147eadb1904d261ed7624a8b6 Mon Sep 17 00:00:00 2001
+From: Paul Tagliamonte <tag@pault.ag>
+Date: Mon, 14 Aug 2017 15:42:15 -0400
+Subject: [PATCH] Add explicit breaks to avoid implicit passthrough.
+
+commit 54666237455273e147eadb1904d261ed7624a8b6 from upstream
+git://github.com/unbit/uwsgi.git
+
+-Werror=implicit-fallthrough was added in gcc 7.1, which will
+throw a compile error if a switch has an implicit passthrough.
+
+Seeing as how this switch doesn't appear to depend on passthrough to
+function correctly, I've added explicit breaks to the switch.
+
+From https://gcc.gnu.org/gcc-7/changes.html:
+
+-Wimplicit-fallthrough warns when a switch case falls through. This
+warning has five different levels. The compiler is able to parse a wide
+range of fallthrough comments, depending on the level. It also handles
+control-flow statements, such as ifs. It's possible to suppress the
+warning by either adding a fallthrough comment, or by using a null
+statement: __attribute__ ((fallthrough)); (C, C++), or [[fallthrough]];
+(C++17), or [[gnu::fallthrough]]; (C++11/C++14). This warning is enabled
+by -Wextra.
+---
+ core/routing.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/core/routing.c b/core/routing.c
+index 5887ec3..0cd6ea6 100644
+--- a/core/routing.c
++++ b/core/routing.c
+@@ -1792,10 +1792,10 @@ static int uwsgi_route_condition_ipv6in(struct wsgi_request *wsgi_req, struct uw
+ 
+ 	int i = (pfxlen / 32);
+ 	switch (i) {
+-	case 0: mask[0] = 0;
+-	case 1: mask[1] = 0;
+-	case 2: mask[2] = 0;
+-	case 3: mask[3] = 0;
++	case 0: mask[0] = 0; break;
++	case 1: mask[1] = 0; break;
++	case 2: mask[2] = 0; break;
++	case 3: mask[3] = 0; break;
+ 	}
+ 
+ 	if (pfxlen % 32)
+-- 
+2.7.4
+
diff --git a/meta-openstack/recipes-extended/uwsgi/uwsgi_git.bb b/meta-openstack/recipes-extended/uwsgi/uwsgi_git.bb
index dae288a..f0c535f 100644
--- a/meta-openstack/recipes-extended/uwsgi/uwsgi_git.bb
+++ b/meta-openstack/recipes-extended/uwsgi/uwsgi_git.bb
@@ -6,6 +6,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=33ab1ce13e2312dddfad07f97f66321f"
 
 SRCNAME = "uwsgi"
 SRC_URI = "git://github.com/unbit/uwsgi.git;branch=uwsgi-2.0 \
+    file://Add-explicit-breaks-to-avoid-implicit-passthrough.patch \
+    file://more-Add-explicit-breaks-to-avoid-implicit-passthrough.patch \
 "
 
 SRCREV="af44211739136e22471a2897383f34586284bf86"
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [m-c-s][PATCH] uwsgi: fixups for gcc 7.x
  2017-08-23 19:20 [m-c-s][PATCH] uwsgi: fixups for gcc 7.x Mark Asselstine
@ 2017-08-24 13:59 ` Bruce Ashfield
  0 siblings, 0 replies; 2+ messages in thread
From: Bruce Ashfield @ 2017-08-24 13:59 UTC (permalink / raw)
  To: Mark Asselstine; +Cc: meta-virtualization

[-- Attachment #1: Type: text/plain, Size: 6871 bytes --]

merged.

Bruce

On Wed, Aug 23, 2017 at 3:20 PM, Mark Asselstine <
mark.asselstine@windriver.com> wrote:

> Apply several upstream patches to fixup fallthrough switch
> statements. This fixes build failures such as:
>
> | core/hash.c:44:13: error: this statement may fall through
> [-Werror=implicit-fallthrough=]
> |            h ^= key[2] << 16;
> |            ~~^~~~~~~~~~~~~~~
> | core/hash.c:45:7: note: here
> |        case 2:
> |        ^~~~
>
> Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
> ---
>  ...icit-breaks-to-avoid-implicit-passthrough.patch | 50
> ++++++++++++++++++++++
>  ...icit-breaks-to-avoid-implicit-passthrough.patch | 50
> ++++++++++++++++++++++
>  meta-openstack/recipes-extended/uwsgi/uwsgi_git.bb |  2 +
>  3 files changed, 102 insertions(+)
>  create mode 100644 meta-openstack/recipes-extended/uwsgi/files/Add-
> explicit-breaks-to-avoid-implicit-passthrough.patch
>  create mode 100644 meta-openstack/recipes-extended/uwsgi/files/more-Add-
> explicit-breaks-to-avoid-implicit-passthrough.patch
>
> diff --git a/meta-openstack/recipes-extended/uwsgi/files/Add-
> explicit-breaks-to-avoid-implicit-passthrough.patch
> b/meta-openstack/recipes-extended/uwsgi/files/Add-
> explicit-breaks-to-avoid-implicit-passthrough.patch
> new file mode 100644
> index 0000000..4b9c015
> --- /dev/null
> +++ b/meta-openstack/recipes-extended/uwsgi/files/Add-
> explicit-breaks-to-avoid-implicit-passthrough.patch
> @@ -0,0 +1,50 @@
> +From 0a14d0f0425f00421a69f0ca8e09a92cfdfc6a36 Mon Sep 17 00:00:00 2001
> +From: Paul Tagliamonte <paultag@gmail.com>
> +Date: Mon, 7 Aug 2017 11:18:56 -0400
> +Subject: [PATCH] Add explicit breaks to avoid implicit passthrough.
> +
> +commit 0a14d0f0425f00421a69f0ca8e09a92cfdfc6a36 from upstream
> +git://github.com/unbit/uwsgi.git
> +
> +-Werror=implicit-fallthrough was added in gcc 7.1, which will
> +throw a compile error if a switch has an implicit passthrough.
> +
> +Seeing as how this switch doesn't appear to depend on passthrough to
> +function correctly, I've added explicit breaks to the switch.
> +
> +From https://gcc.gnu.org/gcc-7/changes.html:
> +
> +-Wimplicit-fallthrough warns when a switch case falls through. This
> +warning has five different levels. The compiler is able to parse a wide
> +range of fallthrough comments, depending on the level. It also handles
> +control-flow statements, such as ifs. It's possible to suppress the
> +warning by either adding a fallthrough comment, or by using a null
> +statement: __attribute__ ((fallthrough)); (C, C++), or [[fallthrough]];
> +(C++17), or [[gnu::fallthrough]]; (C++11/C++14). This warning is enabled
> +by -Wextra.
> +---
> + core/hash.c | 3 +++
> + 1 file changed, 3 insertions(+)
> +
> +diff --git a/core/hash.c b/core/hash.c
> +index a1288fa..9ae6bd2 100644
> +--- a/core/hash.c
> ++++ b/core/hash.c
> +@@ -42,11 +42,14 @@ static uint32_t murmur2_hash(char *key, uint64_t
> keylen) {
> +       switch (keylen) {
> +               case 3:
> +                       h ^= key[2] << 16;
> ++                      break;
> +               case 2:
> +                       h ^= key[1] << 8;
> ++                      break;
> +               case 1:
> +                       h ^= key[0];
> +                       h *= 0x5bd1e995;
> ++                      break;
> +       }
> +
> +       h ^= h >> 13;
> +--
> +2.7.4
> +
> diff --git a/meta-openstack/recipes-extended/uwsgi/files/more-Add-
> explicit-breaks-to-avoid-implicit-passthrough.patch
> b/meta-openstack/recipes-extended/uwsgi/files/more-Add-
> explicit-breaks-to-avoid-implicit-passthrough.patch
> new file mode 100644
> index 0000000..5a885ed
> --- /dev/null
> +++ b/meta-openstack/recipes-extended/uwsgi/files/more-Add-
> explicit-breaks-to-avoid-implicit-passthrough.patch
> @@ -0,0 +1,50 @@
> +From 54666237455273e147eadb1904d261ed7624a8b6 Mon Sep 17 00:00:00 2001
> +From: Paul Tagliamonte <tag@pault.ag>
> +Date: Mon, 14 Aug 2017 15:42:15 -0400
> +Subject: [PATCH] Add explicit breaks to avoid implicit passthrough.
> +
> +commit 54666237455273e147eadb1904d261ed7624a8b6 from upstream
> +git://github.com/unbit/uwsgi.git
> +
> +-Werror=implicit-fallthrough was added in gcc 7.1, which will
> +throw a compile error if a switch has an implicit passthrough.
> +
> +Seeing as how this switch doesn't appear to depend on passthrough to
> +function correctly, I've added explicit breaks to the switch.
> +
> +From https://gcc.gnu.org/gcc-7/changes.html:
> +
> +-Wimplicit-fallthrough warns when a switch case falls through. This
> +warning has five different levels. The compiler is able to parse a wide
> +range of fallthrough comments, depending on the level. It also handles
> +control-flow statements, such as ifs. It's possible to suppress the
> +warning by either adding a fallthrough comment, or by using a null
> +statement: __attribute__ ((fallthrough)); (C, C++), or [[fallthrough]];
> +(C++17), or [[gnu::fallthrough]]; (C++11/C++14). This warning is enabled
> +by -Wextra.
> +---
> + core/routing.c | 8 ++++----
> + 1 file changed, 4 insertions(+), 4 deletions(-)
> +
> +diff --git a/core/routing.c b/core/routing.c
> +index 5887ec3..0cd6ea6 100644
> +--- a/core/routing.c
> ++++ b/core/routing.c
> +@@ -1792,10 +1792,10 @@ static int uwsgi_route_condition_ipv6in(struct
> wsgi_request *wsgi_req, struct uw
> +
> +       int i = (pfxlen / 32);
> +       switch (i) {
> +-      case 0: mask[0] = 0;
> +-      case 1: mask[1] = 0;
> +-      case 2: mask[2] = 0;
> +-      case 3: mask[3] = 0;
> ++      case 0: mask[0] = 0; break;
> ++      case 1: mask[1] = 0; break;
> ++      case 2: mask[2] = 0; break;
> ++      case 3: mask[3] = 0; break;
> +       }
> +
> +       if (pfxlen % 32)
> +--
> +2.7.4
> +
> diff --git a/meta-openstack/recipes-extended/uwsgi/uwsgi_git.bb
> b/meta-openstack/recipes-extended/uwsgi/uwsgi_git.bb
> index dae288a..f0c535f 100644
> --- a/meta-openstack/recipes-extended/uwsgi/uwsgi_git.bb
> +++ b/meta-openstack/recipes-extended/uwsgi/uwsgi_git.bb
> @@ -6,6 +6,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=
> 33ab1ce13e2312dddfad07f97f66321f"
>
>  SRCNAME = "uwsgi"
>  SRC_URI = "git://github.com/unbit/uwsgi.git;branch=uwsgi-2.0 \
> +    file://Add-explicit-breaks-to-avoid-implicit-passthrough.patch \
> +    file://more-Add-explicit-breaks-to-avoid-implicit-passthrough.patch \
>  "
>
>  SRCREV="af44211739136e22471a2897383f34586284bf86"
> --
> 2.7.4
>
> --
> _______________________________________________
> meta-virtualization mailing list
> meta-virtualization@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-virtualization
>



-- 
"Thou shalt not follow the NULL pointer, for chaos and madness await thee
at its end"

[-- Attachment #2: Type: text/html, Size: 9228 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-08-24 13:59 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-23 19:20 [m-c-s][PATCH] uwsgi: fixups for gcc 7.x Mark Asselstine
2017-08-24 13:59 ` Bruce Ashfield

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.