aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <josmyers@redhat.com>2024-11-19 22:25:39 +0000
committerJoseph Myers <josmyers@redhat.com>2024-11-19 22:25:39 +0000
commitd899b48a30b2dd27ab25e1cd90ce28b75f7c0755 (patch)
tree1be86f8647ba0578872b9f5515c32f76a6777136
parent3ef7e4286155b70816c2393414b935751a39d685 (diff)
downloadglibc-d899b48a30b2dd27ab25e1cd90ce28b75f7c0755.zip
glibc-d899b48a30b2dd27ab25e1cd90ce28b75f7c0755.tar.gz
glibc-d899b48a30b2dd27ab25e1cd90ce28b75f7c0755.tar.bz2
Fix femode_t conditionals for arc and or1k
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).
-rw-r--r--sysdeps/arc/bits/fenv.h2
-rw-r--r--sysdeps/or1k/bits/fenv.h2
2 files changed, 2 insertions, 2 deletions
diff --git a/sysdeps/arc/bits/fenv.h b/sysdeps/arc/bits/fenv.h
index 7c92f50..4e104f6 100644
--- a/sysdeps/arc/bits/fenv.h
+++ b/sysdeps/arc/bits/fenv.h
@@ -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;
diff --git a/sysdeps/or1k/bits/fenv.h b/sysdeps/or1k/bits/fenv.h
index 0126780..ff73d57 100644
--- a/sysdeps/or1k/bits/fenv.h
+++ b/sysdeps/or1k/bits/fenv.h
@@ -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;