diff options
author | Florian Weimer <fweimer@redhat.com> | 2021-12-05 11:28:34 +0100 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2021-12-05 11:28:34 +0100 |
commit | c1cb2deeca1a85c6fc5bd41b90816d48a95bc434 (patch) | |
tree | b8adcf18e06480c47d65f991739788f0f99ccd4d /elf/Makefile | |
parent | bada2e312a8b94c5fc2f5571b249c71cb466a640 (diff) | |
download | glibc-c1cb2deeca1a85c6fc5bd41b90816d48a95bc434.tar glibc-c1cb2deeca1a85c6fc5bd41b90816d48a95bc434.tar.gz glibc-c1cb2deeca1a85c6fc5bd41b90816d48a95bc434.tar.bz2 glibc-c1cb2deeca1a85c6fc5bd41b90816d48a95bc434.zip |
elf: execve statically linked programs instead of crashing [BZ #28648]
Programs without dynamic dependencies and without a program
interpreter are now run via execve.
Previously, the dynamic linker either crashed while attempting to
read a non-existing dynamic segment (looking for DT_AUDIT/DT_DEPAUDIT
data), or the self-relocated in the static PIE executable crashed
because the outer dynamic linker had already applied RELRO protection.
<dl-execve.h> is needed because execve is not available in the
dynamic loader on Hurd.
Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
Diffstat (limited to 'elf/Makefile')
-rw-r--r-- | elf/Makefile | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/elf/Makefile b/elf/Makefile index 4723c159cb..ef36008673 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -231,6 +231,7 @@ tests += restest1 preloadtest loadfail multiload origtest resolvfail \ tst-tls20 tst-tls21 tst-dlmopen-dlerror tst-dlmopen-gethostbyname \ tst-dl-is_dso tst-ro-dynamic \ tst-audit18 \ + tst-rtld-run-static \ # reldep9 tests-internal += loadtest unload unload2 circleload1 \ neededtest neededtest2 neededtest3 neededtest4 \ @@ -1977,3 +1978,5 @@ $(objpfx)tst-ro-dynamic-mod.so: $(objpfx)tst-ro-dynamic-mod.os \ $(LINK.o) -nostdlib -nostartfiles -shared -o $@ \ -Wl,--script=tst-ro-dynamic-mod.map \ $(objpfx)tst-ro-dynamic-mod.os + +$(objpfx)tst-rtld-run-static.out: $(objpfx)/ldconfig |