public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] elf: Fix tst-nodeps2 test failure.
@ 2024-01-10 15:50 Carlos O'Donell
  2024-01-10 16:09 ` Florian Weimer
  0 siblings, 1 reply; 3+ messages in thread
From: Carlos O'Donell @ 2024-01-10 15:50 UTC (permalink / raw)
  To: libc-alpha, fweimer; +Cc: Carlos O'Donell

When building the testsuite with --enable-hard-coded-path-in-tests
the tst-nodeps2-mod.so is not built with the required DT_RUNPATH
values and the test escapes the test framework and loads the system
libraries and aborts. The fix is to use the existing
$(link-test-modules-rpath-link) variable to set DT_RUNPATH correctly.

No regressions on x86_64.
---
 elf/Makefile | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/elf/Makefile b/elf/Makefile
index 600812e573..5d78b659ce 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -3022,6 +3022,8 @@ $(objpfx)tst-env-setuid: $(objpfx)tst-sonamemove-runmod2.so
 $(objpfx)tst-env-setuid-static.out: $(objpfx)tst-sonamemove-runmod1.so
 
 # The object tst-nodeps1-mod.so has no explicit dependencies on libc.so.
+# We do not use $(link-test-modules-rpath-link) since the object has no
+# DT_NEEDED.
 $(objpfx)tst-nodeps1-mod.so: $(objpfx)tst-nodeps1-mod.os
 	$(LINK.o) -nostartfiles -nostdlib -shared -o $@ $^
 tst-nodeps1.so-no-z-defs = yes
@@ -3032,7 +3034,8 @@ $(objpfx)tst-nodeps1: $(objpfx)tst-nodeps1-mod.so
 # with the IFUNC resolver reference.
 $(objpfx)tst-nodeps2-mod.so: $(common-objpfx)libc.so \
   $(objpfx)tst-nodeps1-mod.so $(objpfx)tst-nodeps2-mod.os
-	$(LINK.o) -Wl,--no-as-needed -nostartfiles -nostdlib -shared -o $@ $^
+	$(LINK.o) -Wl,--no-as-needed -nostartfiles -nostdlib -shared -o $@ $^ \
+	$(link-test-modules-rpath-link)
 $(objpfx)tst-nodeps2.out: \
   $(objpfx)tst-nodeps1-mod.so $(objpfx)tst-nodeps2-mod.so
 
-- 
2.43.0


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] elf: Fix tst-nodeps2 test failure.
  2024-01-10 15:50 [PATCH] elf: Fix tst-nodeps2 test failure Carlos O'Donell
@ 2024-01-10 16:09 ` Florian Weimer
  2024-01-10 18:06   ` Carlos O'Donell
  0 siblings, 1 reply; 3+ messages in thread
From: Florian Weimer @ 2024-01-10 16:09 UTC (permalink / raw)
  To: Carlos O'Donell; +Cc: libc-alpha

* Carlos O'Donell:

> When building the testsuite with --enable-hard-coded-path-in-tests
> the tst-nodeps2-mod.so is not built with the required DT_RUNPATH
> values and the test escapes the test framework and loads the system
> libraries and aborts. The fix is to use the existing
> $(link-test-modules-rpath-link) variable to set DT_RUNPATH correctly.
>
> No regressions on x86_64.
> ---
>  elf/Makefile | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/elf/Makefile b/elf/Makefile
> index 600812e573..5d78b659ce 100644
> --- a/elf/Makefile
> +++ b/elf/Makefile
> @@ -3022,6 +3022,8 @@ $(objpfx)tst-env-setuid: $(objpfx)tst-sonamemove-runmod2.so
>  $(objpfx)tst-env-setuid-static.out: $(objpfx)tst-sonamemove-runmod1.so
>  
>  # The object tst-nodeps1-mod.so has no explicit dependencies on libc.so.
> +# We do not use $(link-test-modules-rpath-link) since the object has no
> +# DT_NEEDED.
>  $(objpfx)tst-nodeps1-mod.so: $(objpfx)tst-nodeps1-mod.os
>  	$(LINK.o) -nostartfiles -nostdlib -shared -o $@ $^
>  tst-nodeps1.so-no-z-defs = yes
> @@ -3032,7 +3034,8 @@ $(objpfx)tst-nodeps1: $(objpfx)tst-nodeps1-mod.so
>  # with the IFUNC resolver reference.
>  $(objpfx)tst-nodeps2-mod.so: $(common-objpfx)libc.so \
>    $(objpfx)tst-nodeps1-mod.so $(objpfx)tst-nodeps2-mod.os
> -	$(LINK.o) -Wl,--no-as-needed -nostartfiles -nostdlib -shared -o $@ $^
> +	$(LINK.o) -Wl,--no-as-needed -nostartfiles -nostdlib -shared -o $@ $^ \
> +	$(link-test-modules-rpath-link)
>  $(objpfx)tst-nodeps2.out: \
>    $(objpfx)tst-nodeps1-mod.so $(objpfx)tst-nodeps2-mod.so

Looks good.  Maybe reference the faulty commit
78ca44da0160a0b442f0ca1f253e3360f044b2ec ("elf: Relocate libc.so early
during startup and dlmopen (bug 31083)")?

Reviewed-by: Florian Weimer <fweimer@redhat.com>

Thanks,
Florian


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] elf: Fix tst-nodeps2 test failure.
  2024-01-10 16:09 ` Florian Weimer
