* [Buildroot] [PATCH 1/1] package/make: fix build with musl and gcc-15.x
@ 2026-05-03 23:56 Daniel Houck
2026-05-04 13:17 ` Marcus Hoffmann via buildroot
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Daniel Houck @ 2026-05-03 23:56 UTC (permalink / raw)
To: buildroot; +Cc: Daniel Houck
It builds fine with glibc and gcc-15.x but conditionally includes code
with musl that fails. See eg. commit 999fb19d4b.
Fixes #176. See also https://savannah.gnu.org/bugs/index.php?68302
Signed-off-by: Daniel Houck <Software@DRHouck.me>
---
package/make/make.mk | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/package/make/make.mk b/package/make/make.mk
index 1d1a976eb4..7120548bcc 100644
--- a/package/make/make.mk
+++ b/package/make/make.mk
@@ -14,6 +14,14 @@ MAKE_CPE_ID_VENDOR = gnu
MAKE_CONF_OPTS = --without-guile
+# Make doesn't build with C23 in some configurations; see upstream #68302
+# gcc-15 defaults to -std=gnu23, so we force "-std=gnu17" for gcc version
+# supporting it. Earlier gcc versions will work, since they are using the
+# older standard.
+ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_8),y)
+MAKE_CONF_ENV = CFLAGS="$(TARGET_CFLAGS) -std=gnu17"
+endif
+
# Disable the 'load' operation for static builds since it needs dlopen
ifeq ($(BR2_STATIC_LIBS),y)
MAKE_CONF_OPTS += --disable-load
--
2.54.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/make: fix build with musl and gcc-15.x
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-15 17:45 ` [Buildroot] [PATCH 1/1] " Thomas Perale via buildroot
2 siblings, 1 reply; 7+ messages in thread
From: Marcus Hoffmann via buildroot @ 2026-05-04 13:17 UTC (permalink / raw)
To: Daniel Houck, buildroot
Hi Daniel,
thanks for the patch.
On 5/4/26 01:56, Daniel Houck wrote:
> It builds fine with glibc and gcc-15.x but conditionally includes code
> with musl that fails. See eg. commit 999fb19d4b.
Alpine[1] and Gentoo[2][3] have a "proper" fix for this (meaning the fix
the offending code instead of changing the std level.
There's also been a submission to the make mailing list[4], but without
any reaction and only containing two of the three fixes the other
patches have.
I think this is the better solution, even though it means carrying a
patch until make eventually might fix this upstream.
I think we can just use the gentoo patch as-is I think? What do you think?
>
> Fixes #176. See also https://savannah.gnu.org/bugs/index.php?68302
>
> Signed-off-by: Daniel Houck <Software@DRHouck.me>
> ---
Best,
Marcus
[1]
https://github.com/alpinelinux/aports/blob/master/main/make/getopt-gcc15.patch
[2] https://bugs.gentoo.org/945968
[3]
https://codeberg.org/gentoo/gentoo/src/branch/master/dev-build/make/files/make-4.4.1-c23.patch
[4] https://lists.gnu.org/archive/html/bug-make/2025-03/msg00032.html
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/make: fix build with musl and gcc-15.x
2026-05-04 13:17 ` Marcus Hoffmann via buildroot
@ 2026-05-04 19:59 ` Daniel Houck
0 siblings, 0 replies; 7+ messages in thread
From: Daniel Houck @ 2026-05-04 19:59 UTC (permalink / raw)
To: Marcus Hoffmann, buildroot
Hi Marcus,
On 5/4/26 09:17, Marcus Hoffmann wrote:
> Alpine[1] and Gentoo[2][3] have a "proper" fix for this (meaning the fix
> the offending code instead of changing the std level.
>
> There's also been a submission to the make mailing list[4], but without
> any reaction and only containing two of the three fixes the other
> patches have.
Ah, I couldn't find any prior art, thanks for the links. I'm kind of
surprised it's only three places, but a few days ago I was surprised
anyone still wrote C without prototypes like that, so what do I know?
> I think this is the better solution, even though it means carrying a
> patch until make eventually might fix this upstream.
>
> I think we can just use the gentoo patch as-is I think? What do you think?Yeah that sounds good. I'll do a couple tests to make sure everything
works as expected and then send that instead.
Thanks,
Daniel
PS. This is my first time sending to a list like this that doesn't like
HTML emails; everyone else I talk to is fine with them. I'm 95% sure I
set up my mail client correctly, but if not, I apologize and I'll fix it
for next time.
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH v2] package/make: fix build with musl and gcc-15.x
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 23:06 ` Daniel Houck
2026-05-05 1:11 ` [Buildroot] [PATCH v3] " Daniel Houck
2026-05-15 17:45 ` [Buildroot] [PATCH 1/1] " Thomas Perale via buildroot
2 siblings, 1 reply; 7+ messages in thread
From: Daniel Houck @ 2026-05-04 23:06 UTC (permalink / raw)
To: buildroot; +Cc: Daniel Houck
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 v1 -> v2:
- patch make instead of using CFLAGS (suggested by Marcus)
...1-fix-compilation-on-musl-with-gcc15.patch | 61 +++++++++++++++++++
1 file changed, 61 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..aa2598df9a
--- /dev/null
+++ b/package/make/0001-fix-compilation-on-musl-with-gcc15.patch
@@ -0,0 +1,61 @@
+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
+
+ 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
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH v3] package/make: fix build with musl and gcc-15.x
2026-05-04 23:06 ` [Buildroot] [PATCH v2] " Daniel Houck
@ 2026-05-05 1:11 ` Daniel Houck
2026-05-05 8:59 ` Marcus Hoffmann via buildroot
0 siblings, 1 reply; 7+ messages in thread
From: Daniel Houck @ 2026-05-05 1:11 UTC (permalink / raw)
To: buildroot; +Cc: Daniel Houck
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
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [Buildroot] [PATCH v3] package/make: fix build with musl and gcc-15.x
2026-05-05 1:11 ` [Buildroot] [PATCH v3] " Daniel Houck
@ 2026-05-05 8:59 ` Marcus Hoffmann via buildroot
0 siblings, 0 replies; 7+ messages in thread
From: Marcus Hoffmann via buildroot @ 2026-05-05 8:59 UTC (permalink / raw)
To: Daniel Houck, buildroot
On 5/5/26 03:11, Daniel Houck wrote:
> 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>
> ---
Applied to master, thanks!
Marcus
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/make: fix build with musl and gcc-15.x
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 23:06 ` [Buildroot] [PATCH v2] " Daniel Houck
@ 2026-05-15 17:45 ` Thomas Perale via buildroot
2 siblings, 0 replies; 7+ messages in thread
From: Thomas Perale via buildroot @ 2026-05-15 17:45 UTC (permalink / raw)
To: Daniel Houck; +Cc: Thomas Perale, buildroot
In reply of:
> It builds fine with glibc and gcc-15.x but conditionally includes code
> with musl that fails. See eg. commit 999fb19d4b.
>
> Fixes #176. See also https://savannah.gnu.org/bugs/index.php?68302
>
> Signed-off-by: Daniel Houck <Software@DRHouck.me>
Applied to 2026.02.x. Thanks
> ---
> package/make/make.mk | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/package/make/make.mk b/package/make/make.mk
> index 1d1a976eb4..7120548bcc 100644
> --- a/package/make/make.mk
> +++ b/package/make/make.mk
> @@ -14,6 +14,14 @@ MAKE_CPE_ID_VENDOR = gnu
>
> MAKE_CONF_OPTS = --without-guile
>
> +# Make doesn't build with C23 in some configurations; see upstream #68302
> +# gcc-15 defaults to -std=gnu23, so we force "-std=gnu17" for gcc version
> +# supporting it. Earlier gcc versions will work, since they are using the
> +# older standard.
> +ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_8),y)
> +MAKE_CONF_ENV = CFLAGS="$(TARGET_CFLAGS) -std=gnu17"
> +endif
> +
> # Disable the 'load' operation for static builds since it needs dlopen
> ifeq ($(BR2_STATIC_LIBS),y)
> MAKE_CONF_OPTS += --disable-load
> --
> 2.54.0
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-05-15 17:46 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 ` [Buildroot] [PATCH v3] " Daniel Houck
2026-05-05 8:59 ` Marcus Hoffmann via buildroot
2026-05-15 17:45 ` [Buildroot] [PATCH 1/1] " Thomas Perale via buildroot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox