From: Daniel Houck <Software@DRHouck.me>
To: buildroot@buildroot.org
Cc: Daniel Houck <Software@DRHouck.me>
Subject: [Buildroot] [PATCH v3] package/make: fix build with musl and gcc-15.x
Date: Mon, 4 May 2026 21:11:39 -0400 [thread overview]
Message-ID: <20260505011139.2973700-1-Software@DRHouck.me> (raw)
In-Reply-To: <20260504230627.2963070-1-Software@DRHouck.me>
Patch the parts of Make that use code invalid in C23. It wasn't
included when compiling with glibc but failed to build with musl.
Fixes #176. See also https://savannah.gnu.org/bugs/index.php?68302
Signed-off-by: Daniel Houck <Software@DRHouck.me>
---
Changes v3 -> v2:
- Format the patch as specified in Buildroot manual. I thought I'd
done that for v2 but forgot to actually commit that change, oops.
Changes v1 -> v2:
- patch make instead of using CFLAGS (suggested by Marcus)
...1-fix-compilation-on-musl-with-gcc15.patch | 66 +++++++++++++++++++
1 file changed, 66 insertions(+)
create mode 100644 package/make/0001-fix-compilation-on-musl-with-gcc15.patch
diff --git a/package/make/0001-fix-compilation-on-musl-with-gcc15.patch b/package/make/0001-fix-compilation-on-musl-with-gcc15.patch
new file mode 100644
index 0000000000..990aee0abf
--- /dev/null
+++ b/package/make/0001-fix-compilation-on-musl-with-gcc15.patch
@@ -0,0 +1,66 @@
+From 31bc8976fb7bfdde8b9293e6a4eb2becb29a73bc Mon Sep 17 00:00:00 2001
+From: Bobby Bingham <koorogi@koorogi.info>
+Date: Wed, 2 Jul 2025 18:09:28 -0500
+Subject: [PATCH] fix compilation on musl with gcc15
+
+Patch originally from https://codeberg.org/gentoo/gentoo/raw/branch/master/dev-build/make/files/make-4.4.1-c23.patch
+
+This addresses the same issues as, but is not quite identical to, the
+patch linked to as upstream. Upstream has not acknowledged its patch in
+any way.
+
+Signed-off-by: Daniel Houck <Software@DRHouck.me>
+Upstream: https://lists.gnu.org/archive/html/bug-make/2025-03/msg00032.html
+---
+ lib/fnmatch.c | 2 +-
+ src/getopt.c | 2 +-
+ src/getopt.h | 7 -------
+ 3 files changed, 2 insertions(+), 9 deletions(-)
+
+diff --git a/lib/fnmatch.c b/lib/fnmatch.c
+index 01da376..9b54022 100644
+--- a/lib/fnmatch.c
++++ b/lib/fnmatch.c
+@@ -121,7 +121,7 @@ USA. */
+ whose names are inconsistent. */
+
+ # if !defined _LIBC && !defined getenv
+-extern char *getenv ();
++extern char *getenv (const char*);
+ # endif
+
+ # ifndef errno
+diff --git a/src/getopt.c b/src/getopt.c
+index 7a792de..9b56abe 100644
+--- a/src/getopt.c
++++ b/src/getopt.c
+@@ -202,7 +202,7 @@ static char *posixly_correct;
+ whose names are inconsistent. */
+
+ #ifndef getenv
+-extern char *getenv ();
++extern char *getenv (const char*);
+ #endif
+
+ static char *
+diff --git a/src/getopt.h b/src/getopt.h
+index df18cee..a6cc621 100644
+--- a/src/getopt.h
++++ b/src/getopt.h
+@@ -96,14 +96,7 @@ struct option
+ #define optional_argument 2
+
+ #if defined (__STDC__) && __STDC__
+-#ifdef __GNU_LIBRARY__
+-/* Many other libraries have conflicting prototypes for getopt, with
+- differences in the consts, in stdlib.h. To avoid compilation
+- errors, only prototype getopt for the GNU C library. */
+ extern int getopt (int argc, char *const *argv, const char *shortopts);
+-#else /* not __GNU_LIBRARY__ */
+-extern int getopt ();
+-#endif /* __GNU_LIBRARY__ */
+ extern int getopt_long (int argc, char *const *argv, const char *shortopts,
+ const struct option *longopts, int *longind);
+ extern int getopt_long_only (int argc, char *const *argv,
+--
+2.50.0
--
2.54.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
next prev parent reply other threads:[~2026-05-05 1:12 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-03 23:56 [Buildroot] [PATCH 1/1] package/make: fix build with musl and gcc-15.x Daniel Houck
2026-05-04 13:17 ` Marcus Hoffmann via buildroot
2026-05-04 19:59 ` Daniel Houck
2026-05-04 23:06 ` [Buildroot] [PATCH v2] " Daniel Houck
2026-05-05 1:11 ` Daniel Houck [this message]
2026-05-05 8:59 ` [Buildroot] [PATCH v3] " Marcus Hoffmann via buildroot
2026-05-15 17:45 ` [Buildroot] [PATCH 1/1] " Thomas Perale via buildroot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260505011139.2973700-1-Software@DRHouck.me \
--to=software@drhouck.me \
--cc=buildroot@buildroot.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox