diff mbox series

Makeconfig: sandwich gnulib-tests between libc/ld linking of tests

Message ID 20200311194205.31476-1-murphyp@linux.vnet.ibm.com
State New
Headers show
Series Makeconfig: sandwich gnulib-tests between libc/ld linking of tests | expand

Commit Message

develop--- via Libc-alpha March 11, 2020, 7:42 p.m. UTC
This is a continuation of the discussion from [1] and replaces the
parent patch "powerpc64le: link tests against ld.so" [2].

I have tested this on ppc64le and x86-64 and it did not break any
tests.

[1] <https://sourceware.org/pipermail/libc-alpha/2020-March/111788.html>
[2] <https://sourceware.org/pipermail/libc-alpha/2020-March/111726.html>

---8<---

This better resembles the default linking process with the gnulibs,
and also resolves the increasingly difficult to maintain
f128-loader-link usage on powerpc64le as some libgcc symbols are
dependent on those found in the loader (ld).

Likewise, rename link-libc-before-gnulib to link-libc-between-gnulib
to more accurately describe what is happening.
---
 Makeconfig                                  |  6 +++---
 sysdeps/ieee754/ldbl-128ibm-compat/Makefile | 13 -------------
 sysdeps/powerpc/powerpc64/le/Makefile       | 17 -----------------
 3 files changed, 3 insertions(+), 33 deletions(-)

Comments

develop--- via Libc-alpha March 18, 2020, 8:52 p.m. UTC | #1
Ping.

On 3/11/20 2:42 PM, Paul E. Murphy via Libc-alpha wrote:
> This is a continuation of the discussion from [1] and replaces the
> parent patch "powerpc64le: link tests against ld.so" [2].
> 
> I have tested this on ppc64le and x86-64 and it did not break any
> tests.
> 
> [1] <https://sourceware.org/pipermail/libc-alpha/2020-March/111788.html>
> [2] <https://sourceware.org/pipermail/libc-alpha/2020-March/111726.html>
> 
> ---8<---
> 
> This better resembles the default linking process with the gnulibs,
> and also resolves the increasingly difficult to maintain
> f128-loader-link usage on powerpc64le as some libgcc symbols are
> dependent on those found in the loader (ld).
> 
> Likewise, rename link-libc-before-gnulib to link-libc-between-gnulib
> to more accurately describe what is happening.
> ---
>   Makeconfig                                  |  6 +++---
>   sysdeps/ieee754/ldbl-128ibm-compat/Makefile | 13 -------------
>   sysdeps/powerpc/powerpc64/le/Makefile       | 17 -----------------
>   3 files changed, 3 insertions(+), 33 deletions(-)
> 
> diff --git a/Makeconfig b/Makeconfig
> index f252842979..b9e28f4f3d 100644
> --- a/Makeconfig
> +++ b/Makeconfig
> @@ -564,13 +564,13 @@ else
>   link-libc-tests-rpath-link = $(link-libc-rpath-link)
>   endif  # build-hardcoded-path-in-tests
> 
> -link-libc-before-gnulib = $(common-objpfx)libc.so$(libc.so-version) \
> +link-libc-between-gnulib = $(common-objpfx)libc.so$(libc.so-version) \
>   			  $(common-objpfx)$(patsubst %,$(libtype.oS),c) \
>   			  -Wl,--as-needed $(elf-objpfx)ld.so \
>   			  -Wl,--no-as-needed
> -link-libc = $(link-libc-before-gnulib) $(gnulib)
> +link-libc = $(link-libc-between-gnulib) $(gnulib)
> 
> -link-libc-tests-after-rpath-link = $(link-libc-before-gnulib) $(gnulib-tests)
> +link-libc-tests-after-rpath-link = $(gnulib-tests) $(link-libc-between-gnulib) $(gnulib-tests)
>   link-libc-tests = $(link-libc-tests-rpath-link) \
>   		  $(link-libc-tests-after-rpath-link)
>   # Pretty printer test programs always require rpath instead of rpath-link.
> diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/Makefile b/sysdeps/ieee754/ldbl-128ibm-compat/Makefile
> index 42f974f85d..705424f7c2 100644
> --- a/sysdeps/ieee754/ldbl-128ibm-compat/Makefile
> +++ b/sysdeps/ieee754/ldbl-128ibm-compat/Makefile
> @@ -30,7 +30,6 @@ tests-internal += test-wcstold-ibm128 test-wcstold-ieee128
>   CFLAGS-test-wcstold-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi
>   CFLAGS-test-wcstold-ibm128.c += -mabi=ibmlongdouble -Wno-psabi
> 
> -$(objpfx)test-wcstold-ieee128: gnulib-tests += $(f128-loader-link)
>   endif
> 
>   ifeq ($(subdir),stdio-common)
> @@ -89,26 +88,18 @@ tests-internal += test-scanf-ieee128 test-scanf-ibm128
>   CFLAGS-test-scanf-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi -std=c89 -D_GNU_SOURCE
>   CFLAGS-test-scanf-ibm128.c += -mabi=ibmlongdouble -Wno-psabi -std=c89 -D_GNU_SOURCE
> 
> -$(objpfx)test-scanf-ieee128: gnulib-tests += $(f128-loader-link)
> -
>   tests-internal += test-wscanf-ieee128 test-wscanf-ibm128
>   CFLAGS-test-wscanf-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi -std=c89 -D_GNU_SOURCE
>   CFLAGS-test-wscanf-ibm128.c += -mabi=ibmlongdouble -Wno-psabi -std=c89 -D_GNU_SOURCE
> 
> -$(objpfx)test-wscanf-ieee128: gnulib-tests += $(f128-loader-link)
> -
>   tests-internal += test-isoc99-scanf-ieee128 test-isoc99-scanf-ibm128
>   CFLAGS-test-isoc99-scanf-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi -std=c99
>   CFLAGS-test-isoc99-scanf-ibm128.c += -mabi=ibmlongdouble -Wno-psabi -std=c99
> 
> -$(objpfx)test-isoc99-scanf-ieee128: gnulib-tests += $(f128-loader-link)
> -
>   tests-internal += test-isoc99-wscanf-ieee128 test-isoc99-wscanf-ibm128
>   CFLAGS-test-isoc99-wscanf-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi -std=c99
>   CFLAGS-test-isoc99-wscanf-ibm128.c += -mabi=ibmlongdouble -Wno-psabi -std=c99
> 
> -$(objpfx)test-isoc99-wscanf-ieee128: gnulib-tests += $(f128-loader-link)
> -
>   ifeq ($(run-built-tests),yes)
>   tests-special += $(objpfx)test-scanf-ieee128.out
>   tests-special += $(objpfx)test-scanf-ibm128.out
> @@ -269,9 +260,6 @@ tests-internal += tst-ibm128-warn tst-ieee128-warn
>   tests-internal += tst-ibm128-error tst-ieee128-error
>   tests-internal += tst-ibm128-efgcvt tst-ieee128-efgcvt
> 
> -$(objpfx)tst-ieee128-efgcvt: gnulib-tests += $(f128-loader-link)
> -$(objpfx)tst-ldbl-efgcvt: gnulib-tests += $(f128-loader-link)
> -
>   $(objpfx)tst-ibm128-%.c: tst-ldbl-%.c
>   	cp $< $@
> 
> @@ -316,7 +304,6 @@ tests-internal += test-strfrom-ibm128 test-strfrom-ieee128
>   CFLAGS-test-strfrom-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi
>   CFLAGS-test-strfrom-ibm128.c += -mabi=ibmlongdouble -Wno-psabi
> 
> -$(objpfx)test-strfrom-ieee128: gnulib-tests += $(f128-loader-link)
>   endif
> 
>   ifeq ($(subdir),math)
> diff --git a/sysdeps/powerpc/powerpc64/le/Makefile b/sysdeps/powerpc/powerpc64/le/Makefile
> index 0ce3868c3c..f08994dfc3 100644
> --- a/sysdeps/powerpc/powerpc64/le/Makefile
> +++ b/sysdeps/powerpc/powerpc64/le/Makefile
> @@ -1,11 +1,6 @@
>   # When building float128 we need to ensure -mfloat128 is
>   # passed to all such object files.
> 
> -# libgcc requires __tcb_parse_hwcap_and_convert_at_platform when built with
> -# a binary128 type.  That symbol is provided by the loader on dynamically
> -# linked executables, forcing to link the loader after libgcc link.
> -f128-loader-link = -Wl,--as-needed $(elf-objpfx)ld.so -Wl,--no-as-needed
> -
>   ifeq ($(subdir),math)
>   # sqrtf128 requires emulation before POWER9.
>   CPPFLAGS += -I../soft-fp
> @@ -28,13 +23,6 @@ CFLAGS-test-math-iscanonical.cc += -mfloat128
>   CFLAGS-test-math-iseqsig.cc += -mfloat128
>   CFLAGS-test-math-issignaling.cc += -mfloat128
>   CFLAGS-test-math-iszero.cc += -mfloat128
> -$(foreach test, \
> -	  test-float128% test-ifloat128% test-float64x% test-ifloat64x% \
> -	  $(foreach pair,$(f128-pairs),test-$(pair)%) \
> -	  test-math-iscanonical test-math-iseqsig test-math-issignaling \
> -	  test-math-iszero, \
> -	  $(objpfx)$(test)): \
> -  gnulib-tests += $(f128-loader-link)
>   endif
> 
>   # Append flags to string <-> _Float128 routines.
> @@ -56,11 +44,6 @@ CFLAGS-tst-strfrom-locale.c += -mfloat128
>   CFLAGS-strfrom-skeleton.c += -mfloat128
>   CFLAGS-tst-strtod-nan-sign.c += -mfloat128
>   CFLAGS-tst-wcstod-nan-sign.c += -mfloat128
> -$(foreach test,bug-strtod bug-strtod2 bug-strtod2 tst-strtod-round \
> -tst-wcstod-round tst-strtod6 tst-strrom tst-strfrom-locale \
> -tst-strtod-nan-locale tst-wcstod-nan-locale \
> -strfrom-skeleton tst-strtod-nan-sign tst-wcstod-nan-sign, \
> -$(objpfx)$(test)): gnulib-tests += $(f128-loader-link)
> 
>   # When building glibc with support for _Float128, the powers of ten tables in
>   # fpioconst.c and in the string conversion functions must be extended.  Some
>
develop--- via Libc-alpha March 23, 2020, 9:25 p.m. UTC | #2
Ping x2.  I will commit this friday hearing no objections.

