https://gcc.gnu.org/g:abb176b702aa3e67dad6d1d724194e144cd85d8e

commit abb176b702aa3e67dad6d1d724194e144cd85d8e
Author: Michael Meissner <meiss...@linux.ibm.com>
Date:   Tue Jul 16 11:19:52 2024 -0400

    Revert changes

Diff:
---
 gcc/testsuite/gcc.target/powerpc/abs128-1.c        |  3 +--
 .../gcc.target/powerpc/bfp/scalar-insert-exp-16.c  |  1 -
 gcc/testsuite/gcc.target/powerpc/copysign128-1.c   |  3 +--
 gcc/testsuite/gcc.target/powerpc/divkc3-1.c        |  3 +--
 gcc/testsuite/gcc.target/powerpc/float128-3.c      |  1 -
 gcc/testsuite/gcc.target/powerpc/float128-5.c      |  1 -
 gcc/testsuite/gcc.target/powerpc/float128-math.c   |  3 +--
 gcc/testsuite/gcc.target/powerpc/inf128-1.c        |  3 +--
 gcc/testsuite/gcc.target/powerpc/mulkc3-1.c        |  3 +--
 gcc/testsuite/gcc.target/powerpc/nan128-1.c        |  3 +--
 gcc/testsuite/gcc.target/powerpc/p9-lxvx-stxvx-3.c |  2 +-
 gcc/testsuite/gcc.target/powerpc/pr104253.c        |  2 +-
 gcc/testsuite/gcc.target/powerpc/pr70640.c         |  2 +-
 gcc/testsuite/gcc.target/powerpc/pr70669.c         |  3 +--
 gcc/testsuite/gcc.target/powerpc/pr79004.c         |  3 +--
 gcc/testsuite/gcc.target/powerpc/pr79038-1.c       |  3 +--
 gcc/testsuite/gcc.target/powerpc/pr81959.c         |  3 +--
 gcc/testsuite/gcc.target/powerpc/pr85657-1.c       |  2 +-
 gcc/testsuite/gcc.target/powerpc/pr85657-2.c       |  2 +-
 gcc/testsuite/gcc.target/powerpc/pr99708.c         |  2 +-
 gcc/testsuite/gcc.target/powerpc/signbit-1.c       |  2 +-
 gcc/testsuite/gcc.target/powerpc/signbit-2.c       |  2 +-
 gcc/testsuite/gcc.target/powerpc/signbit-3.c       |  2 +-
 gcc/testsuite/lib/target-supports.exp              | 24 +++++++++++++---------
 libgcc/config.host                                 | 12 +++++------
 libgcc/config/rs6000/t-float128                    |  8 +-------
 libgcc/config/rs6000/t-float128-hw                 |  3 ++-
 libgcc/config/rs6000/t-float128-p10-hw             |  3 ++-
 libgcc/configure                                   |  8 +-------
 libgcc/configure.ac                                |  8 +-------
 30 files changed, 47 insertions(+), 73 deletions(-)

diff --git a/gcc/testsuite/gcc.target/powerpc/abs128-1.c 
b/gcc/testsuite/gcc.target/powerpc/abs128-1.c
index e8702ec3127a..fe5206daff8c 100644
--- a/gcc/testsuite/gcc.target/powerpc/abs128-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/abs128-1.c
@@ -1,6 +1,5 @@
 /* { dg-do run { target { powerpc64*-*-* && vsx_hw } } } */
-/* { dg-options "-mvsx" } */
-/* { dg-require-effective-target ppc_float128_sw } */
+/* { dg-options "-mfloat128 -mvsx" } */
 
 void abort ();
 
diff --git a/gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-16.c 
b/gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-16.c
index 081fb2e2995f..f0e03c5173d2 100644
--- a/gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-16.c
+++ b/gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-16.c
@@ -2,7 +2,6 @@
 /* { dg-require-effective-target lp64 } */
 /* { dg-require-effective-target p9vector_hw } */
 /* { dg-options "-mdejagnu-cpu=power9 -save-temps" } */
-/* { dg-require-effective-target ppc_float128_sw } */
 
 #include <altivec.h>
 #include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/powerpc/copysign128-1.c 
