Message ID | 20220603145037.126797-1-murphyp@linux.ibm.com |
---|---|
State | New |
Headers | show |
Series | [v2] nptl_db: disable DT_RELR on libthread_db.so | expand |
On 6/3/22 10:50, Paul E. Murphy via Libc-alpha wrote: > Continued from > > https://sourceware.org/pipermail/libc-alpha/2022-June/139357.html LGTM. Reviewed-by: Carlos O'Donell <carlos@redhat.com> > ---8<--- > > Some nptl tests inadvertently use the host's gdb to verify > libthread_db.so, which is loaded with the host's runtime. This causes > a couple of test failures when the host glibc does not support DT_RELR. > > The not correct, but simple, workaround is to build without DT_RELR > as this library is otherwise likely to load on glibc 2.17 and newer > today. > > This allows tst-pthread-gdb-attach{,-static} to continue working > when testing on a gdb loaded with an older glibc. OK. > > This avoids a failure in tst-pthread-gdb-attach similar to: > > Trying host libthread_db library: .../build/glibc/nptl_db/libthread_db.so.1. > dlopen failed: /lib64/libc.so.6: version `GLIBC_ABI_DT_RELR' not found (required by .../build/glibc/nptl_db/libthread_db.so.1). OK. > --- > nptl_db/Makefile | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/nptl_db/Makefile b/nptl_db/Makefile > index ed923a41e5..2360e53c88 100644 > --- a/nptl_db/Makefile > +++ b/nptl_db/Makefile > @@ -49,6 +49,12 @@ libthread_db-inhibit-o = $(filter-out .os,$(object-suffixes)) > # The ps_* callback functions are not defined. > libthread_db.so-no-z-defs = yes > > +# This is a hack. This is not the correct solution. When this glibc > +# is tested, the gdb used could be loaded by the host glibc, which > +# may not support DT_RELR, and report a failure instead of unsupported. > +# For now, build this without DT_RELR support to avoid this situation. OK. *Great* comment :-) > +libthread_db.so-no-dt-relr = yes > + > tests-special += $(objpfx)db-symbols.out > > include ../Rules
On 6/7/22 5:56 PM, Carlos O'Donell wrote: > On 6/3/22 10:50, Paul E. Murphy via Libc-alpha wrote: >> Continued from >> >> https://sourceware.org/pipermail/libc-alpha/2022-June/139357.html > > LGTM. > > Reviewed-by: Carlos O'Donell <carlos@redhat.com> Pushed. Thank you all for the reviews and feedback.
diff --git a/nptl_db/Makefile b/nptl_db/Makefile index ed923a41e5..2360e53c88 100644 --- a/nptl_db/Makefile +++ b/nptl_db/Makefile @@ -49,6 +49,12 @@ libthread_db-inhibit-o = $(filter-out .os,$(object-suffixes)) # The ps_* callback functions are not defined. libthread_db.so-no-z-defs = yes +# This is a hack. This is not the correct solution. When this glibc +# is tested, the gdb used could be loaded by the host glibc, which +# may not support DT_RELR, and report a failure instead of unsupported. +# For now, build this without DT_RELR support to avoid this situation. +libthread_db.so-no-dt-relr = yes + tests-special += $(objpfx)db-symbols.out include ../Rules