On 3/18/20 3:52 PM, Paul E Murphy via Libc-alpha wrote:
> Ping.
> 
> On 3/11/20 2:42 PM, Paul E. Murphy via Libc-alpha wrote:
>> This is a continuation of the discussion from [1] and replaces the
>> parent patch "powerpc64le: link tests against ld.so" [2].
>>
>> I have tested this on ppc64le and x86-64 and it did not break any
>> tests.
>>
>> [1] <https://sourceware.org/pipermail/libc-alpha/2020-March/111788.html>
>> [2] <https://sourceware.org/pipermail/libc-alpha/2020-March/111726.html>
>>
>> ---8<---
>>
>> This better resembles the default linking process with the gnulibs,
>> and also resolves the increasingly difficult to maintain
>> f128-loader-link usage on powerpc64le as some libgcc symbols are
>> dependent on those found in the loader (ld).
>>
>> Likewise, rename link-libc-before-gnulib to link-libc-between-gnulib
>> to more accurately describe what is happening.
>> ---
>>   Makeconfig                                  |  6 +++---
>>   sysdeps/ieee754/ldbl-128ibm-compat/Makefile | 13 -------------
>>   sysdeps/powerpc/powerpc64/le/Makefile       | 17 -----------------
>>   3 files changed, 3 insertions(+), 33 deletions(-)
>>
>> diff --git a/Makeconfig b/Makeconfig
>> index f252842979..b9e28f4f3d 100644
>> --- a/Makeconfig
>> +++ b/Makeconfig
>> @@ -564,13 +564,13 @@ else
>>   link-libc-tests-rpath-link = $(link-libc-rpath-link)
>>   endif  # build-hardcoded-path-in-tests
>>
>> -link-libc-before-gnulib = $(common-objpfx)libc.so$(libc.so-version) \
>> +link-libc-between-gnulib = $(common-objpfx)libc.so$(libc.so-version) \
>>                 $(common-objpfx)$(patsubst %,$(libtype.oS),c) \
>>                 -Wl,--as-needed $(elf-objpfx)ld.so \
>>                 -Wl,--no-as-needed
>> -link-libc = $(link-libc-before-gnulib) $(gnulib)
>> +link-libc = $(link-libc-between-gnulib) $(gnulib)
>>
>> -link-libc-tests-after-rpath-link = $(link-libc-before-gnulib) 
>> $(gnulib-tests)
>> +link-libc-tests-after-rpath-link = $(gnulib-tests) 
>> $(link-libc-between-gnulib) $(gnulib-tests)
>>   link-libc-tests = $(link-libc-tests-rpath-link) \
>>             $(link-libc-tests-after-rpath-link)
>>   # Pretty printer test programs always require rpath instead of 
>> rpath-link.
>> diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/Makefile 
>> b/sysdeps/ieee754/ldbl-128ibm-compat/Makefile
>> index 42f974f85d..705424f7c2 100644
>> --- a/sysdeps/ieee754/ldbl-128ibm-compat/Makefile
>> +++ b/sysdeps/ieee754/ldbl-128ibm-compat/Makefile
>> @@ -30,7 +30,6 @@ tests-internal += test-wcstold-ibm128 
>> test-wcstold-ieee128
>>   CFLAGS-test-wcstold-ieee128.c += -mfloat128 -mabi=ieeelongdouble 
>> -Wno-psabi
>>   CFLAGS-test-wcstold-ibm128.c += -mabi=ibmlongdouble -Wno-psabi
>>
>> -$(objpfx)test-wcstold-ieee128: gnulib-tests += $(f128-loader-link)
>>   endif
>>
>>   ifeq ($(subdir),stdio-common)
>> @@ -89,26 +88,18 @@ tests-internal += test-scanf-ieee128 
>> test-scanf-ibm128
>>   CFLAGS-test-scanf-ieee128.c += -mfloat128 -mabi=ieeelongdouble 
>> -Wno-psabi -std=c89 -D_GNU_SOURCE
>>   CFLAGS-test-scanf-ibm128.c += -mabi=ibmlongdouble -Wno-psabi 
>> -std=c89 -D_GNU_SOURCE
>>
>> -$(objpfx)test-scanf-ieee128: gnulib-tests += $(f128-loader-link)
>> -
>>   tests-internal += test-wscanf-ieee128 test-wscanf-ibm128
>>   CFLAGS-test-wscanf-ieee128.c += -mfloat128 -mabi=ieeelongdouble 
>> -Wno-psabi -std=c89 -D_GNU_SOURCE
>>   CFLAGS-test-wscanf-ibm128.c += -mabi=ibmlongdouble -Wno-psabi 
>> -std=c89 -D_GNU_SOURCE
>>
>> -$(objpfx)test-wscanf-ieee128: gnulib-tests += $(f128-loader-link)
>> -
>>   tests-internal += test-isoc99-scanf-ieee128 test-isoc99-scanf-ibm128
>>   CFLAGS-test-isoc99-scanf-ieee128.c += -mfloat128 
>> -mabi=ieeelongdouble -Wno-psabi -std=c99
>>   CFLAGS-test-isoc99-scanf-ibm128.c += -mabi=ibmlongdouble -Wno-psabi 
>> -std=c99
>>
>> -$(objpfx)test-isoc99-scanf-ieee128: gnulib-tests += $(f128-loader-link)
>> -
>>   tests-internal += test-isoc99-wscanf-ieee128 test-isoc99-wscanf-ibm128
>>   CFLAGS-test-isoc99-wscanf-ieee128.c += -mfloat128 
>> -mabi=ieeelongdouble -Wno-psabi -std=c99
>>   CFLAGS-test-isoc99-wscanf-ibm128.c += -mabi=ibmlongdouble -Wno-psabi 
>> -std=c99
>>
>> -$(objpfx)test-isoc99-wscanf-ieee128: gnulib-tests += $(f128-loader-link)
>> -
>>   ifeq ($(run-built-tests),yes)
>>   tests-special += $(objpfx)test-scanf-ieee128.out
>>   tests-special += $(objpfx)test-scanf-ibm128.out
>> @@ -269,9 +260,6 @@ tests-internal += tst-ibm128-warn tst-ieee128-warn
>>   tests-internal += tst-ibm128-error tst-ieee128-error
>>   tests-internal += tst-ibm128-efgcvt tst-ieee128-efgcvt
>>
>> -$(objpfx)tst-ieee128-efgcvt: gnulib-tests += $(f128-loader-link)
>> -$(objpfx)tst-ldbl-efgcvt: gnulib-tests += $(f128-loader-link)
>> -
>>   $(objpfx)tst-ibm128-%.c: tst-ldbl-%.c
>>       cp $< $@
>>
>> @@ -316,7 +304,6 @@ tests-internal += test-strfrom-ibm128 
>> test-strfrom-ieee128
>>   CFLAGS-test-strfrom-ieee128.c += -mfloat128 -mabi=ieeelongdouble 
>> -Wno-psabi
>>   CFLAGS-test-strfrom-ibm128.c += -mabi=ibmlongdouble -Wno-psabi
>>
>> -$(objpfx)test-strfrom-ieee128: gnulib-tests += $(f128-loader-link)
>>   endif
>>
>>   ifeq ($(subdir),math)
>> diff --git a/sysdeps/powerpc/powerpc64/le/Makefile 
>> b/sysdeps/powerpc/powerpc64/le/Makefile
>> index 0ce3868c3c..f08994dfc3 100644
>> --- a/sysdeps/powerpc/powerpc64/le/Makefile
>> +++ b/sysdeps/powerpc/powerpc64/le/Makefile
>> @@ -1,11 +1,6 @@
>>   # When building float128 we need to ensure -mfloat128 is
>>   # passed to all such object files.
>>
>> -# libgcc requires __tcb_parse_hwcap_and_convert_at_platform when 
>> built with
>> -# a binary128 type.  That symbol is provided by the loader on 
>> dynamically
>> -# linked executables, forcing to link the loader after libgcc link.
>> -f128-loader-link = -Wl,--as-needed $(elf-objpfx)ld.so -Wl,--no-as-needed
>> -
>>   ifeq ($(subdir),math)
>>   # sqrtf128 requires emulation before POWER9.
>>   CPPFLAGS += -I../soft-fp
>> @@ -28,13 +23,6 @@ CFLAGS-test-math-iscanonical.cc += -mfloat128
>>   CFLAGS-test-math-iseqsig.cc += -mfloat128
>>   CFLAGS-test-math-issignaling.cc += -mfloat128
>>   CFLAGS-test-math-iszero.cc += -mfloat128
>> -$(foreach test, \
>> -      test-float128% test-ifloat128% test-float64x% test-ifloat64x% \
>> -      $(foreach pair,$(f128-pairs),test-$(pair)%) \
>> -      test-math-iscanonical test-math-iseqsig test-math-issignaling \
>> -      test-math-iszero, \
>> -      $(objpfx)$(test)): \
>> -  gnulib-tests += $(f128-loader-link)
>>   endif
>>
>>   # Append flags to string <-> _Float128 routines.
>> @@ -56,11 +44,6 @@ CFLAGS-tst-strfrom-locale.c += -mfloat128
>>   CFLAGS-strfrom-skeleton.c += -mfloat128
>>   CFLAGS-tst-strtod-nan-sign.c += -mfloat128
>>   CFLAGS-tst-wcstod-nan-sign.c += -mfloat128
>> -$(foreach test,bug-strtod bug-strtod2 bug-strtod2 tst-strtod-round \
>> -tst-wcstod-round tst-strtod6 tst-strrom tst-strfrom-locale \
>> -tst-strtod-nan-locale tst-wcstod-nan-locale \
>> -strfrom-skeleton tst-strtod-nan-sign tst-wcstod-nan-sign, \
>> -$(objpfx)$(test)): gnulib-tests += $(f128-loader-link)
>>
>>   # When building glibc with support for _Float128, the powers of ten 
>> tables in
>>   # fpioconst.c and in the string conversion functions must be 
>> extended.  Some
>>
Joseph Myers March 24, 2020, 11:19 p.m. UTC | #3
On Wed, 11 Mar 2020, Paul E. Murphy via Libc-alpha wrote:

