1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-30 22:43:12 +03:00
Files
glibc/sysdeps/s390/configure
H.J. Lu 27b96e069a Raise the minimum GCC version to 12.1 [BZ #32539]
For all Linux distros with glibc 2.40 which I can find, GCC 14.2 is used
to compile glibc 2.40:

OS                    GCC      URL
AOSC                  14.2.0   https://aosc.io/
Arch Linux            14.2.0   https://archlinux.org/
ArchPOWER             14.2.0   https://archlinuxpower.org/
Artix                 14.2.0   https://artixlinux.org/
Debian                14.2.0   https://www.debian.org/
Devuan                14.2.0   https://www.devuan.org/
Exherbo               14.2.0   https://www.exherbolinux.org/
Fedora                14.2.1   https://fedoraproject.org/
Gentoo                14.2.1   https://gentoo.org/
Kali Linux            14.2.0   https://www.kali.org/
KaOS                  14.2.0   https://kaosx.us/
LiGurOS               14.2.0   https://liguros.gitlab.io/
Mageia                14.2.0   https://www.mageia.org/en/
Manjaro               14.2.0   https://manjaro.org/
NixOS                 14.2.0   https://nixos.org/
openmamba             14.2.0   https://openmamba.org/
OpenMandriva          14.2.0   https://openmandriva.org/
openSUSE              14.2.0   https://www.opensuse.org/
Parabola              14.2.0   https://www.parabola.nu/
PLD Linux             14.2.0   https://pld-linux.org/
PureOS                14.2.0   https://pureos.net/
Raspbian              14.2.0   http://raspbian.org/
Slackware             14.2.0   http://www.slackware.com/
Solus                 14.2.0   https://getsol.us/
T2 SDE                14.2.0   http://t2sde.org/
Ubuntu                14.2.0   https://www.ubuntu.com/
Wikidata              14.2.0   https://wikidata.org/

Support older versions of GCC to build glibc 2.42:

1. Need to work around bugs in older versions of GCC.
2. Can't use the new features in newer versions of GCC, which may be
required for new features, like _Float16 which requires GCC 12.1 or
above, in glibc,

The main benefit of supporting older versions of GCC is easier backport
of bug fixes to the older releases of glibc, which can be mitigated by
avoiding incompatible features in newer versions of GCC for critical bug
fixes.  Require GCC 12.1 or newer to build.  Remove GCC version check for
PowerPC and s390x.

TEST_CC and TEST_CXX can be used to test the glibc build with the older
versions of GCC.

For glibc developers who are using Linux OSes which don't come with GCC
12.1 or newer, they should build and install GCC 12.1 or newer to work
on glibc.

This fixes BZ #32539.

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
Reviewed-by: Sam James <sam@gentoo.org>
2025-03-31 08:04:29 -07:00

315 lines
8.4 KiB
Plaintext

# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/s390.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __builtin_tbegin" >&5
printf %s "checking for __builtin_tbegin... " >&6; }
if test ${libc_cv_gcc_builtin_tbegin+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) cat > conftest.c <<\EOF
#include <htmintrin.h>
void testtransaction ()
{
if (__builtin_tbegin (0) == _HTM_TBEGIN_STARTED)
{
__builtin_tend ();
}
}
EOF
if { ac_try='${CC-cc} -mhtm -O2 -S conftest.c -o - | grep -w tbegin > /dev/null'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; } ;
then
libc_cv_gcc_builtin_tbegin=yes
else
libc_cv_gcc_builtin_tbegin=no
fi
rm -f conftest* ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_gcc_builtin_tbegin" >&5
printf "%s\n" "$libc_cv_gcc_builtin_tbegin" >&6; }
if test "$libc_cv_gcc_builtin_tbegin" = no ; then
critic_missing="$critic_missing The used GCC has no support for __builtin_tbegin, which is needed for lock-elision on target S390."
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for S390 vector instruction support" >&5
printf %s "checking for S390 vector instruction support... " >&6; }
if test ${libc_cv_asm_s390_vx+y}
then :
printf %s "(cached) " >&6
else case e in #(
e)
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
void testvecinsn ()
{
__asm__ (".machine \"z13\" \n\t"
".machinemode \"zarch_nohighgprs\" \n\t"
"vistrbs %%v16,%%v17 \n\t"
"locghie %%r1,0" : :);
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
libc_cv_asm_s390_vx=yes
else case e in #(
e) libc_cv_asm_s390_vx=no ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_s390_vx" >&5
printf "%s\n" "$libc_cv_asm_s390_vx" >&6; }
if test "$libc_cv_asm_s390_vx" = yes ;
then
printf "%s\n" "#define HAVE_S390_VX_ASM_SUPPORT 1" >>confdefs.h
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Use binutils with vector-support in order to use optimized implementations." >&5
printf "%s\n" "$as_me: WARNING: Use binutils with vector-support in order to use optimized implementations." >&2;}
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for S390 vector support in gcc" >&5
printf %s "checking for S390 vector support in gcc... " >&6; }
if test ${libc_cv_gcc_s390_vx+y}
then :
printf %s "(cached) " >&6
else case e in #(
e)
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
void testvecclobber ()
{
__asm__ ("" : : : "v16");
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
libc_cv_gcc_s390_vx=yes
else case e in #(
e) libc_cv_gcc_s390_vx=no ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_gcc_s390_vx" >&5
printf "%s\n" "$libc_cv_gcc_s390_vx" >&6; }
if test "$libc_cv_gcc_s390_vx" = yes ;
then
printf "%s\n" "#define HAVE_S390_VX_GCC_SUPPORT 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for S390 arch13 zarch instruction support" >&5
printf %s "checking for S390 arch13 zarch instruction support... " >&6; }
if test ${libc_cv_asm_s390_arch13+y}
then :
printf %s "(cached) " >&6
else case e in #(
e)
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
void testinsn (char *buf)
{
__asm__ (".machine \"arch13\" \n\t"
".machinemode \"zarch_nohighgprs\" \n\t"
"lghi %%r0,16 \n\t"
"mvcrl 0(%0),32(%0) \n\t"
"vstrs %%v20,%%v20,%%v20,%%v20,0,2"
: : "a" (buf) : "memory", "r0");
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
libc_cv_asm_s390_arch13=yes
else case e in #(
e) libc_cv_asm_s390_arch13=no ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_s390_arch13" >&5
printf "%s\n" "$libc_cv_asm_s390_arch13" >&6; }
if test "$libc_cv_asm_s390_arch13" = yes ;
then
printf "%s\n" "#define HAVE_S390_ARCH13_ASM_SUPPORT 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for S390 z10 zarch instruction support as default" >&5
printf %s "checking for S390 z10 zarch instruction support as default... " >&6; }
if test ${libc_cv_asm_s390_min_z10_zarch+y}
then :
printf %s "(cached) " >&6
else case e in #(
e)
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
void testinsn (void *a, void *b, int n)
{
__asm__ ("exrl %2,1f \n\t"
"j 2f \n\t"
"1: mvc 0(1,%0),0(%1) \n\t"
"2:"
: : "a" (a), "a" (b), "d" (n)
: "memory", "cc");
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
libc_cv_asm_s390_min_z10_zarch=yes
else case e in #(
e) libc_cv_asm_s390_min_z10_zarch=no ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_s390_min_z10_zarch" >&5
printf "%s\n" "$libc_cv_asm_s390_min_z10_zarch" >&6; }
if test "$libc_cv_asm_s390_min_z10_zarch" = yes ;
then
printf "%s\n" "#define HAVE_S390_MIN_Z10_ZARCH_ASM_SUPPORT 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for S390 z196 zarch instruction support as default" >&5
printf %s "checking for S390 z196 zarch instruction support as default... " >&6; }
if test ${libc_cv_asm_s390_min_z196_zarch+y}
then :
printf %s "(cached) " >&6
else case e in #(
e)
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
float testinsn (double e)
{
float d;
__asm__ ("ledbra %0,5,%1,4" : "=f" (d) : "f" (e) );
return d;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
libc_cv_asm_s390_min_z196_zarch=yes
else case e in #(
e) libc_cv_asm_s390_min_z196_zarch=no ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_s390_min_z196_zarch" >&5
printf "%s\n" "$libc_cv_asm_s390_min_z196_zarch" >&6; }
if test "$libc_cv_asm_s390_min_z196_zarch" = yes ;
then
printf "%s\n" "#define HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for S390 z13 zarch instruction support as default" >&5
printf %s "checking for S390 z13 zarch instruction support as default... " >&6; }
if test ${libc_cv_asm_s390_min_z13_zarch+y}
then :
printf %s "(cached) " >&6
else case e in #(
e)
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int testinsn (void)
{
int i;
__asm__ ("vl %%v16,0(%%r15)\n\t"
"vlgvf %0,%%v16,0"
: "=d" (i) : : "memory", "v16");
return i;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
libc_cv_asm_s390_min_z13_zarch=yes
else case e in #(
e) libc_cv_asm_s390_min_z13_zarch=no ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_s390_min_z13_zarch" >&5
printf "%s\n" "$libc_cv_asm_s390_min_z13_zarch" >&6; }
if test "$libc_cv_asm_s390_min_z13_zarch" = yes ;
then
printf "%s\n" "#define HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for S390 arch13 zarch instruction support as default" >&5
printf %s "checking for S390 arch13 zarch instruction support as default... " >&6; }
if test ${libc_cv_asm_s390_min_arch13_zarch+y}
then :
printf %s "(cached) " >&6
else case e in #(
e)
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
void testinsn (char *buf)
{
__asm__ ("lghi %%r0,16 \n\t"
"mvcrl 0(%0),32(%0) \n\t"
"vstrs %%v20,%%v20,%%v20,%%v20,0,2"
: : "a" (buf) : "memory", "r0");
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
libc_cv_asm_s390_min_arch13_zarch=yes
else case e in #(
e) libc_cv_asm_s390_min_arch13_zarch=no ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_s390_min_arch13_zarch" >&5
printf "%s\n" "$libc_cv_asm_s390_min_arch13_zarch" >&6; }
if test "$libc_cv_asm_s390_min_arch13_zarch" = yes ;
then
printf "%s\n" "#define HAVE_S390_MIN_ARCH13_ZARCH_ASM_SUPPORT 1" >>confdefs.h
fi
test -n "$critic_missing" && as_fn_error $? "
*** $critic_missing" "$LINENO" 5