b/gcc/testsuite/gcc.target/powerpc/copysign128-1.c
index ac8528b53273..429dfc072e3b 100644
--- a/gcc/testsuite/gcc.target/powerpc/copysign128-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/copysign128-1.c
@@ -1,6 +1,5 @@
 /* { dg-do run { target { powerpc64*-*-* && vsx_hw } } } */
-/* { dg-options "-mvsx" } */
-/* { dg-require-effective-target ppc_float128_sw } */
+/* { dg-options "-mfloat128 -mvsx" } */
 
 void abort ();
 
diff --git a/gcc/testsuite/gcc.target/powerpc/divkc3-1.c 
b/gcc/testsuite/gcc.target/powerpc/divkc3-1.c
index cb7335f2a755..89bf04f12a97 100644
--- a/gcc/testsuite/gcc.target/powerpc/divkc3-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/divkc3-1.c
@@ -1,6 +1,5 @@
 /* { dg-do run { target { powerpc64*-*-* && p8vector_hw } } } */
-/* { dg-options "-mvsx" } */
-/* { dg-require-effective-target ppc_float128_sw } */
+/* { dg-options "-mfloat128 -mvsx" } */
 
 void abort ();
 
diff --git a/gcc/testsuite/gcc.target/powerpc/float128-3.c 
b/gcc/testsuite/gcc.target/powerpc/float128-3.c
index e58bccdfa159..e62ad5f5247f 100644
--- a/gcc/testsuite/gcc.target/powerpc/float128-3.c
+++ b/gcc/testsuite/gcc.target/powerpc/float128-3.c
@@ -1,7 +1,6 @@
 /* { dg-do compile { target { powerpc*-*-linux* } } } */
 /* { dg-options "-O2 -mvsx -mno-float128" } */
 /* { dg-require-effective-target powerpc_vsx } */
-/* { dg-require-effective-target ppc_float128_sw } */
 
 /* Test that we can use #pragma GCC target to enable -mfloat128.  */
 
diff --git a/gcc/testsuite/gcc.target/powerpc/float128-5.c 
b/gcc/testsuite/gcc.target/powerpc/float128-5.c
index 8a5d8ceff216..8a9eee971fbc 100644
--- a/gcc/testsuite/gcc.target/powerpc/float128-5.c
+++ b/gcc/testsuite/gcc.target/powerpc/float128-5.c
@@ -1,7 +1,6 @@
 /* { dg-do compile { target { powerpc*-*-linux* && lp64 } } } */
 /* { dg-options "-O2 -mvsx -mno-float128" } */
 /* { dg-additional-options "-mdejagnu-cpu=power9" { target { ! has_arch_pwr9 } 
} } */
-/* { dg-require-effective-target ppc_float128_sw } */
 /* { dg-require-effective-target powerpc_vsx } */
 
 /* Test that we can use #pragma GCC target to enable -mfloat128 and generate
diff --git a/gcc/testsuite/gcc.target/powerpc/float128-math.c 
b/gcc/testsuite/gcc.target/powerpc/float128-math.c
index 35b81c0a15a0..d1e222397187 100644
--- a/gcc/testsuite/gcc.target/powerpc/float128-math.c
+++ b/gcc/testsuite/gcc.target/powerpc/float128-math.c
@@ -1,7 +1,6 @@
 /* { dg-require-effective-target ppc_float128_sw } */
 /* { dg-require-effective-target vsx_hw } */
-/* { dg-require-effective-target ppc_float128_sw } */
-/* { dg-options "-mvsx -O2 -mlong-double-128 -mabi=ieeelongdouble -Wno-psabi" 
} */
+/* { dg-options "-mvsx -O2 -mfloat128 -mlong-double-128 -mabi=ieeelongdouble 
-Wno-psabi" } */
 
 /* Test whether we convert __builtin_<math>l to __builtin_<math>f128 if the
    default long double type is IEEE 128-bit.  We leave off the \M in matching
diff --git a/gcc/testsuite/gcc.target/powerpc/inf128-1.c 
b/gcc/testsuite/gcc.target/powerpc/inf128-1.c
index b20a2f21bcfc..df797e332208 100644
--- a/gcc/testsuite/gcc.target/powerpc/inf128-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/inf128-1.c
@@ -1,6 +1,5 @@
 /* { dg-do run { target { powerpc64*-*-* && vsx_hw } } } */