> -link-libc-before-gnulib = $(common-objpfx)libc.so$(libc.so-version) \
> +link-libc-between-gnulib = $(common-objpfx)libc.so$(libc.so-version) \
>  			  $(common-objpfx)$(patsubst %,$(libtype.oS),c) \
>  			  -Wl,--as-needed $(elf-objpfx)ld.so \
>  			  -Wl,--no-as-needed

The indentation for the last three lines here needs updating to reflect 
the longer variable name (as each line starts lined up with the start of 
the value on the first line).

The patch is OK with that fixed.
develop--- via Libc-alpha March 25, 2020, 9:18 p.m. UTC | #4
Thank you for reviewing!  Pushed with requested fixes to spacing.

On 3/24/20 6:19 PM, Joseph Myers wrote:
> On Wed, 11 Mar 2020, Paul E. Murphy via Libc-alpha wrote:
> 
>> -link-libc-before-gnulib = $(common-objpfx)libc.so$(libc.so-version) \
>> +link-libc-between-gnulib = $(common-objpfx)libc.so$(libc.so-version) \
>>   			  $(common-objpfx)$(patsubst %,$(libtype.oS),c) \
>>   			  -Wl,--as-needed $(elf-objpfx)ld.so \
>>   			  -Wl,--no-as-needed
> 
> The indentation for the last three lines here needs updating to reflect
> the longer variable name (as each line starts lined up with the start of
> the value on the first line).
> 
> The patch is OK with that fixed.
>
diff mbox series