@ 2024-01-10 18:06   ` Carlos O'Donell
  0 siblings, 0 replies; 3+ messages in thread
From: Carlos O'Donell @ 2024-01-10 18:06 UTC (permalink / raw)
  To: Florian Weimer; +Cc: libc-alpha

On 1/10/24 11:09, Florian Weimer wrote:
> * Carlos O'Donell:
> 
>> When building the testsuite with --enable-hard-coded-path-in-tests
>> the tst-nodeps2-mod.so is not built with the required DT_RUNPATH
>> values and the test escapes the test framework and loads the system
>> libraries and aborts. The fix is to use the existing
>> $(link-test-modules-rpath-link) variable to set DT_RUNPATH correctly.
>>
>> No regressions on x86_64.
>> ---
>>  elf/Makefile | 5 ++++-
>>  1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/elf/Makefile b/elf/Makefile
>> index 600812e573..5d78b659ce 100644
>> --- a/elf/Makefile
>> +++ b/elf/Makefile
>> @@ -3022,6 +3022,8 @@ $(objpfx)tst-env-setuid: $(objpfx)tst-sonamemove-runmod2.so
>>  $(objpfx)tst-env-setuid-static.out: $(objpfx)tst-sonamemove-runmod1.so
>>  
>>  # The object tst-nodeps1-mod.so has no explicit dependencies on libc.so.
>> +# We do not use $(link-test-modules-rpath-link) since the object has no
>> +# DT_NEEDED.
>>  $(objpfx)tst-nodeps1-mod.so: $(objpfx)tst-nodeps1-mod.os
>>  	$(LINK.o) -nostartfiles -nostdlib -shared -o $@ $^
>>  tst-nodeps1.so-no-z-defs = yes
>> @@ -3032,7 +3034,8 @@ $(objpfx)tst-nodeps1: $(objpfx)tst-nodeps1-mod.so
>>  # with the IFUNC resolver reference.
>>  $(objpfx)tst-nodeps2-mod.so: $(common-objpfx)libc.so \
>>    $(objpfx)tst-nodeps1-mod.so $(objpfx)tst-nodeps2-mod.os
>> -	$(LINK.o) -Wl,--no-as-needed -nostartfiles -nostdlib -shared -o $@ $^
>> +	$(LINK.o) -Wl,--no-as-needed -nostartfiles -nostdlib -shared -o $@ $^ \
>> +	$(link-test-modules-rpath-link)
>>  $(objpfx)tst-nodeps2.out: \
>>    $(objpfx)tst-nodeps1-mod.so $(objpfx)tst-nodeps2-mod.so
> 
> Looks good.  Maybe reference the faulty commit
> 78ca44da0160a0b442f0ca1f253e3360f044b2ec ("elf: Relocate libc.so early
> during startup and dlmopen (bug 31083)")?

Good point. Will do.

> Reviewed-by: Florian Weimer <fweimer@redhat.com>

Thanks!

> Thanks,
> Florian
> 

-- 
Cheers,
Carlos.


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-01-10 18:06 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-10 15:50 [PATCH] elf: Fix tst-nodeps2 test failure Carlos O'Donell
2024-01-10 16:09 ` Florian Weimer
2024-01-10 18:06   ` Carlos O'Donell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).