{devel}[system/system] Set C standard for system M4 1.4.19#22798
{devel}[system/system] Set C standard for system M4 1.4.19#22798jfgrimm merged 1 commit intoeasybuilders:developfrom
Conversation
|
Test report by @Thyre |
|
Test report by @Thyre |
|
Test report by @Thyre |
|
@boegelbot please test @ jsc-zen3 |
|
@Thyre: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de PR test command '
Test results coming soon (I hope)... Details- notification for comment with ID 2827212100 processed Message to humans: this is just bookkeeping information for me, |
|
Test report by @boegelbot |
|
Test report by @jfgrimm |
|
Going in, thanks @Thyre! |
|
Just taking a note here: while testing easybuilders/easybuild-easyblocks#3728, I noticed that this causes trouble to build Building fails with: Not using I won't spend more time on this since I consider CentOS 7 to unsupported (since it's EOL since June 2024), but may be useful info in case someone hits this problem... |
The GCC version used by CentOS 7 disables certain extensions, including
The failing code wrongly assumes that the #elif defined __GNUC__ && !defined __clang__
memset (s, '\0', len);
/* Compiler barrier. */
asm volatile ("" ::: "memory");
#elif defined __clang__
memset (s, '\0', len);
/* Compiler barrier. */
/* With asm ("" ::: "memory") LLVM analyzes uses of 's' and finds that the
whole thing is dead and eliminates it. Use 'g' to work around this
problem. See <https://bugs.llvm.org/show_bug.cgi?id=15495#c11>. */
__asm__ volatile ("" : : "g"(s) : "memory");The solution is described in the same GCC documentation:
Theoretically, this should be checked by the M4 configure, but is not...
I tend towards one of the first two options. People using GCC 15 will also likely run into issues because of having binutils 2.44 on the system, which also requires some manual work to get older toolchains running anyway (filtering binutils deps or use 2.44 instead of 2.4x for the toolchain). |
|
Opened #22998 to address the issue. I chose a patch, since this reduces the work a user might need to do to install older toolchains. |
(created using
eb --new-pr)Fixes #22797