* [Buildroot] [PATCH] package/atop: fix musl build
@ 2026-09-30 21:18 Yegor Yefremov via buildroot
2026-10-10 10:01 ` Thomas Perale via buildroot
0 siblings, 1 reply; 3+ messages in thread
From: Yegor Yefremov via buildroot @ 2026-09-30 21:18 UTC (permalink / raw)
To: buildroot; +Cc: chakrabortyshubham66, thomas.petazzoni, Ricardo Martincoski
From: Yegor Yefremov <yegorslists@googlemail.com>
Since the bump to version 2.13.0, atop fails to build with musl:
drawbar.c:2336:33: error: implicit declaration of function 'waddwstr'; did you mean 'waddstr'? [-Wimplicit-function-declaration]
(Before 2.13.0, the same configurations already failed earlier on
uClibc because _POSIX_C_SOURCE was defined without a value. Upstream
fixed that in 2.13.0 by giving it an explicit value, but the same
pattern remains for _XOPEN_SOURCE.)
ncurses only declares its wide-character API, including waddwstr(),
when NCURSES_WIDECHAR is set. If the application does not set it,
curses.h derives it from the feature test macros:
#if defined(_XOPEN_SOURCE_EXTENDED) || \
(defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE - 0 >= 500))
drawbar.c defines _XOPEN_SOURCE with an empty value, which makes the
check evaluate as 0 >= 500 and fail.
This only breaks with musl because of the C library's <features.h>,
which curses.h pulls in through <stdio.h> before doing the check.
glibc and uClibc both redefine _XOPEN_SOURCE to 700 and define
_XOPEN_SOURCE_EXTENDED whenever _GNU_SOURCE is set, which drawbar.c
does, so the empty definition gets fixed up. musl never modifies the
application's feature test macros, so the empty value reaches
curses.h and the wide-character prototypes are left out.
Add a patch that defines _XOPEN_SOURCE as 700, matching the
_POSIX_C_SOURCE value of 200809L that is already used.
Fixes:
- https://autobuild.buildroot.org/results/914c1d8fa0fc8bbef64e4a64d58e5941d0077a3e
- https://autobuild.buildroot.org/results/b91/b91ea0722202de0d1fdeeaeea167fd1b21b6d5d6
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
---
...xplicit-value-for-_XOPEN_SOURCE-macr.patch | 48 +++++++++++++++++++
1 file changed, 48 insertions(+)
create mode 100644 package/atop/0001-drawbar-define-explicit-value-for-_XOPEN_SOURCE-macr.patch
diff --git a/package/atop/0001-drawbar-define-explicit-value-for-_XOPEN_SOURCE-macr.patch b/package/atop/0001-drawbar-define-explicit-value-for-_XOPEN_SOURCE-macr.patch
new file mode 100644
index 0000000000..d526d58433
--- /dev/null
+++ b/package/atop/0001-drawbar-define-explicit-value-for-_XOPEN_SOURCE-macr.patch
@@ -0,0 +1,48 @@
+From 54799216beac63a195cd6d34b22476fc15a80295 Mon Sep 17 00:00:00 2001
+From: Yegor Yefremov <yegorslists@googlemail.com>
+Date: Wed, 30 Sep 2026 10:59:49 +0200
+Subject: [PATCH] drawbar: define explicit value for _XOPEN_SOURCE macro
+
+drawbar.c uses the wide-character curses function waddwstr(). ncurses
+only declares its wide-character API when NCURSES_WIDECHAR is set,
+which curses.h derives from the feature test macros:
+
+ #if defined(_XOPEN_SOURCE_EXTENDED) || \
+ (defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE - 0 >= 500))
+
+drawbar.c defines _XOPEN_SOURCE without a value, so _XOPEN_SOURCE - 0
+evaluates to 0 and the check fails.
+
+With glibc and uClibc this goes unnoticed, because their <features.h>
+redefines _XOPEN_SOURCE to 700 (and defines _XOPEN_SOURCE_EXTENDED)
+whenever _GNU_SOURCE is set. musl does not touch the application's
+feature test macros, so the empty definition reaches curses.h
+unchanged and the build fails:
+
+drawbar.c:2336:33: error: implicit declaration of function 'waddwstr'; did you mean 'waddstr'? [-Wimplicit-function-declaration]
+
+Define _XOPEN_SOURCE as 700, which matches the already explicit
+_POSIX_C_SOURCE value of 200809L (both refer to POSIX.1-2008).
+
+Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
+Upstream: https://github.com/Atoptool/atop/pull/415
+---
+ drawbar.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drawbar.c b/drawbar.c
+index 651a81e..e4db0d6 100644
+--- a/drawbar.c
++++ b/drawbar.c
+@@ -104,7 +104,7 @@
+ // the other.
+ /////////////////////////////////////////////////////////////////////////////
+ #define _POSIX_C_SOURCE 200809L
+-#define _XOPEN_SOURCE
++#define _XOPEN_SOURCE 700
+ #define _GNU_SOURCE
+ #define _DEFAULT_SOURCE
+
+--
+2.34.1
+
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [Buildroot] [PATCH] package/atop: fix musl build
2026-09-30 21:18 [Buildroot] [PATCH] package/atop: fix musl build Yegor Yefremov via buildroot
@ 2026-10-10 10:01 ` Thomas Perale via buildroot
2026-10-10 16:26 ` Julien Olivain via buildroot
0 siblings, 1 reply; 3+ messages in thread
From: Thomas Perale via buildroot @ 2026-10-10 10:01 UTC (permalink / raw)
To: Yegor Yefremov
Cc: Thomas Perale, buildroot, chakrabortyshubham66, thomas.petazzoni,
Ricardo Martincoski
Hi,
Tested by modifying `support/testing/tests/package/test_atop.py` to use musl
library.
I would just add the reference to the buildroot commit that made the bump: 2110131cab2a613567c99491ba540bb33440e46c
Tested-By: Thomas Perale <thomas.perale@mind.be>
In reply of:
> Since the bump to version 2.13.0, atop fails to build with musl:
>
> drawbar.c:2336:33: error: implicit declaration of function 'waddwstr'; did you mean 'waddstr'? [-Wimplicit-function-declaration]
>
> (Before 2.13.0, the same configurations already failed earlier on
> uClibc because _POSIX_C_SOURCE was defined without a value. Upstream
> fixed that in 2.13.0 by giving it an explicit value, but the same
> pattern remains for _XOPEN_SOURCE.)
>
> ncurses only declares its wide-character API, including waddwstr(),
> when NCURSES_WIDECHAR is set. If the application does not set it,
> curses.h derives it from the feature test macros:
>
> #if defined(_XOPEN_SOURCE_EXTENDED) || \
> (defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE - 0 >= 500))
>
> drawbar.c defines _XOPEN_SOURCE with an empty value, which makes the
> check evaluate as 0 >= 500 and fail.
>
> This only breaks with musl because of the C library's <features.h>,
> which curses.h pulls in through <stdio.h> before doing the check.
> glibc and uClibc both redefine _XOPEN_SOURCE to 700 and define
> _XOPEN_SOURCE_EXTENDED whenever _GNU_SOURCE is set, which drawbar.c
> does, so the empty definition gets fixed up. musl never modifies the
> application's feature test macros, so the empty value reaches
> curses.h and the wide-character prototypes are left out.
>
> Add a patch that defines _XOPEN_SOURCE as 700, matching the
> _POSIX_C_SOURCE value of 200809L that is already used.
>
> Fixes:
> - https://autobuild.buildroot.org/results/914c1d8fa0fc8bbef64e4a64d58e5941d0077a3e
> - https://autobuild.buildroot.org/results/b91/b91ea0722202de0d1fdeeaeea167fd1b21b6d5d6
>
> Assisted-by: Claude:claude-opus-5-5
> Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
> ---
> ...xplicit-value-for-_XOPEN_SOURCE-macr.patch | 48 +++++++++++++++++++
> 1 file changed, 48 insertions(+)
> create mode 100644 package/atop/0001-drawbar-define-explicit-value-for-_XOPEN_SOURCE-macr.patch
>
> diff --git a/package/atop/0001-drawbar-define-explicit-value-for-_XOPEN_SOURCE-macr.patch b/package/atop/0001-drawbar-define-explicit-value-for-_XOPEN_SOURCE-macr.patch
> new file mode 100644
> index 0000000000..d526d58433
> --- /dev/null
> +++ b/package/atop/0001-drawbar-define-explicit-value-for-_XOPEN_SOURCE-macr.patch
> @@ -0,0 +1,48 @@
> +From 54799216beac63a195cd6d34b22476fc15a80295 Mon Sep 17 00:00:00 2001
> +From: Yegor Yefremov <yegorslists@googlemail.com>
> +Date: Wed, 30 Sep 2026 10:59:49 +0200
> +Subject: [PATCH] drawbar: define explicit value for _XOPEN_SOURCE macro
> +
> +drawbar.c uses the wide-character curses function waddwstr(). ncurses
> +only declares its wide-character API when NCURSES_WIDECHAR is set,
> +which curses.h derives from the feature test macros:
> +
> + #if defined(_XOPEN_SOURCE_EXTENDED) || \
> + (defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE - 0 >= 500))
> +
> +drawbar.c defines _XOPEN_SOURCE without a value, so _XOPEN_SOURCE - 0
> +evaluates to 0 and the check fails.
> +
> +With glibc and uClibc this goes unnoticed, because their <features.h>
> +redefines _XOPEN_SOURCE to 700 (and defines _XOPEN_SOURCE_EXTENDED)
> +whenever _GNU_SOURCE is set. musl does not touch the application's
> +feature test macros, so the empty definition reaches curses.h
> +unchanged and the build fails:
> +
> +drawbar.c:2336:33: error: implicit declaration of function 'waddwstr'; did you mean 'waddstr'? [-Wimplicit-function-declaration]
> +
> +Define _XOPEN_SOURCE as 700, which matches the already explicit
> +_POSIX_C_SOURCE value of 200809L (both refer to POSIX.1-2008).
> +
> +Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
> +Upstream: https://github.com/Atoptool/atop/pull/415
> +---
> + drawbar.c | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/drawbar.c b/drawbar.c
> +index 651a81e..e4db0d6 100644
> +--- a/drawbar.c
> ++++ b/drawbar.c
> +@@ -104,7 +104,7 @@
> + // the other.
> + /////////////////////////////////////////////////////////////////////////////
> + #define _POSIX_C_SOURCE 200809L
> +-#define _XOPEN_SOURCE
> ++#define _XOPEN_SOURCE 700
> + #define _GNU_SOURCE
> + #define _DEFAULT_SOURCE
> +
> +--
> +2.34.1
> +
> --
> 2.34.1
>
> _______________________________________________
> 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] 3+ messages in thread
* Re: [Buildroot] [PATCH] package/atop: fix musl build
2026-10-10 10:01 ` Thomas Perale via buildroot
@ 2026-10-10 16:26 ` Julien Olivain via buildroot
0 siblings, 0 replies; 3+ messages in thread
From: Julien Olivain via buildroot @ 2026-10-10 16:26 UTC (permalink / raw)
To: Thomas Perale
Cc: chakrabortyshubham66, buildroot, Ricardo Martincoski,
thomas.petazzoni
Hi,
On 10/10/2026 12:01, Thomas Perale via buildroot wrote:
> Hi,
>
> Tested by modifying `support/testing/tests/package/test_atop.py` to use
> musl
> library.
>
> I would just add the reference to the buildroot commit that made the
> bump: 2110131cab2a613567c99491ba540bb33440e46c
I applied this patch after adding the reference to the commit, as
suggested.
> Tested-By: Thomas Perale <thomas.perale@mind.be>
>
> In reply of:
>> Since the bump to version 2.13.0, atop fails to build with musl:
>>
>> drawbar.c:2336:33: error: implicit declaration of function 'waddwstr';
>> did you mean 'waddstr'? [-Wimplicit-function-declaration]
>>
>> (Before 2.13.0, the same configurations already failed earlier on
>> uClibc because _POSIX_C_SOURCE was defined without a value. Upstream
>> fixed that in 2.13.0 by giving it an explicit value, but the same
>> pattern remains for _XOPEN_SOURCE.)
>>
>> ncurses only declares its wide-character API, including waddwstr(),
>> when NCURSES_WIDECHAR is set. If the application does not set it,
>> curses.h derives it from the feature test macros:
>>
>> #if defined(_XOPEN_SOURCE_EXTENDED) || \
>> (defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE - 0 >= 500))
>>
>> drawbar.c defines _XOPEN_SOURCE with an empty value, which makes the
>> check evaluate as 0 >= 500 and fail.
>>
>> This only breaks with musl because of the C library's <features.h>,
>> which curses.h pulls in through <stdio.h> before doing the check.
>> glibc and uClibc both redefine _XOPEN_SOURCE to 700 and define
>> _XOPEN_SOURCE_EXTENDED whenever _GNU_SOURCE is set, which drawbar.c
>> does, so the empty definition gets fixed up. musl never modifies the
>> application's feature test macros, so the empty value reaches
>> curses.h and the wide-character prototypes are left out.
>>
>> Add a patch that defines _XOPEN_SOURCE as 700, matching the
>> _POSIX_C_SOURCE value of 200809L that is already used.
>>
>> Fixes:
>> -
>> https://autobuild.buildroot.org/results/914c1d8fa0fc8bbef64e4a64d58e5941d0077a3e
>> -
>> https://autobuild.buildroot.org/results/b91/b91ea0722202de0d1fdeeaeea167fd1b21b6d5d6
>>
>> Assisted-by: Claude:claude-opus-5-5
>> Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
>
>> ---
>> ...xplicit-value-for-_XOPEN_SOURCE-macr.patch | 48
>> +++++++++++++++++++
>> 1 file changed, 48 insertions(+)
>> create mode 100644
>> package/atop/0001-drawbar-define-explicit-value-for-_XOPEN_SOURCE-macr.patch
>>
>> diff --git
>> a/package/atop/0001-drawbar-define-explicit-value-for-_XOPEN_SOURCE-macr.patch
>> b/package/atop/0001-drawbar-define-explicit-value-for-_XOPEN_SOURCE-macr.patch
>> new file mode 100644
>> index 0000000000..d526d58433
>> --- /dev/null
>> +++
>> b/package/atop/0001-drawbar-define-explicit-value-for-_XOPEN_SOURCE-macr.patch
>> @@ -0,0 +1,48 @@
>> +From 54799216beac63a195cd6d34b22476fc15a80295 Mon Sep 17 00:00:00
>> 2001
>> +From: Yegor Yefremov <yegorslists@googlemail.com>
>> +Date: Wed, 30 Sep 2026 10:59:49 +0200
>> +Subject: [PATCH] drawbar: define explicit value for _XOPEN_SOURCE
>> macro
>> +
>> +drawbar.c uses the wide-character curses function waddwstr(). ncurses
>> +only declares its wide-character API when NCURSES_WIDECHAR is set,
>> +which curses.h derives from the feature test macros:
>> +
>> + #if defined(_XOPEN_SOURCE_EXTENDED) || \
>> + (defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE - 0 >= 500))
>> +
>> +drawbar.c defines _XOPEN_SOURCE without a value, so _XOPEN_SOURCE - 0
>> +evaluates to 0 and the check fails.
>> +
>> +With glibc and uClibc this goes unnoticed, because their <features.h>
>> +redefines _XOPEN_SOURCE to 700 (and defines _XOPEN_SOURCE_EXTENDED)
>> +whenever _GNU_SOURCE is set. musl does not touch the application's
>> +feature test macros, so the empty definition reaches curses.h
>> +unchanged and the build fails:
>> +
>> +drawbar.c:2336:33: error: implicit declaration of function
>> 'waddwstr'; did you mean 'waddstr'? [-Wimplicit-function-declaration]
>> +
>> +Define _XOPEN_SOURCE as 700, which matches the already explicit
>> +_POSIX_C_SOURCE value of 200809L (both refer to POSIX.1-2008).
>> +
>> +Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
>> +Upstream: https://github.com/Atoptool/atop/pull/415
>> +---
>> + drawbar.c | 2 +-
>> + 1 file changed, 1 insertion(+), 1 deletion(-)
>> +
>> +diff --git a/drawbar.c b/drawbar.c
>> +index 651a81e..e4db0d6 100644
>> +--- a/drawbar.c
>> ++++ b/drawbar.c
>> +@@ -104,7 +104,7 @@
>> + // the other.
>> +
>> /////////////////////////////////////////////////////////////////////////////
>> + #define _POSIX_C_SOURCE 200809L
>> +-#define _XOPEN_SOURCE
>> ++#define _XOPEN_SOURCE 700
>> + #define _GNU_SOURCE
>> + #define _DEFAULT_SOURCE
>> +
>> +--
>> +2.34.1
>> +
>> --
>> 2.34.1
Best regards,
Julien.
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-10-10 16:26 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-30 21:18 [Buildroot] [PATCH] package/atop: fix musl build Yegor Yefremov via buildroot
2026-10-10 10:01 ` Thomas Perale via buildroot
2026-10-10 16:26 ` Julien Olivain via buildroot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.