From patchwork Fri Mar 6 20:37:12 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: 38472 X-Patchwork-Delegate: tuliom@linux.vnet.ibm.com Received: (qmail 3119 invoked by alias); 6 Mar 2020 20:37:30 -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 2969 invoked by uid 89); 6 Mar 2020 20:37:29 -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 04/13] powerpc64le: Ensure correct ldouble compiler flags are used Date: Fri, 6 Mar 2020 14:37:12 -0600 Message-Id: <20200306203721.15886-5-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 From: "Gabriel F. T. Gomes" Ensure the correct ldouble abi flags are applied to ibm128 files and nldbl files. Remove the IEEE options if used, and apply the flags used to build ldouble files which are ibm128 abi. nldbl tests are a little tricky. To use the support, we must remove all ldouble abi flags, and ensure -mlong-double-64 is used. Co-authored-by: Rajalakshmi Srinivasaraghavan Co-authored-by: Tulio Magno Quites Machado Filho Co-authored-by: Paul E. Murphy Reviewed-by: Tulio Magno Quites Machado Filho --- sysdeps/powerpc/powerpc64/le/Makefile | 58 +++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/sysdeps/powerpc/powerpc64/le/Makefile b/sysdeps/powerpc/powerpc64/le/Makefile index 0ce3868c3c..480e113637 100644 --- a/sysdeps/powerpc/powerpc64/le/Makefile +++ b/sysdeps/powerpc/powerpc64/le/Makefile @@ -6,6 +6,13 @@ # linked executables, forcing to link the loader after libgcc link. 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 = +ifeq ($(ibm128-fcts),yes) +type-ldouble-CFLAGS += -mabi=ibmlongdouble +endif + ifeq ($(subdir),math) # sqrtf128 requires emulation before POWER9. CPPFLAGS += -I../soft-fp @@ -35,6 +42,42 @@ $(foreach test, \ test-math-iszero, \ $(objpfx)$(test)): \ gnulib-tests += $(f128-loader-link) + +CFLAGS-s_logbl-power7.c += $(type-ldouble-CFLAGS) +CFLAGS-s_logbl-ppc64.c += $(type-ldouble-CFLAGS) + +$(foreach suf,$(all-object-suffixes),\ + $(objpfx)s_copysignl$(suf) \ + $(objpfx)s_fabsl$(suf)): \ + ASFLAGS += $(type-ldouble-CFLAGS) + +$(foreach suf,$(all-object-suffixes),\ + $(objpfx)libm-test-%ibm128$(suf) \ + $(objpfx)test-iibm128%$(suf) $(objpfx)test-ibm128%$(suf)): \ + CFLAGS += $(type-ldouble-CFLAGS) + +# Newer GCC (>7) doesn't like -mabi=* and -mlong-double-64 +$(foreach suf,$(all-object-suffixes),\ + $(objpfx)test-narrow-macros-ldbl-64$(suf) \ + $(objpfx)test-nldbl-redirect$(suf) \ + $(objpfx)test-redirection-ldbl-64$(suf) \ + ): sysdep-CFLAGS := $(filter-out -mabi=ieeelongdouble,$(sysdep-CFLAGS)) + +endif + +# Newer GCC (>7) doesn't like -mabi=* and -mlong-double-64 +ifeq ($(subdir),misc) +$(foreach suf,$(all-object-suffixes),\ + $(objpfx)tst-nldbl-warn$(suf) \ + $(objpfx)tst-nldbl-error$(suf) \ + ): sysdep-CFLAGS := $(filter-out -mabi=ieeelongdouble,$(sysdep-CFLAGS)) +endif + +# Newer GCC (>7) doesn't like -mabi=* and -mlong-double-64 +ifeq ($(subdir),argp) +$(foreach suf,$(all-object-suffixes),\ + $(objpfx)tst-nldbl-argp$(suf) \ + ): sysdep-CFLAGS := $(filter-out -mabi=ieeelongdouble,$(sysdep-CFLAGS)) endif # Append flags to string <-> _Float128 routines. @@ -82,3 +125,18 @@ CFLAGS-printf_fp.c = -mfloat128 CFLAGS-printf_fphex.c = -mfloat128 CFLAGS-printf_size.c = -mfloat128 endif + + +$(foreach suf,$(all-object-suffixes),$(objpfx)nldbl-%$(suf)): \ + CFLAGS += $(type-ldouble-CFLAGS) + +ldbl-ibm128-files = $(objpfx)nldbl-%$(suf) \ + $(objpfx)libm-test-%ibm128$(suf) \ + $(objpfx)test-iibm128%$(suf) $(objpfx)test-ibm128%$(suf) \ + $(objpfx)test-tgmath3-%$(suf) + +# Remove -mabi=ieeelongdouble from ldbl-ibm128 files. +$(foreach suf,$(all-object-suffixes), $(ldbl-ibm128-files)) \ + $(foreach r,$(ldbl-128ibm-routines) $(ldbl-tests), \ + $(objpfx)$(r)$(suf)): \ + sysdep-CFLAGS := $(filter-out -mabi=ieeelongdouble,$(sysdep-CFLAGS))