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 Signed-off-by: Tulio Magno Quites Machado Filho --- 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