bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] std-gnu23: new module


From: Bruno Haible
Subject: Re: [PATCH] std-gnu23: new module
Date: Sat, 16 Nov 2024 13:48:51 +0100

Paul Eggert wrote in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-07/msg00289.html>:
> +# Prefer GNU C23 to earlier versions.

This module does not have the intended effect: With a gcc 15 snapshot,
the 'configure' script of a gnulib testdir produces:

checking for /gnu-inst-gcc/15-20241113/bin/gcc option to enable C23 features... 
unsupported
checking for /gnu-inst-gcc/15-20241113/bin/gcc option to enable C11 features... 
none needed

I would have expected:

checking for /gnu-inst-gcc/15-20241113/bin/gcc option to enable C23 features... 
-std=gnu23

This comes from this piece of code:
> +
> +#include <stdbit.h>
> +static_assert (__STDC_ENDIAN_LITTLE__ != __STDC_ENDIAN_BIG__);
> +

which (in config.log) leads to:

conftest.c:74:10: fatal error: stdbit.h: No such file or directory
   74 | #include <stdbit.h>
      |          ^~~~~~~~~~

This test for <stdbit.h> is not useful, because <stdbit.h> is part of
the C library, not part of the compiler.

  * It has the effect that even with the newest GCC and clang compilers,
    the test "for ... option to enable C23 features" will say "unsupported"
    on all glibc versions < 2.39 and on many other platforms.

  * It does not consider the possibility that the package might not require
    <stdbit.h> or might provide <stdbit.h> via the Gnulib module — since
    by the time 'configure' runs, the Gnulib module has not been built yet.

I would suggest to remove this part of the C23 test. I mean, the test for C11
does not require <uchar.h> to be installed either.

Then, packages can make use of new C23 language features by requiring a
recent compiler on the target platform, but without requiring an entirely
recent OS with glibc on the target platform.

Bruno






reply via email to

[Prev in Thread] Current Thread [Next in Thread]