public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc(refs/users/meissner/heads/work106)] Update ChangeLog.meissner
@ 2023-01-18  2:39 Michael Meissner
  0 siblings, 0 replies; 6+ messages in thread
From: Michael Meissner @ 2023-01-18  2:39 UTC (permalink / raw)
  To: gcc-cvs

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

commit e985cdabfc2a5196aa49c9410a9efbfb7992a3e2
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Tue Jan 17 21:39:24 2023 -0500

    Update ChangeLog.meissner

Diff:
---
 gcc/ChangeLog.meissner | 67 ++++++++++++++++++++++----------------------------
 1 file changed, 29 insertions(+), 38 deletions(-)

diff --git a/gcc/ChangeLog.meissner b/gcc/ChangeLog.meissner
index a721c02003c..2657be8d980 100644
--- a/gcc/ChangeLog.meissner
+++ b/gcc/ChangeLog.meissner
@@ -1,22 +1,6 @@
-==================== work106, patch #2 ====================
+==================== work106, patch #3 ====================
 
-PR target/107299: Use _Float128 and _Complex _Float128 for PowerPC libgcc IEEE 128-bit
-
-2023-01-17   Michael Meissner  <meissner@linux.ibm.com>
-
-	PR target/107299
-	* config/rs6000/quad-float128.h (TF): Remove definition.
-	(TFtype): New macro, use _Float128.
-	(TCtype): Change to macro, use _Complex _Float128.
-	(__mulkc3): Remove declaration.
-	(__divkc3): Likewise.
-	* libgcc2.h (TFtype): Allow md files to override this.
-	(TCtype): Likewise.
-	* soft-fp/quad.h (TFtype): Likewise.
-
-==================== work106, patch #1 was reverted ====================
-
-PR target/107299: Update IEEE 128-bit types for PowerPC libgcc
+PR target/107299: Update IEEE 128-bit types in PowerPC libgcc.
 
 This patch updates the IEEE 128-bit types in libgcc.
 
@@ -28,10 +12,6 @@ This patch changes the IEEE 128-bit type (TFtype) in the IEEE 128-bit support
 to use either _Float128 or long double.  Previously we would use the __float128
 type.  In addition, the TCtype will use the same type along with _Complex.
 
-I changed the libgcc build so that the IEEE 128-bit support is now compiled
-with -mabi=ieeelongdouble.  For the _mulkc3 and _divkc3, I explicitly use long
-double and long double _Complex to avoid type mismatch errors.
-
 While it is desirable to ultimately have __float128 and _Float128 use the same
 internal type and mode within GCC, at present if you use the option
 -mabi=ieeelongdouble, the __float128 type will use the long double type.  We
@@ -45,35 +25,46 @@ fix the compiler at some point, but right now, this is preventing people on
 Fedora 36 systems from building compilers where the default long double is IEEE
 128-bit.
 
-2023-01-12   Michael Meissner  <meissner@linux.ibm.com>
+I changed the three functions that deal with complex multiply and complex divide
+support (_mulkc3, _divkc3, and float128-ifunc) to always be compiled with IEEE
+128-bit long double.  This is to be type correct, and avoid mismatch declaration
+errors from the compiler.
+
+2023-01-17   Michael Meissner  <meissner@linux.ibm.com>
 
 	PR target/107299
-	* config/rs6000/_divkc3.c (toplevel): Add assertion for building with
-	-mabi=ieeelongdouble.  Remove code supporting -mabi=ibmlongdouble.
-	(COPYSIGN): Use the long double built-in.
+	* config/rs6000/_divkc3.c (top level): Require that long double is IEEE
+	128-bit.
+	(COPYSIGN): Use long double built-in.
 	(INFINITY): Likewise.
 	(FABS): Likewise.
-	* config/rs6000/_mulkc3.c (toplevel): Add assertion for building with
-	-mabi=ieeelongdouble.
-	(COPYSIGN): Use the long double built-in.
+	(RBIG): Use TFmode constants, not KFmode.
+	(RMIN): Likewise.
+	(RMIN2): Likewise.
+	(RMINSCAL): Likewise.
+	(RMAX2): Likewise.
+	* config/rs6000/_mulkc3.c (top level): Require that long double is IEEE
+	128-bit.
+	(COPYSIGN): Use long double built-in.
 	(INFINITY): Likewise.