-/* { dg-require-effective-target ppc_float128_sw } */
-/* { dg-options "-mvsx" } */
+/* { dg-options "-mfloat128 -mvsx" } */
 
 void abort ();
 
diff --git a/gcc/testsuite/gcc.target/powerpc/mulkc3-1.c 
b/gcc/testsuite/gcc.target/powerpc/mulkc3-1.c
index e86ef2f1950d..b975a91dbd7a 100644
--- a/gcc/testsuite/gcc.target/powerpc/mulkc3-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/mulkc3-1.c
@@ -1,6 +1,5 @@
 /* { dg-do run { target { powerpc64*-*-* && p8vector_hw } } } */
-/* { dg-require-effective-target ppc_float128_sw } */
-/* { dg-options "-mvsx" } */
+/* { dg-options "-mfloat128 -mvsx" } */
 
 void abort ();
 
diff --git a/gcc/testsuite/gcc.target/powerpc/nan128-1.c 
b/gcc/testsuite/gcc.target/powerpc/nan128-1.c
index b3c108e78440..e327f40f837c 100644
--- a/gcc/testsuite/gcc.target/powerpc/nan128-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/nan128-1.c
@@ -1,6 +1,5 @@
 /* { dg-do run { target { powerpc64*-*-* && vsx_hw } } } */
-/* { dg-options "-mvsx" } */
-/* { dg-require-effective-target ppc_float128_sw } */
+/* { dg-options "-mfloat128 -mvsx" } */
 
 #include <stdio.h>
 
diff --git a/gcc/testsuite/gcc.target/powerpc/p9-lxvx-stxvx-3.c 
b/gcc/testsuite/gcc.target/powerpc/p9-lxvx-stxvx-3.c
index 440c26e060e1..0994e6a8da86 100644
--- a/gcc/testsuite/gcc.target/powerpc/p9-lxvx-stxvx-3.c
+++ b/gcc/testsuite/gcc.target/powerpc/p9-lxvx-stxvx-3.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-mdejagnu-cpu=power9 -mvsx -O3" } */
+/* { dg-options "-mdejagnu-cpu=power9 -mvsx -O3 -mfloat128" } */
 /* { dg-require-effective-target ppc_float128_sw } */
 /* { dg-require-effective-target powerpc_vsx } */
 /* { dg-final { scan-assembler "lxvx" } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/pr104253.c 
b/gcc/testsuite/gcc.target/powerpc/pr104253.c
index 6b2d6e010cc1..e5f9499b7c88 100644
--- a/gcc/testsuite/gcc.target/powerpc/pr104253.c
+++ b/gcc/testsuite/gcc.target/powerpc/pr104253.c
@@ -7,7 +7,7 @@
 
 /* { dg-do run } */
 /* { dg-require-effective-target ppc_float128_sw } */
-/* { dg-options "-O2 -mvsx" } */
+/* { dg-options "-O2 -mvsx -mfloat128" } */
 /* { dg-prune-output ".-mfloat128. option may not be fully supported" } */
 
 /*
diff --git a/gcc/testsuite/gcc.target/powerpc/pr70640.c 
b/gcc/testsuite/gcc.target/powerpc/pr70640.c
index 2517d127989a..6f8af97c0746 100644
--- a/gcc/testsuite/gcc.target/powerpc/pr70640.c
+++ b/gcc/testsuite/gcc.target/powerpc/pr70640.c
@@ -1,6 +1,6 @@
 /* { dg-do compile { target { powerpc*-*-linux* } } } */
 /* { dg-require-effective-target powerpc_float128_sw_ok } */
-/* { dg-options "-O2 -mdejagnu-cpu=power8" } */
+/* { dg-options "-O2 -mdejagnu-cpu=power8 -mfloat128" } */
 
 __float128 foo (__float128 a) { return -a; }
 
