Message ID | 87pngkwfh9.fsf@oldenburg2.str.redhat.com |
---|---|
State | New |
Headers | show |
Series | Fix test isolation for elf/tst-ifunc-fault-lazy, elf/tst-ifunc-fault-bindnow | expand |
On Dez 19 2019, Florian Weimer wrote: > diff --git a/elf/Makefile b/elf/Makefile > index 72a5aa88b1..2c52e8ae19 100644 > --- a/elf/Makefile > +++ b/elf/Makefile > @@ -1374,11 +1374,13 @@ $(objpfx)ifuncmain5picstatic: $(addprefix $(objpfx),ifuncdep5pic.o) > > LDFLAGS-tst-ifunc-fault-lazy = -Wl,-z,lazy > LDFLAGS-tst-ifunc-fault-bindnow = -Wl,-z,now > +tst-ifunc-fault-script-ldso = \ > + $(objpfx)ld.so --library-path $(common-objpfx):$(objpfx) How about using rtld-prefix? Andreas.
* Andreas Schwab: > On Dez 19 2019, Florian Weimer wrote: > >> diff --git a/elf/Makefile b/elf/Makefile >> index 72a5aa88b1..2c52e8ae19 100644 >> --- a/elf/Makefile >> +++ b/elf/Makefile >> @@ -1374,11 +1374,13 @@ $(objpfx)ifuncmain5picstatic: $(addprefix $(objpfx),ifuncdep5pic.o) >> >> LDFLAGS-tst-ifunc-fault-lazy = -Wl,-z,lazy >> LDFLAGS-tst-ifunc-fault-bindnow = -Wl,-z,now >> +tst-ifunc-fault-script-ldso = \ >> + $(objpfx)ld.so --library-path $(common-objpfx):$(objpfx) > > How about using rtld-prefix? Thanks, it seems to work, even --enable-hardcoded-path-in-tets. Florian 8<------------------------------------------------------------------8< Previously, ld.so was invoked only with the elf subdirectory on the library search path. Since the soname link for libc.so only exists in the top-level build directory, this leaked the system libc into the test. --- elf/Makefile | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/elf/Makefile b/elf/Makefile index 72a5aa88b1..f861126b2f 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -1375,10 +1375,9 @@ $(objpfx)ifuncmain5picstatic: $(addprefix $(objpfx),ifuncdep5pic.o) LDFLAGS-tst-ifunc-fault-lazy = -Wl,-z,lazy LDFLAGS-tst-ifunc-fault-bindnow = -Wl,-z,now define tst-ifunc-fault-script -( $(objpfx)ld.so --verify --library-path $(objpfx) $^ \ - && LD_TRACE_LOADED_OBJECTS=1 $(objpfx)ld.so --library-path $(objpfx) $^ \ - && LD_TRACE_LOADED_OBJECTS=1 LD_DEBUG=unused \ - $(objpfx)ld.so --library-path $(objpfx) $^ \ +( $(rtld-prefix) --verify $^ \ + && LD_TRACE_LOADED_OBJECTS=1 $(rtld-prefix) $^ \ + && LD_TRACE_LOADED_OBJECTS=1 LD_DEBUG=unused $(rtld-prefix) $^ \ ) > $@; $(evaluate-test) endef $(objpfx)tst-ifunc-fault-lazy.out: $(objpfx)tst-ifunc-fault-lazy $(objpfx)ld.so
On Dez 19 2019, Florian Weimer wrote: > Previously, ld.so was invoked only with the elf subdirectory on the > library search path. Since the soname link for libc.so only exists in > the top-level build directory, this leaked the system libc into the > test. Ok. Andreas.
diff --git a/elf/Makefile b/elf/Makefile index 72a5aa88b1..2c52e8ae19 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -1374,11 +1374,13 @@ $(objpfx)ifuncmain5picstatic: $(addprefix $(objpfx),ifuncdep5pic.o) LDFLAGS-tst-ifunc-fault-lazy = -Wl,-z,lazy LDFLAGS-tst-ifunc-fault-bindnow = -Wl,-z,now +tst-ifunc-fault-script-ldso = \ + $(objpfx)ld.so --library-path $(common-objpfx):$(objpfx) define tst-ifunc-fault-script -( $(objpfx)ld.so --verify --library-path $(objpfx) $^ \ - && LD_TRACE_LOADED_OBJECTS=1 $(objpfx)ld.so --library-path $(objpfx) $^ \ +( $(tst-ifunc-fault-script-ldso) --verify $^ \ + && LD_TRACE_LOADED_OBJECTS=1 $(tst-ifunc-fault-script-ldso) $^ \ && LD_TRACE_LOADED_OBJECTS=1 LD_DEBUG=unused \ - $(objpfx)ld.so --library-path $(objpfx) $^ \ + $(tst-ifunc-fault-script-ldso) $^ \ ) > $@; $(evaluate-test) endef $(objpfx)tst-ifunc-fault-lazy.out: $(objpfx)tst-ifunc-fault-lazy $(objpfx)ld.so