-	* config/rs6000/float128-ifunc.c (toplevel): Add assertion for building
-	with -mabi=ieeelongdouble.
-	* config/rs6000/quad-float128.h (TF): Delete definition.
-	(TFtype): Define to be _Float128 or long double.
-	(TCtype): Define to be _Complex _Float128 or _Complex long double.
-	(__mulkc3_sw): Only declare function if -mabi=ieeelongdouble.
+	* config/rs6000/quad-float128.h (TF): Remove definition.
+	(TFtype): New macro, use _Float128 or long double.
+	(TCtype): Change to macro, use _Complex _Float128 or _Complex long
+	double.
+	(__mulkc3_sw): Only declare if long double is IEEE 128-bit.
 	(__divkc3_sw): Likewise.
 	(__mulkc3_hw): Likewise.
 	(__divkc3_hw): Likewise.
 	(__mulkc3): Likewise.
 	(__divkc3): Likewise.
-	* config/rs6000/t-float128 (FP128_CFLAGS_SW): Add -mabi=ieeelongdouble.
-	* config/rs6000/t-float128-hw (FP128_CFLAGS_HW): Likewise.
-	* libgcc2.h (TFtype): Allow MD code to override definition.
+	* libgcc2.h (TFtype): Allow md files to override this.
 	(TCtype): Likewise.
 	* soft-fp/quad.h (TFtype): Likewise.
 
+==================== work106, patch #2 was reverted ====================
+
+==================== work106, patch #1 was reverted ====================
+
 ==================== work106, branch head ====================
 
 2023-01-12   Michael Meissner  <meissner@linux.ibm.com>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [gcc(refs/users/meissner/heads/work106)] Update ChangeLog.meissner
@ 2023-01-18 16:20 Michael Meissner
  0 siblings, 0 replies; 6+ messages in thread
From: Michael Meissner @ 2023-01-18 16:20 UTC (permalink / raw)
  To: gcc-cvs

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

commit b20365c9ee99892240353f84454a93451c107ff8
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Wed Jan 18 11:20:40 2023 -0500

    Update ChangeLog.meissner

Diff:
---
 gcc/ChangeLog.meissner | 46 ++++++++++++++--------------------------------
 1 file changed, 14 insertions(+), 32 deletions(-)

diff --git a/gcc/ChangeLog.meissner b/gcc/ChangeLog.meissner
index 31893ab4dc9..d926b059004 100644
--- a/gcc/ChangeLog.meissner
+++ b/gcc/ChangeLog.meissner
@@ -1,4 +1,4 @@
-==================== work106, patch #6 ====================
+==================== work106, patch #7 ====================
 
 PR target/107299: Fix build issue when long double is IEEE 128-bit
 
@@ -8,13 +8,10 @@ At the moment, we cannot build GCC when the target uses IEEE 128-bit long
 doubles, such as building the compiler for a native Fedora 36 system.  The
 build dies when it is trying to build the _mulkc3.c and _divkc3 modules.
 
-This patch creates special types for declaring complex IEEE 128-bit multiply and
-divide support to use either _Float128 or long double, depending on whether long
-double is IBM or IEEE.
-
-It also uses the correct built-in functions in the libgcc complex IEEE 128-bit
-multiply and divide support.  This fixes the problems when long double types are
-used with explicit f128 built-in functions.
+This patch changes libgcc to use long double for the IEEE 128-bit base type if
+long double is IEEE 128-bit, and it uses _Float128 otherwise.  The built-in
+functions are adjusted to be the correct version based on the IEEE 128-bit base
+type used.
 
 While it is desirable to ultimately have __float128 and _Float128 use the same
 internal type and mode within GCC, at present if you use the option
@@ -29,11 +26,6 @@ fix the compiler at some point, but right now, this is preventing people on
 Fedora 36 systems from building compilers where the default long double is IEEE
 128-bit.
 
-I changed the three functions that deal with complex multiply and complex divide
-support (_mulkc3, _divkc3, and float128-ifunc) to always be compiled with IEEE
-128-bit long double.  This is to be type correct, and avoid mismatch declaration
-errors from the compiler.
-
 2023-01-18   Michael Meissner  <meissner@linux.ibm.com>
 
 	PR target/107299
@@ -41,26 +33,16 @@ errors from the compiler.
 	whether long double is IBM or IEEE.
 	(INFINITY): Likewise.
 	(FABS): Likewise.
