summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/glibc
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2021-02-26 09:40:09 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-02-27 22:40:36 +0000
commitae9cad4e0554c8fe91d64030ad5c7e6d67b713d6 (patch)
treef1d07003d02db79731acf3832a117306d306fb0d /meta/recipes-core/glibc
parent314cfc7d6a8f9b00db7da5424890ff955a5ce971 (diff)
downloadopenembedded-core-contrib-ae9cad4e0554c8fe91d64030ad5c7e6d67b713d6.tar.gz
glibc: Fix rawmemchr
This is to help gcc bug upstream https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98512 Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-core/glibc')
-rw-r--r--meta/recipes-core/glibc/glibc/0032-string-Work-around-GCC-PR-98512-in-rawmemchr.patch58
-rw-r--r--meta/recipes-core/glibc/glibc_2.33.bb1
2 files changed, 59 insertions, 0 deletions
diff --git a/meta/recipes-core/glibc/glibc/0032-string-Work-around-GCC-PR-98512-in-rawmemchr.patch b/meta/recipes-core/glibc/glibc/0032-string-Work-around-GCC-PR-98512-in-rawmemchr.patch
new file mode 100644
index 0000000000..e904b28a05
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc/0032-string-Work-around-GCC-PR-98512-in-rawmemchr.patch
@@ -0,0 +1,58 @@
+From 044e603b698093cf48f6e6229e0b66acf05227e4 Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fweimer@redhat.com>
+Date: Fri, 19 Feb 2021 13:29:00 +0100
+Subject: [PATCH] string: Work around GCC PR 98512 in rawmemchr
+
+Upstream-Status: Backport [https://sourceware.org/git/?p=glibc.git;a=commit;h=044e603b698093cf48f6e6229e0b66acf05227e4]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ string/rawmemchr.c | 26 +++++++++++++++-----------
+ 1 file changed, 15 insertions(+), 11 deletions(-)
+
+diff --git a/string/rawmemchr.c b/string/rawmemchr.c
+index 59bbeeaa42..b8523118e5 100644
+--- a/string/rawmemchr.c
++++ b/string/rawmemchr.c
+@@ -22,24 +22,28 @@
+ # define RAWMEMCHR __rawmemchr
+ #endif
+
+-/* Find the first occurrence of C in S. */
+-void *
+-RAWMEMCHR (const void *s, int c)
+-{
+- DIAG_PUSH_NEEDS_COMMENT;
++/* The pragmata should be nested inside RAWMEMCHR below, but that
++ triggers GCC PR 98512. */
++DIAG_PUSH_NEEDS_COMMENT;
+ #if __GNUC_PREREQ (7, 0)
+- /* GCC 8 warns about the size passed to memchr being larger than
+- PTRDIFF_MAX; the use of SIZE_MAX is deliberate here. */
+- DIAG_IGNORE_NEEDS_COMMENT (8, "-Wstringop-overflow=");
++/* GCC 8 warns about the size passed to memchr being larger than
++ PTRDIFF_MAX; the use of SIZE_MAX is deliberate here. */
++DIAG_IGNORE_NEEDS_COMMENT (8, "-Wstringop-overflow=");
+ #endif
+ #if __GNUC_PREREQ (11, 0)
+- /* Likewise GCC 11, with a different warning option. */
+- DIAG_IGNORE_NEEDS_COMMENT (11, "-Wstringop-overread");
++/* Likewise GCC 11, with a different warning option. */
++DIAG_IGNORE_NEEDS_COMMENT (11, "-Wstringop-overread");
+ #endif
++
++/* Find the first occurrence of C in S. */
++void *
++RAWMEMCHR (const void *s, int c)
++{
+ if (c != '\0')
+ return memchr (s, c, (size_t)-1);
+- DIAG_POP_NEEDS_COMMENT;
+ return (char *)s + strlen (s);
+ }
+ libc_hidden_def (__rawmemchr)
+ weak_alias (__rawmemchr, rawmemchr)
++
++DIAG_POP_NEEDS_COMMENT;
+--
+2.30.1
+
diff --git a/meta/recipes-core/glibc/glibc_2.33.bb b/meta/recipes-core/glibc/glibc_2.33.bb
index e0002e6046..c47826a51e 100644
--- a/meta/recipes-core/glibc/glibc_2.33.bb
+++ b/meta/recipes-core/glibc/glibc_2.33.bb
@@ -44,6 +44,7 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
file://0029-wordsize.h-Unify-the-header-between-arm-and-aarch64.patch \
file://0030-powerpc-Do-not-ask-compiler-for-finding-arch.patch \
file://0031-x86-Require-full-ISA-support-for-x86-64-level-marker.patch \
+ file://0032-string-Work-around-GCC-PR-98512-in-rawmemchr.patch \
"
S = "${WORKDIR}/git"
B = "${WORKDIR}/build-${TARGET_SYS}"