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:
Khem Raj committed 2026-11-13 09:06:43 -08:00
1 parent ca3451549c
commit 9bafb1fd5e
2 files changed
+125 -2

No files matched your search

@@ -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
@@ -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