]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Fix femode_t conditionals for arc and or1k
authorJoseph Myers <josmyers@redhat.com>
Tue, 19 Nov 2024 22:25:39 +0000 (22:25 +0000)
committerJoseph Myers <josmyers@redhat.com>
Tue, 19 Nov 2024 22:25:39 +0000 (22:25 +0000)
Two of the architecture bits/fenv.h headers define femode_t if
__GLIBC_USE (IEC_60559_BFP_EXT), instead of the correct condition
__GLIBC_USE (IEC_60559_BFP_EXT_C23) (both were added after commit
0175c9e9be5f0b2000859666b6e1ef3696f1123b, but were probably first
developed before it and then not updated to take account of its
changes).  This results in failures of the installed headers check for
fenv.h when building with GCC 15 (defaults to -std=gnu23 - we don't
yet have an installed-headers test specifically for C23 mode and don't
yet require a compiler with such a mode for building glibc) together
with a combination of options leaving C23 features enabled, since the
declarations of functions using femode_t use the correct conditions;
see
<https://sourceware.org/pipermail/libc-testresults/2024q4/013163.html>.
Fix the conditionals to get <fenv.h> to work correctly in C23 mode
again.

Tested with build-many-glibcs.py (arc-linux-gnu, arch-linux-gnuhf,
or1k-linux-gnu-hard, or1k-linux-gnu-soft).

sysdeps/arc/bits/fenv.h
sysdeps/or1k/bits/fenv.h

index 7c92f50ec976087fc9e8e8a466d42a9c0e590339..4e104f6a5acbe637169c9a0db0fc241f2ca76030 100644 (file)
@@ -69,7 +69,7 @@ typedef struct
 /* If the default argument is used we use this value.  */
 #define FE_DFL_ENV     ((const fenv_t *) -1)
 
-#if __GLIBC_USE (IEC_60559_BFP_EXT)
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
 /* Type representing floating-point control modes.  */
 typedef unsigned int femode_t;
 
index 01267805e65722d7d7f143aeb04f216f2877da3c..ff73d57c31af1f21b755b59f83ab3c057e59b212 100644 (file)
@@ -79,7 +79,7 @@ typedef unsigned int fenv_t;
 /* If the default argument is used we use this value.  */
 #define FE_DFL_ENV     ((const fenv_t *) -1l)
 
-#if __GLIBC_USE (IEC_60559_BFP_EXT)
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
 /* Type representing floating-point control modes.  */
 typedef unsigned int femode_t;