pmaports/cross/gcc-armhf/0042-Backport-of-patch-of-the-GCC-11-to-avoid-the-GNU-Att.patch
Martijn Braam 084a447559
cross/gcc{,6}*: bump pkgrel
Following upgrade in Alpine
2020-10-31 02:46:53 +01:00

42 lines
1.7 KiB
Diff

From 27a633f79c9a0248ce673ff2d9c397e136427b01 Mon Sep 17 00:00:00 2001
From: None <@>
Date: Wed, 21 Oct 2020 17:35:50 +0000
Subject: Backport of patch of the GCC 11 to avoid the GNU Attributes into
libgcc
source: https://gcc.gnu.org/pipermail/gcc-patches/2020-September/554770.html
The -mno-gnu-attribute avoids the linker emit an error when check
the type of long double 128bit.
Signed-off-by: Gustavo L F Walbon <gwalbon@linux.ibm.com>
Signed-off-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
---
main/gcc/t-float128 | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/libgcc/config/rs6000/t-float128 b/libgcc/config/rs6000/t-float128
index d5413445..b4e1afab 100644
--- a/libgcc/config/rs6000/t-float128
+++ b/libgcc/config/rs6000/t-float128
@@ -69,6 +69,17 @@ $(fp128_ppc_obj) : INTERNAL_CFLAGS += $(FP128_CFLAGS_SW)
$(fp128_obj) : $(fp128_includes)
$(fp128_obj) : $(srcdir)/config/rs6000/quad-float128.h
+# If we are switching the default long double type, we need to use
+# -mno-gnu-attribute so that the __ibm128 support functions don't signal a
+# linker error since the default long double is now IEEE 128-bit instead of IBM
+# 128-bit.
+ibm-ldouble$(objext) : INTERNAL_CFLAGS += -mno-gnu-attribute
+
+CFLAGS_TF_DECIMAL = -mno-gnu-attribute -Wno-psabi -mabi=ibmlongdouble
+CFLAGS_KF_DECIMAL = -mno-gnu-attribute -Wno-psabi -mabi=ieeelongdouble
+CFLAGS_KF_DECIMAL_SW = $(CFLAGS_KF_DECIMAL) -mno-float128-hardware
+$(TF_DECIMAL_OBJS) : INTERNAL_CFLAGS += $(CFLAGS_TF_DECIMAL)
+
$(fp128_softfp_src) : $(srcdir)/soft-fp/$(subst -sw,,$(subst kf,tf,$@)) $(fp128_dep)
@src="$(srcdir)/soft-fp/$(subst -sw,,$(subst kf,tf,$@))"; \
echo "Create $@"; \
--
2.29.0