[PATCH] powerpc: Fix -mlong-double-128 IBM format configure test for Clang
Matt Turner
mattst88@gmail.com
Sun Jul 26 18:43:11 GMT 2026
The check for -mlong-double-128 IBM extended format support wrapped its
test code in AC_LANG_PROGRAM, which places the body inside main(). The
body defines a function, so it became a nested function definition -- a
GCC extension that Clang does not implement, making the test fail with
Clang.
Use AC_LANG_SOURCE so the function is defined at file scope, and
regenerate configure.
---
sysdeps/unix/sysv/linux/powerpc/configure | 8 +-------
sysdeps/unix/sysv/linux/powerpc/configure.ac | 3 ++-
2 files changed, 3 insertions(+), 8 deletions(-)
diff --git ./sysdeps/unix/sysv/linux/powerpc/configure ./sysdeps/unix/sysv/linux/powerpc/configure
index ef2055db92..eb8578404f 100644
--- ./sysdeps/unix/sysv/linux/powerpc/configure
+++ ./sysdeps/unix/sysv/linux/powerpc/configure
@@ -12,18 +12,12 @@ else case e in #(
CFLAGS="$CFLAGS -mlong-double-128"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-#include <float.h>
-int
-main (void)
-{
+#include <float.h>
#if LDBL_MANT_DIG != 106
# error "compiler doesn't implement IBM extended format of long double"
#endif
long double foobar (long double x) { return x; }
- ;
- return 0;
-}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
diff --git ./sysdeps/unix/sysv/linux/powerpc/configure.ac ./sysdeps/unix/sysv/linux/powerpc/configure.ac
index 42347a66fc..ca0f82da08 100644
--- ./sysdeps/unix/sysv/linux/powerpc/configure.ac
+++ ./sysdeps/unix/sysv/linux/powerpc/configure.ac
@@ -6,7 +6,8 @@ AC_CACHE_CHECK(whether $CC $CFLAGS -mlong-double-128 uses IBM extended format,
libc_cv_mlong_double_128ibm, [dnl
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -mlong-double-128"
-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <float.h>]], [[
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
+#include <float.h>
#if LDBL_MANT_DIG != 106
# error "compiler doesn't implement IBM extended format of long double"
#endif
--
2.54.0
More information about the Libc-alpha
mailing list