]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
powerpc64le: add -mno-gnu-attribute to *f128 objects and difftime
authorPaul E. Murphy <murphyp@linux.vnet.ibm.com>
Fri, 7 Feb 2020 20:08:01 +0000 (14:08 -0600)
committerPaul E. Murphy <murphyp@linux.vnet.ibm.com>
Wed, 25 Mar 2020 19:34:23 +0000 (14:34 -0500)
In practice, this flag should be applied globally, but it makes a good
sanity check to ensure ibm128 and ieee128 long double files are not
getting mismatched.  _Float128 files use no long double, thus are
always safe to use this option.

Similarly, when investigating the linker complaints, difftime
makes trivial, self contained, usage of long double, so thus it
is also explicitly marked as such.

Reviewed-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
sysdeps/powerpc/powerpc64/le/Makefile
sysdeps/powerpc/powerpc64/le/fpu/multiarch/Makefile

index 6a54e48e6b2c07c55c4fde0edcd3e18f9863644c..882cf865dd1448ce27dd166823a3005c80d6dc39 100644 (file)
@@ -4,8 +4,10 @@
 # Bootstrapping code for enabling IEEE 128.  This can be removed and
 # any indirections simplified once IEEE 128 long double is enabled.
 type-ldouble-CFLAGS =
+no-gnu-attribute-CFLAGS =
 ifeq ($(ibm128-fcts),yes)
 type-ldouble-CFLAGS += -mabi=ibmlongdouble
+no-gnu-attribute-CFLAGS = -mno-gnu-attribute
 endif
 
 ifeq ($(subdir),math)
@@ -13,8 +15,9 @@ ifeq ($(subdir),math)
 CPPFLAGS += -I../soft-fp
 
 # float128 requires adding a handful of extra flags.
-$(foreach suf,$(all-object-suffixes),%f128$(suf)): CFLAGS += -mfloat128
-$(foreach suf,$(all-object-suffixes),%f128_r$(suf)): CFLAGS += -mfloat128
+# Similarly, disable
+$(foreach suf,$(all-object-suffixes),%f128$(suf)): CFLAGS += -mfloat128 $(no-gnu-attribute-CFLAGS)
+$(foreach suf,$(all-object-suffixes),%f128_r$(suf)): CFLAGS += -mfloat128 $(no-gnu-attribute-CFLAGS)
 $(foreach suf,$(all-object-suffixes),$(objpfx)test-float128%$(suf)): CFLAGS += -mfloat128
 $(foreach suf,$(all-object-suffixes),$(objpfx)test-float64x%$(suf)): CFLAGS += -mfloat128
 # Pairs of types with _Float128 / _Float64x as the wider type but not
@@ -69,11 +72,11 @@ endif
 
 # Append flags to string <-> _Float128 routines.
 ifneq ($(filter $(subdir),wcsmbs stdlib),)
-$(foreach suf,$(all-object-suffixes),%f128$(suf)): CFLAGS += -mfloat128
-$(foreach suf,$(all-object-suffixes),%f128_l$(suf)): CFLAGS += -mfloat128
-$(foreach suf,$(all-object-suffixes),%f128_nan$(suf)): CFLAGS += -mfloat128
-$(foreach suf,$(all-object-suffixes),%float1282mpn$(suf)): CFLAGS += -mfloat128
-$(foreach suf,$(all-object-suffixes),%mpn2float128$(suf)): CFLAGS += -mfloat128
+$(foreach suf,$(all-object-suffixes),%f128$(suf)): CFLAGS += -mfloat128 $(no-gnu-attribute-CFLAGS)
+$(foreach suf,$(all-object-suffixes),%f128_l$(suf)): CFLAGS += -mfloat128 $(no-gnu-attribute-CFLAGS)
+$(foreach suf,$(all-object-suffixes),%f128_nan$(suf)): CFLAGS += -mfloat128 $(no-gnu-attribute-CFLAGS)
+$(foreach suf,$(all-object-suffixes),%float1282mpn$(suf)): CFLAGS += -mfloat128 $(no-gnu-attribute-CFLAGS)
+$(foreach suf,$(all-object-suffixes),%mpn2float128$(suf)): CFLAGS += -mfloat128 $(no-gnu-attribute-CFLAGS)
 CFLAGS-bug-strtod.c += -mfloat128
 CFLAGS-bug-strtod2.c += -mfloat128
 CFLAGS-tst-strtod-round.c += -mfloat128
@@ -108,6 +111,10 @@ CFLAGS-printf_fphex.c = -mfloat128
 CFLAGS-printf_size.c = -mfloat128
 endif
 
+# Disable linker noise on files using ieee128 long double internally
+ifeq ($(subdir),time)
+CFLAGS-difftime.c += $(no-gnu-attribute-CFLAGS)
+endif
 
 $(foreach suf,$(all-object-suffixes),$(objpfx)nldbl-%$(suf)): \
   CFLAGS += $(type-ldouble-CFLAGS)
index a32f3d8b81e8ee3e22dd9d28a86573f60e0bbe7a..c6ca872a4b39596c70ba8d4f32db0396534a7f15 100644 (file)
@@ -1,6 +1,6 @@
 ifeq ($(subdir),math)
 libm-sysdep_routines += w_sqrtf128-power9 w_sqrtf128-ppc64le
 
-CFLAGS-w_sqrtf128-ppc64le.c += -mfloat128
-CFLAGS-w_sqrtf128-power9.c += -mfloat128 -mcpu=power9
+CFLAGS-w_sqrtf128-ppc64le.c += -mfloat128 $(no-gnu-attribute-CFLAGS)
+CFLAGS-w_sqrtf128-power9.c += -mfloat128 -mcpu=power9 $(no-gnu-attribute-CFLAGS)
 endif