-	(__divkc3): Use either _Float128 or long double for the types to match
-	whether long double is IBM or IEEE.
-	* config/rs6000/_mulkc3.c (COPYSIGN): Use the correct built-in based on
-	whether long double is IBM or IEEE.
+	* config/rs6000/_mulkc3.c (COPYSIGN): Likewise.
 	(INFINITY): Likewise.
-	(__mulkc3): Use either _Float128 or long double for the types to match
-	whether long double is IBM or IEEE.
-	* config/rs6000/float128-ifunc.c (__mulkc3): Use either _Float128 or
-	long double for the types to match whether long double is IBM or IEEE.
-	(__divkc3): Likewise.
-	* config/rs6000/quad-float128.h (TC): Define to switch complex IEEE
-	128-bit type in machine independent code via mode attribute.
-	(TFtype_cmuldiv): New macro.
-	(TCtype_cmuldiv): Likewise.
-	(__mulkc3_sw): Use TFtype_cmuldiv and TCtype_cmuldiv.
-	(__divkc3_sw): Likewise.
-	(__mulkc3_hw): Likewise.
-	(__divkc3_hw): Likewise.
-	(__mulkc3): Likewise.
-	(__divkc3): Likewise.
+	* config/rs6000/quad-float128.h (TF): Remove definition.
+	(TFtype): Define to be long double or _Float128.
+	(TCtype): Define to be _Complex long double or _Complex _Float128.
+	* libgcc2.h (TFtype): Allow machine config files to override this.
+	(TCtype): Likewise.
+	* soft-fp/quad.h (TFtype): Likewise.
+
+==================== work106, patch #6 was reverted ====================
 
 ==================== work106, patch #5 was reverted ====================

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [gcc(refs/users/meissner/heads/work106)] Update ChangeLog.meissner
@ 2023-01-18  8:57 Michael Meissner
  0 siblings, 0 replies; 6+ messages in thread
From: Michael Meissner @ 2023-01-18  8:57 UTC (permalink / raw)
  To: gcc-cvs

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

commit c7cbc795a12bc3651096d12b4762af23b1a07a07
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Wed Jan 18 03:57:09 2023 -0500

    Update ChangeLog.meissner

Diff:
---
 gcc/ChangeLog.meissner | 77 ++++++++++++++++++++++----------------------------
 1 file changed, 33 insertions(+), 44 deletions(-)

diff --git a/gcc/ChangeLog.meissner b/gcc/ChangeLog.meissner
index 20e6f8343c1..31893ab4dc9 100644
--- a/gcc/ChangeLog.meissner
+++ b/gcc/ChangeLog.meissner
@@ -1,22 +1,26 @@
-==================== work106, patch #4 ====================
+==================== work106, patch #6 ====================
 
-PR target/107299: Update IEEE 128-bit types in PowerPC libgcc.
+PR target/107299: Fix build issue when long double is IEEE 128-bit
 
-This patch updates the IEEE 128-bit types in libgcc.
+This patch updates the IEEE 128-bit types used in libgcc.
 
 At the moment, we cannot build GCC when the target uses IEEE 128-bit long
 doubles, such as building the compiler for a native Fedora 36 system.  The
 build dies when it is trying to build the _mulkc3.c and _divkc3 modules.
 
-This patch changes the IEEE 128-bit type (TFtype) in the IEEE 128-bit support
-to use either _Float128 or long double.  Previously we would use the __float128
-type.  In addition, the TCtype will use the same type along with _Complex.
+This patch creates special types for declaring complex IEEE 128-bit multiply and
+divide support to use either _Float128 or long double, depending on whether long
+double is IBM or IEEE.
+
+It also uses the correct built-in functions in the libgcc complex IEEE 128-bit
+multiply and divide support.  This fixes the problems when long double types are
+used with explicit f128 built-in functions.
 
 While it is desirable to ultimately have __float128 and _Float128 use the same
 internal type and mode within GCC, at present if you use the option
--mabi=ieeelongdouble, the __float128 type will use the long double type.  We
-get an internal compiler error if we combine the signbitf128 built-in with a
-long double type.
+-mabi=ieeelongdouble, the __float128 type will use the long double type and not
+the _Float128 type.  We get an internal compiler error if we combine the
+signbitf128 built-in with a long double type.
 
 I've gone through several iterations of trying to fix this within GCC, and
 there are various problems that have come up.  I developed this alternative
@@ -33,49 +37,34 @@ errors from the compiler.
 2023-01-18   Michael Meissner  <meissner@linux.ibm.com>
 
 	PR target/107299
