mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-11-14 03:57:15 +00:00
gengetopt: upgrade 2.23 -> 2.23.1
The bundled gnulib redeclares bsearch, memchr and other functions that glibc 2.43+ defines as C23 qualifier-generic macros, which breaks the native build with GCC 15. Backport the gnulib fix. AI-Generated: Uses Claude Code Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
This commit is contained in:
2 files changed
+125
-2
No files matched your search
+121
@@ -0,0 +1,121 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <khem.raj@oss.qualcomm.com>
|
||||
Date: Thu, 12 Nov 2026 00:00:00 -0800
|
||||
Subject: [PATCH] gnulib: Do not expand glibc C23 qualifier-generic macros
|
||||
|
||||
glibc 2.43+ defines bsearch(), memchr() and friends as C23
|
||||
qualifier-generic macros, which breaks the ISO C N3322 redeclarations
|
||||
in the bundled gnulib stdlib.h and string.h when building with GCC 15:
|
||||
|
||||
./stdlib.h:820:20: error: expected identifier or '(' before '_Generic'
|
||||
../gl/string.h:801:20: error: expected identifier or '(' before '_Generic'
|
||||
|
||||
Parenthesize the function names so the macros are not expanded, as
|
||||
gnulib does with _GL_FUNCDECL_SYS_NAME.
|
||||
|
||||
Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=df17f4f37ed3]
|
||||
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
|
||||
---
|
||||
gl/stdlib.in.h | 4 ++--
|
||||
gl/string.in.h | 24 ++++++++++++------------
|
||||
2 files changed, 14 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/gl/stdlib.in.h b/gl/stdlib.in.h
|
||||
index 1342db4..c973f9b 100644
|
||||
--- a/gl/stdlib.in.h
|
||||
+++ b/gl/stdlib.in.h
|
||||
@@ -237,11 +237,11 @@ _GL_INLINE_HEADER_BEGIN
|
||||
|
||||
/* Declarations for ISO C N3322. */
|
||||
#if defined __GNUC__ && __GNUC__ >= 15 && !defined __clang__
|
||||
-_GL_EXTERN_C void *bsearch (const void *__key,
|
||||
+_GL_EXTERN_C void *(bsearch) (const void *__key,
|
||||
const void *__base, size_t __nmemb, size_t __size,
|
||||
int (*__compare) (const void *, const void *))
|
||||
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (2, 3) _GL_ARG_NONNULL ((5));
|
||||
-_GL_EXTERN_C void qsort (void *__base, size_t __nmemb, size_t __size,
|
||||
+_GL_EXTERN_C void (qsort) (void *__base, size_t __nmemb, size_t __size,
|
||||
int (*__compare) (const void *, const void *))
|
||||
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 2) _GL_ARG_NONNULL ((4));
|
||||
#endif
|
||||
diff --git a/gl/string.in.h b/gl/string.in.h
|
||||
index e3d94b7..b87f1e0 100644
|
||||
--- a/gl/string.in.h
|
||||
+++ b/gl/string.in.h
|
||||
@@ -214,64 +214,64 @@ _GL_EXTERN_C void free (void *);
|
||||
|
||||
/* Declarations for ISO C N3322. */
|
||||
#if defined __GNUC__ && __GNUC__ >= 15 && !defined __clang__
|
||||
-_GL_EXTERN_C void *memcpy (void *__dest, const void *__src, size_t __n)
|
||||
+_GL_EXTERN_C void *(memcpy) (void *__dest, const void *__src, size_t __n)
|
||||
# if __GLIBC__ + (__GLIBC_MINOR__ >= 2) > 2
|
||||
_GL_ATTRIBUTE_NOTHROW
|
||||
# endif
|
||||
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 3)
|
||||
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (2, 3);
|
||||
-_GL_EXTERN_C void *memccpy (void *__dest, const void *__src, int __c, size_t __n)
|
||||
+_GL_EXTERN_C void *(memccpy) (void *__dest, const void *__src, int __c, size_t __n)
|
||||
# if __GLIBC__ + (__GLIBC_MINOR__ >= 2) > 2
|
||||
_GL_ATTRIBUTE_NOTHROW
|
||||
# endif
|
||||
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 4)
|
||||
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (2, 4);
|
||||
-_GL_EXTERN_C void *memmove (void *__dest, const void *__src, size_t __n)
|
||||
+_GL_EXTERN_C void *(memmove) (void *__dest, const void *__src, size_t __n)
|
||||
# if __GLIBC__ + (__GLIBC_MINOR__ >= 2) > 2
|
||||
_GL_ATTRIBUTE_NOTHROW
|
||||
# endif
|
||||
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 3)
|
||||
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (2, 3);
|
||||
-_GL_EXTERN_C char *strncpy (char *__dest, const char *__src, size_t __n)
|
||||
+_GL_EXTERN_C char *(strncpy) (char *__dest, const char *__src, size_t __n)
|
||||
# if __GLIBC__ + (__GLIBC_MINOR__ >= 2) > 2
|
||||
_GL_ATTRIBUTE_NOTHROW
|
||||
# endif
|
||||
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 3)
|
||||
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (2, 3);
|
||||
-_GL_EXTERN_C char *strndup (const char *__s, size_t __n)
|
||||
+_GL_EXTERN_C char *(strndup) (const char *__s, size_t __n)
|
||||
# if __GLIBC__ + (__GLIBC_MINOR__ >= 2) > 2
|
||||
_GL_ATTRIBUTE_NOTHROW
|
||||
# endif
|
||||
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 2);
|
||||
-_GL_EXTERN_C char *strncat (char *__dest, const char *__src, size_t __n)
|
||||
+_GL_EXTERN_C char *(strncat) (char *__dest, const char *__src, size_t __n)
|
||||
# if __GLIBC__ + (__GLIBC_MINOR__ >= 2) > 2
|
||||
_GL_ATTRIBUTE_NOTHROW
|
||||
# endif
|
||||
_GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NONNULL_IF_NONZERO (2, 3);
|
||||
-_GL_EXTERN_C int memcmp (const void *__s1, const void *__s2, size_t __n)
|
||||
+_GL_EXTERN_C int (memcmp) (const void *__s1, const void *__s2, size_t __n)
|
||||
# if __GLIBC__ + (__GLIBC_MINOR__ >= 2) > 2
|
||||
_GL_ATTRIBUTE_NOTHROW
|
||||
# endif
|
||||
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 3)
|
||||
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (2, 3);
|
||||
-_GL_EXTERN_C int strncmp (const char *__s1, const char *__s2, size_t __n)
|
||||
+_GL_EXTERN_C int (strncmp) (const char *__s1, const char *__s2, size_t __n)
|
||||
# if __GLIBC__ + (__GLIBC_MINOR__ >= 2) > 2
|
||||
_GL_ATTRIBUTE_NOTHROW
|
||||
# endif
|
||||
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 3)
|
||||
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (2, 3);
|
||||
# ifndef __cplusplus
|
||||
-_GL_EXTERN_C void *memchr (const void *__s, int __c, size_t __n)
|
||||
+_GL_EXTERN_C void *(memchr) (const void *__s, int __c, size_t __n)
|
||||
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 3);
|
||||
-_GL_EXTERN_C void *memrchr (const void *__s, int __c, size_t __n)
|
||||
+_GL_EXTERN_C void *(memrchr) (const void *__s, int __c, size_t __n)
|
||||
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 3);
|
||||
# endif
|
||||
-_GL_EXTERN_C void *memset (void *__s, int __c, size_t __n)
|
||||
+_GL_EXTERN_C void *(memset) (void *__s, int __c, size_t __n)
|
||||
# if __GLIBC__ + (__GLIBC_MINOR__ >= 2) > 2
|
||||
_GL_ATTRIBUTE_NOTHROW
|
||||
# endif
|
||||
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 3);
|
||||
-_GL_EXTERN_C void *memset_explicit (void *__s, int __c, size_t __n)
|
||||
+_GL_EXTERN_C void *(memset_explicit) (void *__s, int __c, size_t __n)
|
||||
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 3);
|
||||
#endif
|
||||
|
||||
+4
-2
@@ -6,9 +6,11 @@ HOMEPAGE = "https://www.gnu.org/software/gengetopt/gengetopt.html"
|
||||
LICENSE = "GPL-3.0-or-later"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=ff95bfe019feaf92f524b73dd79e76eb"
|
||||
|
||||
SRC_URI = "${GNU_MIRROR}/gengetopt/${BPN}-${PV}.tar.xz"
|
||||
SRC_URI = "${GNU_MIRROR}/gengetopt/${BPN}-${PV}.tar.xz \
|
||||
file://0001-gnulib-Do-not-expand-glibc-C23-qualifier-generic-macros.patch \
|
||||
"
|
||||
|
||||
SRC_URI[sha256sum] = "b941aec9011864978dd7fdeb052b1943535824169d2aa2b0e7eae9ab807584ac"
|
||||
SRC_URI[sha256sum] = "3b9def48422bd45f78af95936200b7f9287369a3db76c4907c42fe10f4922ab6"
|
||||
|
||||
# ftpmirror.gnu.org redirects to a random mirror, several of which serve a
|
||||
# non-Apache index the auto-derived regex cannot parse. Pin the check to the
|
||||
Reference in new issue
Block a user