From d899b48a30b2dd27ab25e1cd90ce28b75f7c0755 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Tue, 19 Nov 2024 22:25:39 +0000 Subject: [PATCH] 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 . Fix the conditionals to get 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 | 2 +- sysdeps/or1k/bits/fenv.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sysdeps/arc/bits/fenv.h b/sysdeps/arc/bits/fenv.h index 7c92f50ec9..4e104f6a5a 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 01267805e6..ff73d57c31 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;