-	* config/rs6000/_divkc3.c (top level): Require that long double is IEEE
-	128-bit.
-	(COPYSIGN): Use long double built-in.
+	* config/rs6000/_divkc3.c (COPYSIGN): Use the correct built-in based on
+	whether long double is IBM or IEEE.
 	(INFINITY): Likewise.
 	(FABS): Likewise.
-	(RBIG): Use TFmode constants, not KFmode.
-	(RMIN): Likewise.
-	(RMIN2): Likewise.
-	(RMINSCAL): Likewise.
-	(RMAX2): Likewise.
-	* config/rs6000/_mulkc3.c (top level): Require that long double is IEEE
-	128-bit.
-	(COPYSIGN): Use long double built-in.
+	(__divkc3): Use either _Float128 or long double for the types to match
+	whether long double is IBM or IEEE.
+	* config/rs6000/_mulkc3.c (COPYSIGN): Use the correct built-in based on
+	whether long double is IBM or IEEE.
 	(INFINITY): Likewise.
-	* config/rs6000/quad-float128.h (TF): Remove definition.
-	(TFtype): New macro, use _Float128 or long double.
-	(TCtype): Change to macro, use _Complex _Float128 or _Complex long
-	double.
-	(__mulkc3_sw): Only declare if long double is IEEE 128-bit.
+	(__mulkc3): Use either _Float128 or long double for the types to match
+	whether long double is IBM or IEEE.
+	* config/rs6000/float128-ifunc.c (__mulkc3): Use either _Float128 or
+	long double for the types to match whether long double is IBM or IEEE.
+	(__divkc3): Likewise.
+	* config/rs6000/quad-float128.h (TC): Define to switch complex IEEE
+	128-bit type in machine independent code via mode attribute.
+	(TFtype_cmuldiv): New macro.
+	(TCtype_cmuldiv): Likewise.
+	(__mulkc3_sw): Use TFtype_cmuldiv and TCtype_cmuldiv.
 	(__divkc3_sw): Likewise.
 	(__mulkc3_hw): Likewise.
 	(__divkc3_hw): Likewise.
 	(__mulkc3): Likewise.
 	(__divkc3): Likewise.
-	* config/rs6000/t-rs6000 (fp128_cmuldiv): Add support to build IEEE
-	128-bit complex multiply/divide with explicit IEEE-128 long double.
-	(fp128_cmuldiv_static_obj): Likewise.
-	(fp128_cmuldiv_shared_obj): Likewise.
-	(fp128_cmuldiv_obj): Likewise.
-	(fp128_ppc_funcs): Likewise.
-	(FP128_CFLAGS_CMULDIV): Likewise.
-	* config/rs6000/t-rs6000-hw (fp128_hardfp_src): Delete, unused.
-	(fp128_cmuldiv_funcs): Add support to build IEEE 128-bit complex
-	multiply/divide with explicit IEEE-128 long double.
-	(fp128_cmuldiv_static_obj): Likewise.
-	(fp128_cmuldiv_shared_obj): Likewise.
-	(fp128_cmuldiv_obj): Likewise.
-	(fp128_hw_funcs): Likewise.
-	(fp128_ifunc_funcs): Delete, unused.
-	(fp128_ifunc_src): Likewise.
-	* libgcc2.h (TFtype): Allow md files to override this.
-	(TCtype): Likewise.
-	* soft-fp/quad.h (TFtype): Likewise.
+
+==================== work106, patch #5 was reverted ====================
+
+==================== work106, patch #4 was reverted ====================
 
 ==================== work106, patch #3 was reverted ====================

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [gcc(refs/users/meissner/heads/work106)] Update ChangeLog.meissner
@ 2023-01-18  6:12 Michael Meissner
  0 siblings, 0 replies; 6+ messages in thread
From: Michael Meissner @ 2023-01-18  6:12 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:0da97bd3b7ceaebde67f66362f08b80cfcf399fb

commit 0da97bd3b7ceaebde67f66362f08b80cfcf399fb
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Wed Jan 18 01:12:30 2023 -0500

    Update ChangeLog.meissner

Diff:
---
 gcc/ChangeLog.meissner | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/gcc/ChangeLog.meissner b/gcc/ChangeLog.meissner
index 2657be8d980..20e6f8343c1 100644
--- a/gcc/ChangeLog.meissner
+++ b/gcc/ChangeLog.meissner
@@ -1,4 +1,4 @@
-==================== work106, patch #3 ====================
+==================== work106, patch #4 ====================
 
 PR target/107299: Update IEEE 128-bit types in PowerPC libgcc.
 
