From: Andrew Hamilton Date: Wed, 18 Jun 2025 01:58:25 +0000 (-0500) Subject: gnulib: Add patch to allow GRUB w/GCC-15 compile X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ac1512b872af8567b408518a7efa01607a0219ae;p=thirdparty%2Fgrub.git gnulib: Add patch to allow GRUB w/GCC-15 compile Pull in Gnulib fix to allow lib/base64.c to compile using GCC 15 or newer. Pulled from Gnulib commit 25df6dc425 (Silence some -Wunterminated-string-initialization warnings.) GCC 15 adds a new compiler warning "-Wunterminated-string-initialization" that will trigger what is considered a false-positive in lib/base64.c as this array is not treated as a string but an array of characters so the lack of NUL string terminator is expected. GCC team has added ability to flag such instances of arrays that the compiler may think are strings as "nonstring" arrays to avoid this warning: __attribute__((nonstring)). Fixes: https://savannah.gnu.org/bugs/?66470 Signed-off-by: Andrew Hamilton Reviewed-by: Sudhakar Kuppusamy Reviewed-by: Daniel Kiper --- diff --git a/bootstrap.conf b/bootstrap.conf index 7cd375ba9..5717b7109 100644 --- a/bootstrap.conf +++ b/bootstrap.conf @@ -86,7 +86,8 @@ bootstrap_post_import_hook () { # add new patches here. for patchname in fix-width \ fix-regcomp-resource-leak \ - fix-regexec-resource-leak; do + fix-regexec-resource-leak \ + fix-gcc-15-compile; do patch -d grub-core/lib/gnulib -p2 \ < "grub-core/lib/gnulib-patches/$patchname.patch" done diff --git a/conf/Makefile.extra-dist b/conf/Makefile.extra-dist index f59b8d8b3..869e3a16c 100644 --- a/conf/Makefile.extra-dist +++ b/conf/Makefile.extra-dist @@ -31,6 +31,7 @@ EXTRA_DIST += grub-core/genemuinitheader.sh EXTRA_DIST += grub-core/lib/gnulib-patches/fix-width.patch EXTRA_DIST += grub-core/lib/gnulib-patches/fix-regcomp-resource-leak.patch EXTRA_DIST += grub-core/lib/gnulib-patches/fix-regexec-resource-leak.patch +EXTRA_DIST += grub-core/lib/gnulib-patches/fix-gcc-15-compile.patch EXTRA_DIST += grub-core/lib/libgcrypt EXTRA_DIST += grub-core/lib/libgcrypt-grub/mpi/generic diff --git a/grub-core/lib/gnulib-patches/fix-gcc-15-compile.patch b/grub-core/lib/gnulib-patches/fix-gcc-15-compile.patch new file mode 100644 index 000000000..287332ea0 --- /dev/null +++ b/grub-core/lib/gnulib-patches/fix-gcc-15-compile.patch @@ -0,0 +1,11 @@ +--- a/lib/base64.c ++++ b/lib/base64.c +@@ -61,7 +61,7 @@ + return ch; + } + +-static const char b64c[64] = ++static const char b64c[64] _GL_ATTRIBUTE_NONSTRING = + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + + /* Base64 encode IN array of size INLEN into OUT array. OUT needs