Re: [PATCH] ldbl-opt: Fix -mlong-double-128 configure test for Clang

Sam James <[email protected]> Thu, 06 Aug 2026 23:11:33 +0100
Newsgroups gmane.comp.lib.glibc.alpha
Organization Gentoo
Message-ID <[email protected]>
Matt Turner <[email protected]> writes:

> The check for -mlong-double-128 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 (and thus the whole
> build error out) with Clang even though it supports -mlong-double-128.
>
> Use AC_LANG_SOURCE so the function is defined at file scope, matching the
> pattern already used by the powerpc64le compiler checks, and regenerate
> configure.

Reviewed-by: Sam James <[email protected]>

> ---
>  sysdeps/ieee754/ldbl-opt/configure    | 7 -------
>  sysdeps/ieee754/ldbl-opt/configure.ac | 2 +-
>  2 files changed, 1 insertion(+), 8 deletions(-)
>  mode change 100644 => 100755 sysdeps/ieee754/ldbl-opt/configure
>
> diff --git ./sysdeps/ieee754/ldbl-opt/configure ./sysdeps/ieee754/ldbl-opt/configure
> old mode 100644
> new mode 100755
> index bc6552da0b..7769cc9781
> --- ./sysdeps/ieee754/ldbl-opt/configure
> +++ ./sysdeps/ieee754/ldbl-opt/configure
> @@ -13,17 +13,10 @@ CFLAGS="$CFLAGS -mlong-double-128"
>  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
>  /* end confdefs.h.  */
>  
> -int
> -main (void)
> -{
> -
>  #ifndef __LONG_DOUBLE_128__
>  # error "compiler did not predefine __LONG_DOUBLE_128__ as expected"
>  #endif
>  long double foobar (long double x) { return x; }
> -  ;
> -  return 0;
> -}
>  _ACEOF
>  if ac_fn_c_try_compile "$LINENO"
>  then :
> diff --git ./sysdeps/ieee754/ldbl-opt/configure.ac ./sysdeps/ieee754/ldbl-opt/configure.ac
> index 70e3b32dc6..1c500ad581 100644
> --- ./sysdeps/ieee754/ldbl-opt/configure.ac
> +++ ./sysdeps/ieee754/ldbl-opt/configure.ac
> @@ -6,7 +6,7 @@ AC_CACHE_CHECK(whether $CC $CFLAGS supports -mlong-double-128,
>  	       libc_cv_mlong_double_128, [dnl
>  save_CFLAGS="$CFLAGS"
>  CFLAGS="$CFLAGS -mlong-double-128"
> -AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
> +AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
>  #ifndef __LONG_DOUBLE_128__
>  # error "compiler did not predefine __LONG_DOUBLE_128__ as expected"
>  #endif
signature.asc (application/pgp-signature, 418 B)
-----BEGIN PGP SIGNATURE-----

iQEBBAEWCgCpFiEEJaa7iN2bdkxrVUHCc4QJ9SDfkZAFAmp1BpUbFIAAAAAABAAO
bWFudTIsMi41KzEuMTIsMiwyXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25z
Lm9wZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQyNUE2QkI4OEREOUI3NjRDNkI1NTQx
QzI3Mzg0MDlGNTIwREY5MTkwDxxzYW1AZ2VudG9vLm9yZwAKCRBzhAn1IN+RkHjH
APkBpXw2lvOLLjUG142/evCYrF3dfTOUzwPLtwtKzh9onQD+Ku/G65vmra64vDSF
ICFOi8FqBK3BfhV34qQnLrl71wE=
=36Q7
-----END PGP SIGNATURE-----