Patch

diff --git a/Makeconfig b/Makeconfig
index f252842979..b9e28f4f3d 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -564,13 +564,13 @@  else
 link-libc-tests-rpath-link = $(link-libc-rpath-link)
 endif  # build-hardcoded-path-in-tests
 
-link-libc-before-gnulib = $(common-objpfx)libc.so$(libc.so-version) \
+link-libc-between-gnulib = $(common-objpfx)libc.so$(libc.so-version) \
 			  $(common-objpfx)$(patsubst %,$(libtype.oS),c) \
 			  -Wl,--as-needed $(elf-objpfx)ld.so \
 			  -Wl,--no-as-needed
-link-libc = $(link-libc-before-gnulib) $(gnulib)
+link-libc = $(link-libc-between-gnulib) $(gnulib)
 
-link-libc-tests-after-rpath-link = $(link-libc-before-gnulib) $(gnulib-tests)
+link-libc-tests-after-rpath-link = $(gnulib-tests) $(link-libc-between-gnulib) $(gnulib-tests)
 link-libc-tests = $(link-libc-tests-rpath-link) \
 		  $(link-libc-tests-after-rpath-link)
 # Pretty printer test programs always require rpath instead of rpath-link.
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/Makefile b/sysdeps/ieee754/ldbl-128ibm-compat/Makefile
index 42f974f85d..705424f7c2 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/Makefile
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/Makefile
@@ -30,7 +30,6 @@  tests-internal += test-wcstold-ibm128 test-wcstold-ieee128
 CFLAGS-test-wcstold-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi
 CFLAGS-test-wcstold-ibm128.c += -mabi=ibmlongdouble -Wno-psabi
 
