Message ID | 20190722195226.30727-1-tuliom@linux.ibm.com |
---|---|
State | New |
Headers | show |
Series | test-container: Avoid copying unintended system libraries | expand |
* Tulio Magno Quites Machado Filho: > Some DSOs are distributed in hardware capability directories, e.g. > /usr/lib64/power7/libc.so.6 > Whenever the processor is able to use one of these hardware-enabled > DSOs, testroot.pristine ends up with copies of glibc-provided libraries > from the system because it can't overwrite or remove them. > > This patch avoids the unintended copies by executing ld.so with the same > arguments passed to each glibc test. The patch looks okay to me because $(rtld-prefix) is not affected by $(build-hardcoded-path-in-tests). But in that case, the probing command is definitely not run like a test would run.
Florian Weimer <fw@deneb.enyo.de> writes: > * Tulio Magno Quites Machado Filho: > >> Some DSOs are distributed in hardware capability directories, e.g. >> /usr/lib64/power7/libc.so.6 >> Whenever the processor is able to use one of these hardware-enabled >> DSOs, testroot.pristine ends up with copies of glibc-provided libraries >> from the system because it can't overwrite or remove them. >> >> This patch avoids the unintended copies by executing ld.so with the same >> arguments passed to each glibc test. > > The patch looks okay to me because $(rtld-prefix) is not affected by > $(build-hardcoded-path-in-tests). But in that case, the probing > command is definitely not run like a test would run. Interesting... Current master has a couple of failures when I configured with --enable-hardcoded-path-in-tests. This patch doesn't break nor improve the situation there. So, I'm pushing it. Thanks!!
* Tulio Magno Quites Machado Filho: > Florian Weimer <fw@deneb.enyo.de> writes: > >> * Tulio Magno Quites Machado Filho: >> >>> Some DSOs are distributed in hardware capability directories, e.g. >>> /usr/lib64/power7/libc.so.6 >>> Whenever the processor is able to use one of these hardware-enabled >>> DSOs, testroot.pristine ends up with copies of glibc-provided libraries >>> from the system because it can't overwrite or remove them. >>> >>> This patch avoids the unintended copies by executing ld.so with the same >>> arguments passed to each glibc test. >> >> The patch looks okay to me because $(rtld-prefix) is not affected by >> $(build-hardcoded-path-in-tests). But in that case, the probing >> command is definitely not run like a test would run. > > Interesting... Current master has a couple of failures when I configured > with --enable-hardcoded-path-in-tests. > This patch doesn't break nor improve the situation there. > > So, I'm pushing it. Sorry, I meant this as a suggestion to improve the commit message. 8-> But I guess it doesn't matter know.
diff --git a/Makefile b/Makefile index dc5de7aa6b..a4ed747cef 100644 --- a/Makefile +++ b/Makefile @@ -383,7 +383,7 @@ $(objpfx)testroot.pristine/install.stamp : ifeq ($(run-built-tests),yes) # Copy these DSOs first so we can overwrite them with our own. for dso in `$(test-wrapper-env) LD_TRACE_LOADED_OBJECTS=1 \ - $(objpfx)elf/$(rtld-installed-name) \ + $(rtld-prefix) \ $(objpfx)testroot.pristine/bin/sh \ | grep / | sed 's/^[^/]*//' | sed 's/ .*//'` ;\ do \ @@ -392,7 +392,7 @@ ifeq ($(run-built-tests),yes) $(test-wrapper) cp $$dso $(objpfx)testroot.pristine$$dso ;\ done for dso in `$(test-wrapper-env) LD_TRACE_LOADED_OBJECTS=1 \ - $(objpfx)elf/$(rtld-installed-name) \ + $(rtld-prefix) \ $(objpfx)support/$(LINKS_DSO_PROGRAM) \ | grep / | sed 's/^[^/]*//' | sed 's/ .*//'` ;\ do \