@@ -30,7 +30,7 @@ support (_mulkc3, _divkc3, and float128-ifunc) to always be compiled with IEEE
 128-bit long double.  This is to be type correct, and avoid mismatch declaration
 errors from the compiler.
 
-2023-01-17   Michael Meissner  <meissner@linux.ibm.com>
+2023-01-18   Michael Meissner  <meissner@linux.ibm.com>
 
 	PR target/107299
 	* config/rs6000/_divkc3.c (top level): Require that long double is IEEE
@@ -57,10 +57,28 @@ errors from the compiler.
 	(__divkc3_hw): Likewise.
 	(__mulkc3): Likewise.
 	(__divkc3): Likewise.
+	* config/rs6000/t-rs6000 (fp128_cmuldiv): Add support to build IEEE
+	128-bit complex multiply/divide with explicit IEEE-128 long double.
+	(fp128_cmuldiv_static_obj): Likewise.
+	(fp128_cmuldiv_shared_obj): Likewise.
+	(fp128_cmuldiv_obj): Likewise.
+	(fp128_ppc_funcs): Likewise.
+	(FP128_CFLAGS_CMULDIV): Likewise.
+	* config/rs6000/t-rs6000-hw (fp128_hardfp_src): Delete, unused.
+	(fp128_cmuldiv_funcs): Add support to build IEEE 128-bit complex
+	multiply/divide with explicit IEEE-128 long double.
+	(fp128_cmuldiv_static_obj): Likewise.
+	(fp128_cmuldiv_shared_obj): Likewise.
+	(fp128_cmuldiv_obj): Likewise.
+	(fp128_hw_funcs): Likewise.
+	(fp128_ifunc_funcs): Delete, unused.
+	(fp128_ifunc_src): Likewise.
 	* libgcc2.h (TFtype): Allow md files to override this.
 	(TCtype): Likewise.
 	* soft-fp/quad.h (TFtype): Likewise.
 
+==================== work106, patch #3 was reverted ====================
+
 ==================== work106, patch #2 was reverted ====================
 
 ==================== work106, patch #1 was reverted ====================

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [gcc(refs/users/meissner/heads/work106)] Update ChangeLog.meissner
@ 2023-01-18  0:12 Michael Meissner
  0 siblings, 0 replies; 6+ messages in thread
From: Michael Meissner @ 2023-01-18  0:12 UTC (permalink / raw)
  To: gcc-cvs

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

commit ad9ce797d031234f695317bf798591aee221c9a9
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Tue Jan 17 19:12:37 2023 -0500

    Update ChangeLog.meissner

Diff:
---
 gcc/ChangeLog.meissner | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/gcc/ChangeLog.meissner b/gcc/ChangeLog.meissner
index 7bdf0a234ad..a721c02003c 100644
--- a/gcc/ChangeLog.meissner
+++ b/gcc/ChangeLog.meissner
@@ -1,4 +1,20 @@
-==================== work106, patch #1 ====================
+==================== work106, patch #2 ====================
+
+PR target/107299: Use _Float128 and _Complex _Float128 for PowerPC libgcc IEEE 128-bit
+
+2023-01-17   Michael Meissner  <meissner@linux.ibm.com>
+
+	PR target/107299
+	* config/rs6000/quad-float128.h (TF): Remove definition.
+	(TFtype): New macro, use _Float128.
+	(TCtype): Change to macro, use _Complex _Float128.
+	(__mulkc3): Remove declaration.
+	(__divkc3): Likewise.
+	* libgcc2.h (TFtype): Allow md files to override this.
+	(TCtype): Likewise.
+	* soft-fp/quad.h (TFtype): Likewise.
+
+==================== work106, patch #1 was reverted ====================
 
 PR target/107299: Update IEEE 128-bit types for PowerPC libgcc
 
@@ -58,6 +74,8 @@ Fedora 36 systems from building compilers where the default long double is IEEE
 	(TCtype): Likewise.
 	* soft-fp/quad.h (TFtype): Likewise.
 
+==================== work106, branch head ====================
+
 2023-01-12   Michael Meissner  <meissner@linux.ibm.com>
 
 	Clone branch

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [gcc(refs/users/meissner/heads/work106)] Update ChangeLog.meissner
@ 2023-01-13  0:03 Michael Meissner
  0 siblings, 0 replies; 6+ messages in thread
