diff options
3 files changed, 102 insertions, 0 deletions
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 00000000..4b9c015a --- /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 00000000..5a885ed2 --- /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 dae288a6..f0c535f9 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" |