diff --git a/gcc/testsuite/gcc.target/powerpc/pr70669.c 
b/gcc/testsuite/gcc.target/powerpc/pr70669.c
index 8f1393a63bbe..96dc13db38cc 100644
--- a/gcc/testsuite/gcc.target/powerpc/pr70669.c
+++ b/gcc/testsuite/gcc.target/powerpc/pr70669.c
@@ -1,7 +1,6 @@
 /* { dg-do compile { target { powerpc*-*-linux* && lp64 } } } */
-/* { dg-options "-O2 -mdejagnu-cpu=power8 -mvsx" } */
+/* { dg-options "-O2 -mdejagnu-cpu=power8 -mvsx -mfloat128" } */
 /* { dg-require-effective-target powerpc_vsx } */
-/* { dg-require-effective-target ppc_float128_sw } */
 
 #ifndef TYPE
 #define TYPE __float128
diff --git a/gcc/testsuite/gcc.target/powerpc/pr79004.c 
b/gcc/testsuite/gcc.target/powerpc/pr79004.c
index bb1208960371..60c576cd36b6 100644
--- a/gcc/testsuite/gcc.target/powerpc/pr79004.c
+++ b/gcc/testsuite/gcc.target/powerpc/pr79004.c
@@ -1,7 +1,6 @@
 /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
-/* { dg-options "-mdejagnu-cpu=power9 -mvsx -O2" } */
+/* { dg-options "-mdejagnu-cpu=power9 -mvsx -O2 -mfloat128" } */
 /* { dg-require-effective-target powerpc_vsx } */
-/* { dg-require-effective-target ppc_float128_sw } */
 
 #include <math.h>
 
diff --git a/gcc/testsuite/gcc.target/powerpc/pr79038-1.c 
b/gcc/testsuite/gcc.target/powerpc/pr79038-1.c
index 0c0568be7c65..7c5500716b78 100644
--- a/gcc/testsuite/gcc.target/powerpc/pr79038-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/pr79038-1.c
@@ -1,7 +1,6 @@
 /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
-/* { dg-options "-mdejagnu-cpu=power9 -mvsx -O2" } */
+/* { dg-options "-mdejagnu-cpu=power9 -mvsx -O2 -mfloat128" } */
 /* { dg-require-effective-target powerpc_vsx } */
-/* { dg-require-effective-target ppc_float128_sw } */
 
 #ifndef TYPE
 #define TYPE _Float128
diff --git a/gcc/testsuite/gcc.target/powerpc/pr81959.c 
b/gcc/testsuite/gcc.target/powerpc/pr81959.c
index c65b40d65063..0ad637eb3c96 100644
--- a/gcc/testsuite/gcc.target/powerpc/pr81959.c
+++ b/gcc/testsuite/gcc.target/powerpc/pr81959.c
@@ -1,8 +1,7 @@
 /* { dg-do compile { target { powerpc64*-*-* && lp64 } } } */
-/* { dg-options "-mvsx -O2" } */
+/* { dg-options "-mvsx -O2 -mfloat128" } */
 /* { dg-additional-options "-mdejagnu-cpu=power9" { target { ! has_arch_pwr9 } 
} } */
 /* { dg-require-effective-target powerpc_vsx } */
-/* { dg-require-effective-target ppc_float128_sw } */
 
 /* PR 81959, the compiler raised on unrecognizable insn message in converting
    int to __float128, where the int had a PRE_INC in the address.  */
diff --git a/gcc/testsuite/gcc.target/powerpc/pr85657-1.c 
b/gcc/testsuite/gcc.target/powerpc/pr85657-1.c
index 85910db35d0d..3337d06332d6 100644
--- a/gcc/testsuite/gcc.target/powerpc/pr85657-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/pr85657-1.c
@@ -1,6 +1,6 @@
 /* { dg-do compile { target { powerpc*-*-linux* } } } */
 /* { dg-require-effective-target ppc_float128_sw } */
-/* { dg-options "-mvsx -O2 -mabi=ibmlongdouble -Wno-psabi" } */
+/* { dg-options "-mvsx -mfloat128 -O2 -mabi=ibmlongdouble -Wno-psabi" } */
 
 // PR 85657 -- make sure conversions work between each of the 128-bit floating
 // point types.
