aboutsummaryrefslogtreecommitdiff
path: root/elf/Makefile
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2021-12-05 11:28:34 +0100
committerFlorian Weimer <fweimer@redhat.com>2021-12-05 11:28:34 +0100
commitc1cb2deeca1a85c6fc5bd41b90816d48a95bc434 (patch)
treeb8adcf18e06480c47d65f991739788f0f99ccd4d /elf/Makefile
parentbada2e312a8b94c5fc2f5571b249c71cb466a640 (diff)
downloadglibc-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/Makefile3
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