https://gcc.gnu.org/g:78633b506f6673f1b3bfcd39df55933ae4f1d4eb
commit 78633b506f6673f1b3bfcd39df55933ae4f1d4eb Author: Michael Meissner <meiss...@linux.ibm.com> Date: Fri Jul 12 20:27:11 2024 -0400 Revert changes Diff: --- gcc/ChangeLog.bugs | 24 +----------------- libgcc/config.host | 12 ++++----- libgcc/configure | 71 +++-------------------------------------------------- libgcc/configure.ac | 17 ++----------- 4 files changed, 13 insertions(+), 111 deletions(-) diff --git a/gcc/ChangeLog.bugs b/gcc/ChangeLog.bugs index f2f6f7986da8..dd7b7846d905 100644 --- a/gcc/ChangeLog.bugs +++ b/gcc/ChangeLog.bugs @@ -1,26 +1,4 @@ -==================== Branch work171-bugs, patch #310 ==================== - -Add checks for building the IEEE 128-bit libgcc support if VSX is not available. - -In the past, we would build libgcc and eable the float128 libraries by adding --mvsx -mabi=altivec to build the support libraries. However, this causes -problems if the default cpu is a 7450. This patch checks to see if can link a -program using the options, and if we can't link the program, do not build the -float128 libraries. - -2024-07-12 Michael Meissner <meiss...@linux.ibm.com> - -libgcc/ - - PR target/115800 - PR target/113652 - * config.host (powerpc*-*-linux*): Do not enable the float128 hardware - and float128 power10 hardware support unless the basic float128 support - is added. - * configure.ac (powerpc*-*-linux*): Check whether the linker and - assembler will be able to build the float128 libraries. - * configure: Regenerate. - +==================== Branch work171-bugs, patch #310 was reverted ==================== ==================== Branch work171-bugs, patch #304 was reverted ==================== ==================== Branch work171-bugs, patch #303 was reverted ==================== ==================== Branch work171-bugs, patch #302 was reverted ==================== diff --git a/libgcc/config.host b/libgcc/config.host index 261b08859a4d..9fae51d4ce7d 100644 --- a/libgcc/config.host +++ b/libgcc/config.host @@ -1292,14 +1292,14 @@ powerpc*-*-linux*) if test $libgcc_cv_powerpc_float128 = yes; then tmake_file="${tmake_file} rs6000/t-float128" + fi - if test $libgcc_cv_powerpc_float128_hw = yes; then - tmake_file="${tmake_file} rs6000/t-float128-hw" + if test $libgcc_cv_powerpc_float128_hw = yes; then + tmake_file="${tmake_file} rs6000/t-float128-hw" + fi - if test $libgcc_cv_powerpc_3_1_float128_hw = yes; then - tmake_file="${tmake_file} rs6000/t-float128-p10-hw" - fi - fi + if test $libgcc_cv_powerpc_3_1_float128_hw = yes; then + tmake_file="${tmake_file} rs6000/t-float128-p10-hw" fi extra_parts="$extra_parts ecrti.o ecrtn.o ncrti.o ncrtn.o" diff --git a/libgcc/configure b/libgcc/configure index bb196c8e7b84..a69d314374a3 100755 --- a/libgcc/configure +++ b/libgcc/configure @@ -1802,52 +1802,6 @@ $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_preproc - -# ac_fn_c_try_link LINENO -# ----------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_link () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - test -x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_link cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. @@ -5230,12 +5184,6 @@ case ${host} in # check if we have VSX (ISA 2.06) support to build the software libraries, and # whether the assembler can handle xsaddqp for hardware support. Also check if # a new glibc is being used so that __builtin_cpu_supports can be used. -# -# We use AC_LINK_IFELSE to verify that the assembler will not abort if given -# the -mvsx -mabi=altivec options to compile the float128 support with VSX. -# Otherwise if the default CPU is something like the 7450, the assembler will -# complain when we build the float128 support. - powerpc*-*-linux*) saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -mabi=altivec -mvsx -mfloat128" @@ -5244,27 +5192,16 @@ $as_echo_n "checking for PowerPC ISA 2.06 to build __float128 libraries... " >&6 if ${libgcc_cv_powerpc_float128+:} false; then : $as_echo_n "(cached) " >&6 else - if test x$gcc_no_link = xyes; then - as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5 -fi -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -volatile vector double a; - volatile vector double b = { 1.0, 2.0 }; - volatile vector double c = { 3.0, 4.0 }; - int main (void) - { - a = b + c; - return 0; - } +vector double dadd (vector double a, vector double b) { return a + b; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO"; then : libgcc_cv_powerpc_float128=yes else libgcc_cv_powerpc_float128=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libgcc_cv_powerpc_float128" >&5 $as_echo "$libgcc_cv_powerpc_float128" >&6; } diff --git a/libgcc/configure.ac b/libgcc/configure.ac index 7a30db9977bd..c2749fe09584 100644 --- a/libgcc/configure.ac +++ b/libgcc/configure.ac @@ -407,26 +407,13 @@ case ${host} in # check if we have VSX (ISA 2.06) support to build the software libraries, and # whether the assembler can handle xsaddqp for hardware support. Also check if # a new glibc is being used so that __builtin_cpu_supports can be used. -# -# We use AC_LINK_IFELSE to verify that the assembler will not abort if given -# the -mvsx -mabi=altivec options to compile the float128 support with VSX. -# Otherwise if the default CPU is something like the 7450, the assembler will -# complain when we build the float128 support. - powerpc*-*-linux*) saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -mabi=altivec -mvsx -mfloat128" AC_CACHE_CHECK([for PowerPC ISA 2.06 to build __float128 libraries], [libgcc_cv_powerpc_float128], - [AC_LINK_IFELSE( - [AC_LANG_SOURCE([volatile vector double a; - volatile vector double b = { 1.0, 2.0 }; - volatile vector double c = { 3.0, 4.0 }; - int main (void) - { - a = b + c; - return 0; - }])], + [AC_COMPILE_IFELSE( + [AC_LANG_SOURCE([vector double dadd (vector double a, vector double b) { return a + b; }])], [libgcc_cv_powerpc_float128=yes], [libgcc_cv_powerpc_float128=no])])