Closed hartwork closed 5 months ago
I suggest defining _XOPEN_SOURCE=500
in stresstest.c, as suggested by the glibc documentation. The Musl libc provides M_PI
when this macro is defined, irrespective of its value.
I suggest defining
_XOPEN_SOURCE=500
in stresstest.c, as suggested by the glibc documentation. The Musl libc providesM_PI
when this macro is defined, irrespective of its value.
@edgar-bonet that's an interesting find and idea. I would want to test out this precise addition to the very top of stresstest.c
then:
#if !defined(_XOPEN_SOURCE) || (_XOPEN_SOURCE < 500)
# define _XOPEN_SOURCE 500
#endif
Besides a fix, we could add CI using Docker with an image of Alpine Linux to cover compilation with Musl, if that sounds acceptable. It would help protect against regressions once this is fixed.
@edgar-bonet @tenox7 how do you feel about this direction in general?
In order to avoid a “redefined” warning, I would undefine _XOPEN_SOURCE
if it has an unsuitable value:
#if _XOPEN_SOURCE < 500
# undef _XOPEN_SOURCE
#endif
#ifndef _XOPEN_SOURCE
# define _XOPEN_SOURCE 500
#endif
Note that this is safe even if _XOPEN_SOURCE
is initially undefined:
#if
how do you feel about [a CI with Musl/Alpine/Docker] in general?
Great! I am not that comfortable with Docker, but I appreciate the great job you are doing on the CI front.
In order to avoid a “redefined” warning, I would undefine
_XOPEN_SOURCE
if it has an unsuitable value:#if _XOPEN_SOURCE < 500 # undef _XOPEN_SOURCE #endif #ifndef _XOPEN_SOURCE # define _XOPEN_SOURCE 500 #endif
Note that this is safe even if
_XOPEN_SOURCE
is initially undefined:
- an undefined macro evaluates as zero within a
#if
- undefining an undefined macro is a no-op.
@edgar-bonet would you be okay with this alternative?:
#if !defined(_XOPEN_SOURCE) || (_XOPEN_SOURCE < 500)
# undef _XOPEN_SOURCE // to address warnings about re-definition
# define _XOPEN_SOURCE 500
#endif
It seems to play by the rules you described and I would find it more "contained" and self-explaining, a bit easier to look at, but that's potentially all subjective. What do you think?
how do you feel about [a CI with Musl/Alpine/Docker] in general?
Great! I am not that comfortable with Docker, but I appreciate the great job you are doing on the CI front.
Thanks!
Yes, that way of (re)defining _XOPEN_SOURCE
looks good to me. I would even be happy with the “magic number” version:
#ifndef M_PI
# define M_PI 3.1415926535897932
#endif
Also note the
usleep
issue further down.Origin: https://bugs.gentoo.org/922285
Besides a fix, we could add CI using Docker with an image of Alpine Linux to cover compilation with musl, if that sounds acceptable. It would help protect against regressions once this is fixed.