diff options
-rw-r--r-- | sysdeps/ieee754/ldbl-128ibm-compat/Makefile | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/Makefile b/sysdeps/ieee754/ldbl-128ibm-compat/Makefile index 8f6a09091a..7efbd00089 100644 --- a/sysdeps/ieee754/ldbl-128ibm-compat/Makefile +++ b/sysdeps/ieee754/ldbl-128ibm-compat/Makefile @@ -258,6 +258,13 @@ ldbl-extra-routines += err \ CFLAGS-ieee128-qefgcvt.c += -mabi=ieeelongdouble -Wno-psabi -mno-gnu-attribute CFLAGS-ieee128-qefgcvt_r.c += -mabi=ieeelongdouble -Wno-psabi -mno-gnu-attribute +# Remove -mlong-double-128 because it does not work correctly with +# -mabi=ibmlongdoule in some GCC versions, e.g. GCC 7. +$(foreach o,$(all-object-suffixes),$(objpfx)ieee128-qefgcvt$(o)): \ + sysdep-CFLAGS := $(filter-out -mlong-double-128, $(sysdep-CFLAGS)) +$(foreach o,$(all-object-suffixes),$(objpfx)ieee128-qefgcvt_r$(o)): \ + sysdep-CFLAGS := $(filter-out -mlong-double-128, $(sysdep-CFLAGS)) + tests-internal += tst-ibm128-warn tst-ieee128-warn tests-internal += tst-ibm128-error tst-ieee128-error tests-internal += tst-ibm128-efgcvt tst-ieee128-efgcvt @@ -334,5 +341,12 @@ ldbl-ibm128-files := $(objpfx)test-%-ibm128^ \ $(foreach r,$(ldbl-extra-routines),$(objpfx)$(r)^) \ $(foreach r,$(ldbl-extra-routines),$(objpfx)$(r)-internal^) obj-suf-foreach = $(foreach suf,$(all-object-suffixes),$(subst ^,$(suf),$(1))) + +# Remove -mlong-double-128 because it does not work correctly with +# -mabi=ibmlongdoule in some GCC versions, e.g. GCC 7. +$(call obj-suf-foreach,$(ldbl-ibm128-files)): \ + sysdep-CFLAGS := $(filter-out -mlong-double-128, $(sysdep-CFLAGS)) + +# Explicitly add -mabi=ibm-long-double to required files. $(call obj-suf-foreach,$(ldbl-ibm128-files)): \ sysdep-CFLAGS += -mabi=ibmlongdouble |