-$(objpfx)test-wcstold-ieee128: gnulib-tests += $(f128-loader-link)
 endif
 
 ifeq ($(subdir),stdio-common)
@@ -89,26 +88,18 @@  tests-internal += test-scanf-ieee128 test-scanf-ibm128
 CFLAGS-test-scanf-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi -std=c89 -D_GNU_SOURCE
 CFLAGS-test-scanf-ibm128.c += -mabi=ibmlongdouble -Wno-psabi -std=c89 -D_GNU_SOURCE
 
-$(objpfx)test-scanf-ieee128: gnulib-tests += $(f128-loader-link)
-
 tests-internal += test-wscanf-ieee128 test-wscanf-ibm128
 CFLAGS-test-wscanf-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi -std=c89 -D_GNU_SOURCE
 CFLAGS-test-wscanf-ibm128.c += -mabi=ibmlongdouble -Wno-psabi -std=c89 -D_GNU_SOURCE
 
-$(objpfx)test-wscanf-ieee128: gnulib-tests += $(f128-loader-link)
-
 tests-internal += test-isoc99-scanf-ieee128 test-isoc99-scanf-ibm128
 CFLAGS-test-isoc99-scanf-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi -std=c99
 CFLAGS-test-isoc99-scanf-ibm128.c += -mabi=ibmlongdouble -Wno-psabi -std=c99
 