diff --git a/gcc/testsuite/gcc.target/powerpc/pr85657-2.c 
b/gcc/testsuite/gcc.target/powerpc/pr85657-2.c
index 112171946535..33113da8f858 100644
--- a/gcc/testsuite/gcc.target/powerpc/pr85657-2.c
+++ b/gcc/testsuite/gcc.target/powerpc/pr85657-2.c
@@ -1,6 +1,6 @@
 /* { dg-do compile { target { powerpc*-*-linux* } } } */
 /* { dg-require-effective-target ppc_float128_sw } */
-/* { dg-options "-mvsx -O2 -mabi=ieeelongdouble -Wno-psabi" } */
+/* { dg-options "-mvsx -mfloat128 -O2 -mabi=ieeelongdouble -Wno-psabi" } */
 
 // PR 85657 -- make sure conversions work between each of the 128-bit floating
 // point types.
diff --git a/gcc/testsuite/gcc.target/powerpc/pr99708.c 
b/gcc/testsuite/gcc.target/powerpc/pr99708.c
index 888719218377..c6aa0511b892 100644
--- a/gcc/testsuite/gcc.target/powerpc/pr99708.c
+++ b/gcc/testsuite/gcc.target/powerpc/pr99708.c
@@ -1,7 +1,7 @@
 /* { dg-do run } */
 /* { dg-skip-if "" { powerpc*-*-darwin* powerpc-ibm-aix* } } */
 /* { require-effective-target ppc_float128_sw } */
-/* { dg-options "-O2 -mvsx" } */
+/* { dg-options "-O2 -mvsx -mfloat128" } */
 
 /*
  * PR target/99708
diff --git a/gcc/testsuite/gcc.target/powerpc/signbit-1.c 
b/gcc/testsuite/gcc.target/powerpc/signbit-1.c
index bc9f113d4b6a..a29ae0fd98b6 100644
--- a/gcc/testsuite/gcc.target/powerpc/signbit-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/signbit-1.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-mdejagnu-cpu=power8 -mvsx -O2" } */
+/* { dg-options "-mdejagnu-cpu=power8 -mvsx -O2 -mfloat128" } */
 /* { dg-require-effective-target lp64 } */
 /* { dg-require-effective-target ppc_float128_sw } */
 /* { dg-require-effective-target powerpc_vsx } */
diff --git a/gcc/testsuite/gcc.target/powerpc/signbit-2.c 
b/gcc/testsuite/gcc.target/powerpc/signbit-2.c
index df860dabb1bb..a6d83458f9d2 100644
--- a/gcc/testsuite/gcc.target/powerpc/signbit-2.c
+++ b/gcc/testsuite/gcc.target/powerpc/signbit-2.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-mdejagnu-cpu=power9 -mvsx -O2" } */
+/* { dg-options "-mdejagnu-cpu=power9 -mvsx -O2 -mfloat128" } */
 /* { dg-require-effective-target powerpc_vsx } */
 /* { dg-require-effective-target ppc_float128_sw } */
 
diff --git a/gcc/testsuite/gcc.target/powerpc/signbit-3.c 
b/gcc/testsuite/gcc.target/powerpc/signbit-3.c
index 6b01e5ad7a3c..2d1ecb963517 100644
--- a/gcc/testsuite/gcc.target/powerpc/signbit-3.c
+++ b/gcc/testsuite/gcc.target/powerpc/signbit-3.c
@@ -1,6 +1,6 @@
 /* { dg-do run } */
 /* { dg-require-effective-target ppc_float128_sw } */
-/* { dg-options "-mdejagnu-cpu=power7 -O2 -lm" } */
+/* { dg-options "-mdejagnu-cpu=power7 -O2 -mfloat128 -lm" } */
 
 #ifdef DEBUG
 #include <stdio.h>
