public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH v2] elf: Add -z lazy to some more tests
@ 2023-03-07  0:32 Arsen Arsenović
  2023-03-07  9:08 ` Florian Weimer
  0 siblings, 1 reply; 3+ messages in thread
From: Arsen Arsenović @ 2023-03-07  0:32 UTC (permalink / raw)
  To: libc-alpha; +Cc: fweimer, arsen, carlos, toolchain

From: Arsen Arsenović <arsen@gentoo.org>

Some toolchains, such as that used on Gentoo Hardened, set '-z now' out
of the box.  This trips up a couple of tests.
---
Evening,

This is a re-roll of the following patch series:
https://inbox.sourceware.org/libc-alpha/20230302112519.914641-1-arsen@gentoo.org/

Changes from v1:
- Dropped -z norelro.  This turned out to be unnecessary after
  Adhemervals removal of --with-default-link and linker script
  machinery:
  https://patchwork.sourceware.org/project/glibc/list/?series=17843
  See: https://inbox.sourceware.org/libc-alpha/86fsakz5mr.fsf@gentoo.org
  for an explanation of what caused the need for norelro.  That fix was
  misguided, due to a previous error on my part, too.
  I applied this patch on top of that patchset and it would appear to
  resolve all related failures.
  The above is not applied to Git yet, but should be before this patch
  is.

 elf/Makefile | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/elf/Makefile b/elf/Makefile
index 0d19964d42..4d0e04b2a2 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -1190,6 +1190,11 @@ postclean-generated += $(objpfx)/dso-sort-tests-2.generated-makefile \
 ifeq (yes,$(have-tunables))
 $(eval $(call include_dsosort_tests,dso-sort-tests-1.def))
 $(eval $(call include_dsosort_tests,dso-sort-tests-2.def))
+
+# BZ15311 is intentionally underlinked.
+LDFLAGS-tst-bz15311-b.so += -Wl,-z,lazy
+LDFLAGS-tst-bz15311-c.so += -Wl,-z,lazy
+LDFLAGS-tst-bz15311-d.so += -Wl,-z,lazy
 endif
 
 check-abi: $(objpfx)check-abi-ld.out \
@@ -1514,6 +1519,20 @@ LDFLAGS-tst-initorderb2.so = -Wl,--no-as-needed
 LDFLAGS-tst-tlsmod5.so = -nostdlib -Wl,--no-as-needed
 LDFLAGS-tst-tlsmod6.so = -nostdlib -Wl,--no-as-needed
 
+# The following tests are underlinked, and rely on late loading.  On toolchains
+# that set -z now by default, this leads to failures to load or fix up the
+# executables being tested.
+LDFLAGS-circlemod2.so = -Wl,-z,lazy
+LDFLAGS-tst-tls20mod-bad.so = -Wl,-z,lazy
+LDFLAGS-reldep6mod1.so += -Wl,-z,lazy
+LDFLAGS-constload2.so = -Wl,-z,lazy
+LDFLAGS-constload3.so = -Wl,-z,lazy
+LDFLAGS-dblloadmod3.so = -Wl,-z,lazy
+LDFLAGS-ifuncmod6.so = -Wl,-z,lazy
+LDFLAGS-ltglobmod2.so = -Wl,-z,lazy
+LDFLAGS-testobj1.so = -Wl,-z,lazy
+LDFLAGS-testobj6.so = -Wl,-z,lazy
+
 testobj1.so-no-z-defs = yes
 testobj3.so-no-z-defs = yes
 testobj4.so-no-z-defs = yes
@@ -1612,6 +1631,7 @@ $(objpfx)multiload.out: $(objpfx)testobj1.so
 LDFLAGS-origtest = -rdynamic
 $(objpfx)origtest.out: $(objpfx)testobj1.so
 
+$(objpfx)resolvfail.out: $(objpfx)testobj1.so
 ifeq ($(have-thread-library),yes)
 $(objpfx)resolvfail: $(shared-thread-library)
 endif
-- 
2.39.2


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

* Re: [PATCH v2] elf: Add -z lazy to some more tests
  2023-03-07  0:32 [PATCH v2] elf: Add -z lazy to some more tests Arsen Arsenović
@ 2023-03-07  9:08 ` Florian Weimer
  2023-03-07  9:23   ` Arsen Arsenović
  0 siblings, 1 reply; 3+ messages in thread
From: Florian Weimer @ 2023-03-07  9:08 UTC (permalink / raw)
  To: Arsen Arsenović; +Cc: libc-alpha, arsen, carlos, toolchain

* Arsen Arsenović:

> @@ -1612,6 +1631,7 @@ $(objpfx)multiload.out: $(objpfx)testobj1.so
>  LDFLAGS-origtest = -rdynamic
>  $(objpfx)origtest.out: $(objpfx)testobj1.so
>  
> +$(objpfx)resolvfail.out: $(objpfx)testobj1.so
>  ifeq ($(have-thread-library),yes)
>  $(objpfx)resolvfail: $(shared-thread-library)
>  endif

Thsis seems unrelated?  I can see why it's needed, but please mention it
in the commit message at least?

Thanks,
Florian


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

* Re: [PATCH v2] elf: Add -z lazy to some more tests
  2023-03-07  9:08 ` Florian Weimer
@ 2023-03-07  9:23   ` Arsen Arsenović
  0 siblings, 0 replies; 3+ messages in thread
From: Arsen Arsenović @ 2023-03-07  9:23 UTC (permalink / raw)
  To: Florian Weimer; +Cc: libc-alpha, carlos, toolchain

[-- Attachment #1: Type: text/plain, Size: 953 bytes --]


Florian Weimer <fweimer@redhat.com> writes:

> * Arsen Arsenović:
>
>> @@ -1612,6 +1631,7 @@ $(objpfx)multiload.out: $(objpfx)testobj1.so
>>  LDFLAGS-origtest = -rdynamic
>>  $(objpfx)origtest.out: $(objpfx)testobj1.so
>>  
>> +$(objpfx)resolvfail.out: $(objpfx)testobj1.so
>>  ifeq ($(have-thread-library),yes)
>>  $(objpfx)resolvfail: $(shared-thread-library)
>>  endif
>
> Thsis seems unrelated?  I can see why it's needed, but please mention it
> in the commit message at least?

Ah, right.  I forgot about that entirely.

That test uses the testobj6, but doesn't depend on it.  If running the
elf/resolvfail test before make check, it's possible to see:

  FAIL: elf/resolvfail
  original exit status 1
  cannot load testobj1.so: testobj1.so: cannot open shared object file: No such file or directory

... which is fixed by just adding the dependency.  Will split into a new
commit and re-send.
-- 
Arsen Arsenović

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 381 bytes --]

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

end of thread, other threads:[~2023-03-07  9:30 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-07  0:32 [PATCH v2] elf: Add -z lazy to some more tests Arsen Arsenović
2023-03-07  9:08 ` Florian Weimer
2023-03-07  9:23   ` Arsen Arsenović

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).