-$(objpfx)test-isoc99-scanf-ieee128: gnulib-tests += $(f128-loader-link)
-
 tests-internal += test-isoc99-wscanf-ieee128 test-isoc99-wscanf-ibm128
 CFLAGS-test-isoc99-wscanf-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi -std=c99
 CFLAGS-test-isoc99-wscanf-ibm128.c += -mabi=ibmlongdouble -Wno-psabi -std=c99
 
-$(objpfx)test-isoc99-wscanf-ieee128: gnulib-tests += $(f128-loader-link)
-
 ifeq ($(run-built-tests),yes)
 tests-special += $(objpfx)test-scanf-ieee128.out
 tests-special += $(objpfx)test-scanf-ibm128.out
@@ -269,9 +260,6 @@  tests-internal += tst-ibm128-warn tst-ieee128-warn
 tests-internal += tst-ibm128-error tst-ieee128-error
 tests-internal += tst-ibm128-efgcvt tst-ieee128-efgcvt
 
-$(objpfx)tst-ieee128-efgcvt: gnulib-tests += $(f128-loader-link)
-$(objpfx)tst-ldbl-efgcvt: gnulib-tests += $(f128-loader-link)
-
 $(objpfx)tst-ibm128-%.c: tst-ldbl-%.c
 	cp $< $@
 
@@ -316,7 +304,6 @@  tests-internal += test-strfrom-ibm128 test-strfrom-ieee128
 CFLAGS-test-strfrom-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi
 CFLAGS-test-strfrom-ibm128.c += -mabi=ibmlongdouble -Wno-psabi
 
-$(objpfx)test-strfrom-ieee128: gnulib-tests += $(f128-loader-link)
 endif
 
 ifeq ($(subdir),math)
diff --git a/sysdeps/powerpc/powerpc64/le/Makefile b/sysdeps/powerpc/powerpc64/le/Makefile
index 0ce3868c3c..f08994dfc3 100644
--- a/sysdeps/powerpc/powerpc64/le/Makefile
+++ b/sysdeps/powerpc/powerpc64/le/Makefile
@@ -1,11 +1,6 @@ 
 # When building float128 we need to ensure -mfloat128 is
 # passed to all such object files.
 
-# libgcc requires __tcb_parse_hwcap_and_convert_at_platform when built with
-# a binary128 type.  That symbol is provided by the loader on dynamically
-# linked executables, forcing to link the loader after libgcc link.
-f128-loader-link = -Wl,--as-needed $(elf-objpfx)ld.so -Wl,--no-as-needed
-
 ifeq ($(subdir),math)
 # sqrtf128 requires emulation before POWER9.
 CPPFLAGS += -I../soft-fp
@@ -28,13 +23,6 @@  CFLAGS-test-math-iscanonical.cc += -mfloat128
 CFLAGS-test-math-iseqsig.cc += -mfloat128
 CFLAGS-test-math-issignaling.cc += -mfloat128
 CFLAGS-test-math-iszero.cc += -mfloat128
-$(foreach test, \
-	  test-float128% test-ifloat128% test-float64x% test-ifloat64x% \
-	  $(foreach pair,$(f128-pairs),test-$(pair)%) \
-	  test-math-iscanonical test-math-iseqsig test-math-issignaling \
-	  test-math-iszero, \
-	  $(objpfx)$(test)): \
-  gnulib-tests += $(f128-loader-link)
 endif
 
 # Append flags to string <-> _Float128 routines.
@@ -56,11 +44,6 @@  CFLAGS-tst-strfrom-locale.c += -mfloat128
 CFLAGS-strfrom-skeleton.c += -mfloat128
 CFLAGS-tst-strtod-nan-sign.c += -mfloat128
 CFLAGS-tst-wcstod-nan-sign.c += -mfloat128
-$(foreach test,bug-strtod bug-strtod2 bug-strtod2 tst-strtod-round \
-tst-wcstod-round tst-strtod6 tst-strrom tst-strfrom-locale \
-tst-strtod-nan-locale tst-wcstod-nan-locale \
-strfrom-skeleton tst-strtod-nan-sign tst-wcstod-nan-sign, \
-$(objpfx)$(test)): gnulib-tests += $(f128-loader-link)
 
 # When building glibc with support for _Float128, the powers of ten tables in
 # fpioconst.c and in the string conversion functions must be extended.  Some