diff --git a/gcc/testsuite/lib/target-supports.exp 
b/gcc/testsuite/lib/target-supports.exp
index 9e94fd78d925..b7df6150bcbd 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -2979,6 +2979,7 @@ proc check_ppc_float128_sw_available { } {
             || [istarget *-*-darwin*]} {
            expr 0
        } else {
+           set options "-mfloat128 -mvsx"
            check_runtime_nocache ppc_float128_sw_available {
                volatile __float128 x = 1.0q;
                volatile __float128 y = 2.0q;
@@ -2987,7 +2988,7 @@ proc check_ppc_float128_sw_available { } {
                    __float128 z = x + y;
                    return (z != 3.0q);
                }
-           } ""
+           } $options
        }
     }]
 }
@@ -3004,7 +3005,7 @@ proc check_ppc_float128_hw_available { } {
             || [istarget *-*-darwin*]} {
            expr 0
        } else {
-           set options "-mfloat128-hardware -mcpu=power9"
+           set options "-mfloat128 -mvsx -mfloat128-hardware -mcpu=power9"
            check_runtime_nocache ppc_float128_hw_available {
                volatile __float128 x = 1.0q;
                volatile __float128 y = 2.0q;
@@ -3029,13 +3030,14 @@ proc check_effective_target_ppc_ieee128_ok { } {
             || [istarget *-*-vxworks*]} {
            expr 0
        } else {
+           set options "-mfloat128"
            check_runtime_nocache ppc_ieee128_ok {
                int main()
                {
                  __ieee128 a;
                  return 0;
                }
-           } ""
+           } $options
        }
     }]
 }
@@ -3944,6 +3946,9 @@ proc check_effective_target___float128 { } {
 }
 
 proc add_options_for___float128 { flags } {
+    if { [istarget powerpc*-*-linux*] } {
+       return "$flags -mfloat128 -mvsx"
+    }
     return "$flags"
 }
 
@@ -3953,7 +3958,7 @@ proc add_options_for___float128 { flags } {
 
 proc check_effective_target_base_quadfloat_support { } {
     if { [istarget powerpc*-*-*] } {
-       return [check_effective_target_powerpc_float128_sw_ok]
+       return [check_vsx_hw_available]
     }
     return 1
 }
@@ -7212,9 +7217,8 @@ proc check_effective_target_power10_ok { } {
     }
 }
 
-# Return 1 if this is a PowerPC target supporting IEEE 128-bit floating point
-# via either software emulation on power7/power8 systems or hardware support on
-# power9.
+# Return 1 if this is a PowerPC target supporting -mfloat128 via either
+# software emulation on power7/power8 systems or hardware support on power9.
 
 proc check_effective_target_powerpc_float128_sw_ok { } {
     if { [istarget powerpc*-*-*]
@@ -7230,14 +7234,14 @@ proc check_effective_target_powerpc_float128_sw_ok { } {
                    __float128 z = x + y;
                    return (z == 3.0q);
                }
-           }]
+           } "-mfloat128 -mvsx"]
     } else {
        return 0
     }
 }
 