From: Michael Meissner @ 2023-01-13  0:03 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:9b3eddb60a24f54fd23f4564ef466c635cee2e1a

commit 9b3eddb60a24f54fd23f4564ef466c635cee2e1a
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Thu Jan 12 19:03:49 2023 -0500

    Update ChangeLog.meissner

Diff:
---
 gcc/ChangeLog.meissner | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

diff --git a/gcc/ChangeLog.meissner b/gcc/ChangeLog.meissner
index c9a386d7b51..7bdf0a234ad 100644
--- a/gcc/ChangeLog.meissner
+++ b/gcc/ChangeLog.meissner
@@ -1,3 +1,63 @@
+==================== work106, patch #1 ====================
+
+PR target/107299: Update IEEE 128-bit types for PowerPC libgcc
+
+This patch updates the IEEE 128-bit types in libgcc.
+
+At the moment, we cannot build GCC when the target uses IEEE 128-bit long
+doubles, such as building the compiler for a native Fedora 36 system.  The
+build dies when it is trying to build the _mulkc3.c and _divkc3 modules.
+
+This patch changes the IEEE 128-bit type (TFtype) in the IEEE 128-bit support
+to use either _Float128 or long double.  Previously we would use the __float128
+type.  In addition, the TCtype will use the same type along with _Complex.
+
+I changed the libgcc build so that the IEEE 128-bit support is now compiled
+with -mabi=ieeelongdouble.  For the _mulkc3 and _divkc3, I explicitly use long
+double and long double _Complex to avoid type mismatch errors.
+
+While it is desirable to ultimately have __float128 and _Float128 use the same
+internal type and mode within GCC, at present if you use the option
+-mabi=ieeelongdouble, the __float128 type will use the long double type.  We
+get an internal compiler error if we combine the signbitf128 built-in with a
+long double type.
+
+I've gone through several iterations of trying to fix this within GCC, and
+there are various problems that have come up.  I developed this alternative
+patch that changes libgcc so that it does not tickle the issue.  I hope we can
+fix the compiler at some point, but right now, this is preventing people on
+Fedora 36 systems from building compilers where the default long double is IEEE
+128-bit.
+
+2023-01-12   Michael Meissner  <meissner@linux.ibm.com>
+
+	PR target/107299
+	* config/rs6000/_divkc3.c (toplevel): Add assertion for building with
+	-mabi=ieeelongdouble.  Remove code supporting -mabi=ibmlongdouble.
+	(COPYSIGN): Use the long double built-in.
+	(INFINITY): Likewise.
+	(FABS): Likewise.
+	* config/rs6000/_mulkc3.c (toplevel): Add assertion for building with
+	-mabi=ieeelongdouble.
+	(COPYSIGN): Use the long double built-in.
+	(INFINITY): Likewise.
+	* config/rs6000/float128-ifunc.c (toplevel): Add assertion for building
+	with -mabi=ieeelongdouble.
+	* config/rs6000/quad-float128.h (TF): Delete definition.
+	(TFtype): Define to be _Float128 or long double.
+	(TCtype): Define to be _Complex _Float128 or _Complex long double.
+	(__mulkc3_sw): Only declare function if -mabi=ieeelongdouble.
+	(__divkc3_sw): Likewise.
+	(__mulkc3_hw): Likewise.
+	(__divkc3_hw): Likewise.
+	(__mulkc3): Likewise.
+	(__divkc3): Likewise.
+	* config/rs6000/t-float128 (FP128_CFLAGS_SW): Add -mabi=ieeelongdouble.
+	* config/rs6000/t-float128-hw (FP128_CFLAGS_HW): Likewise.
+	* libgcc2.h (TFtype): Allow MD code to override definition.
+	(TCtype): Likewise.
+	* soft-fp/quad.h (TFtype): Likewise.
+
 2023-01-12   Michael Meissner  <meissner@linux.ibm.com>
 
 	Clone branch

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-01-18 16:20 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-18  2:39 [gcc(refs/users/meissner/heads/work106)] Update ChangeLog.meissner Michael Meissner
  -- strict thread matches above, loose matches on Subject: below --
2023-01-18 16:20 Michael Meissner
2023-01-18  8:57 Michael Meissner
2023-01-18  6:12 Michael Meissner
2023-01-18  0:12 Michael Meissner
2023-01-13  0:03 Michael Meissner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).