From patchwork Fri Mar 6 20:37:14 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. Murphy" X-Patchwork-Id: 38475 X-Patchwork-Delegate: tuliom@linux.vnet.ibm.com Received: (qmail 3459 invoked by alias); 6 Mar 2020 20:37:32 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 3353 invoked by uid 89); 6 Mar 2020 20:37:31 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.8 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.1 spammy= X-HELO: mx0a-001b2d01.pphosted.com From: "Paul E. Murphy" To: libc-alpha@sourceware.org Subject: [PATCH 06/13] powerpc64le: add -mno-gnu-attribute to *f128 objects and difftime Date: Fri, 6 Mar 2020 14:37:14 -0600 Message-Id: <20200306203721.15886-7-murphyp@linux.vnet.ibm.com> In-Reply-To: <20200306203721.15886-1-murphyp@linux.vnet.ibm.com> References: <20200306203721.15886-1-murphyp@linux.vnet.ibm.com> MIME-Version: 1.0 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 --- sysdeps/powerpc/powerpc64/le/Makefile | 21 ++++++++++++------- .../powerpc64/le/fpu/multiarch/Makefile | 4 ++-- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/sysdeps/powerpc/powerpc64/le/Makefile b/sysdeps/powerpc/powerpc64/le/Makefile index ee2b78bb5f..f23e2782f0 100644 --- a/sysdeps/powerpc/powerpc64/le/Makefile +++ b/sysdeps/powerpc/powerpc64/le/Makefile @@ -9,8 +9,10 @@ f128-loader-link = -Wl,--as-needed $(elf-objpfx)ld.so -Wl,--no-as-needed # 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) @@ -18,8 +20,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 $(foreach suf,$(all-object-suffixes),$(objpfx)test-ifloat128%$(suf)): CFLAGS += -mfloat128 @@ -99,11 +102,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 @@ -161,6 +164,10 @@ $(foreach test, \ gnulib-tests += $(f128-loader-link) 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) diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/Makefile b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/Makefile index a32f3d8b81..c6ca872a4b 100644 --- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/Makefile +++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/Makefile @@ -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