-# Return 1 if this is a PowerPC target supporting IEEE 128-bit floating point
-# via hardware support on power9.
+# Return 1 if this is a PowerPC target supporting -mfloat128 via hardware
+# support on power9.
 
 proc check_effective_target_powerpc_float128_hw_ok { } {
     if { [istarget powerpc*-*-*]
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/config/rs6000/t-float128 b/libgcc/config/rs6000/t-float128
index 93e78adcd624..b09b5664af0e 100644
--- a/libgcc/config/rs6000/t-float128
+++ b/libgcc/config/rs6000/t-float128
@@ -74,13 +74,7 @@ fp128_includes               = $(srcdir)/soft-fp/double.h \
                          $(srcdir)/soft-fp/soft-fp.h
 
 # Build the emulator without ISA 3.0 hardware support.
-#
-# In the past we added -mvsx to build the float128 specific libraries with the
-# VSX instruction set.  This allowed the big endian GCC on server platforms to
-# build the float128 support.  However, is causes problems when other default
-# cpu targets are used such as the 7450.
-
-FP128_CFLAGS_SW                 = -Wno-type-limits -mfloat128 \
+FP128_CFLAGS_SW                 = -Wno-type-limits -mvsx -mfloat128 \
                           -mno-float128-hardware -mno-gnu-attribute \
                           -I$(srcdir)/soft-fp \
                           -I$(srcdir)/config/rs6000 \
diff --git a/libgcc/config/rs6000/t-float128-hw 
b/libgcc/config/rs6000/t-float128-hw
index 82726c98b983..ed67b572580f 100644
--- a/libgcc/config/rs6000/t-float128-hw
+++ b/libgcc/config/rs6000/t-float128-hw
@@ -23,7 +23,8 @@ fp128_ifunc_obj               = $(fp128_ifunc_static_obj) 
$(fp128_ifunc_shared_obj)
 fp128_sed_hw           = -hw
 
 # Build the hardware support functions with appropriate hardware support
-FP128_CFLAGS_HW                 = -Wno-type-limits -mfloat128 -mcpu=power9 \
+FP128_CFLAGS_HW                 = -Wno-type-limits -mvsx -mfloat128 \
+                          -mcpu=power9 \
                           -mfloat128-hardware -mno-gnu-attribute \
                           -I$(srcdir)/soft-fp \
                           -I$(srcdir)/config/rs6000 \
diff --git a/libgcc/config/rs6000/t-float128-p10-hw 
b/libgcc/config/rs6000/t-float128-p10-hw
index ee50d248ca12..edaaee0e478b 100644
--- a/libgcc/config/rs6000/t-float128-p10-hw
+++ b/libgcc/config/rs6000/t-float128-p10-hw
@@ -13,7 +13,8 @@ fp128_3_1_hw_shared_obj       = $(addsuffix 
_s$(objext),$(fp128_3_1_hw_funcs))
 fp128_3_1_hw_obj       = $(fp128_3_1_hw_static_obj) $(fp128_3_1_hw_shared_obj)
 
 # Build the hardware support functions with appropriate hardware support
-FP128_3_1_CFLAGS_HW     = -Wno-type-limits -mfloat128 -mcpu=power10 \
+FP128_3_1_CFLAGS_HW     = -Wno-type-limits -mvsx -mfloat128 \
+                          -mcpu=power10 \
                           -mfloat128-hardware -mno-gnu-attribute \
                           -I$(srcdir)/soft-fp \
                           -I$(srcdir)/config/rs6000 \
diff --git a/libgcc/configure b/libgcc/configure
index 635237a06c82..a69d314374a3 100755
--- a/libgcc/configure
+++ b/libgcc/configure
@@ -5184,15 +5184,9 @@ 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.
-#
-# with the VSX instruction set.  This allowed the big endian GCC on server
-# platforms to build the float128 support.  However, is causes problems when
-# other default cpu targets are used such as the 7450.  Now
-# libgcc_cv_powerpc_float128 will fail if the default cpu cannot build the
-# float128 support.
 powerpc*-*-linux*)
   saved_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -mfloat128"
+  CFLAGS="$CFLAGS -mabi=altivec -mvsx -mfloat128"
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PowerPC ISA 2.06 to 
build __float128 libraries" >&5
 $as_echo_n "checking for PowerPC ISA 2.06 to build __float128 libraries... " 
>&6; }
 if ${libgcc_cv_powerpc_float128+:} false; then :
diff --git a/libgcc/configure.ac b/libgcc/configure.ac
index 2a725a6f6620..c2749fe09584 100644
--- a/libgcc/configure.ac
+++ b/libgcc/configure.ac
@@ -407,15 +407,9 @@ 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.
-#
-# with the VSX instruction set.  This allowed the big endian GCC on server
-# platforms to build the float128 support.  However, is causes problems when
-# other default cpu targets are used such as the 7450.  Now
-# libgcc_cv_powerpc_float128 will fail if the default cpu cannot build the
-# float128 support.
 powerpc*-*-linux*)
   saved_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -mfloat128"
+  CFLAGS="$CFLAGS -mabi=altivec -mvsx -mfloat128"
   AC_CACHE_CHECK([for PowerPC ISA 2.06 to build __float128 libraries],
                 [libgcc_cv_powerpc_float128],
                 [AC_COMPILE_IFELSE(

Reply via email to