]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
nptl_db: disable DT_RELR on libthread_db.so
authorPaul E. Murphy <murphyp@linux.ibm.com>
Wed, 1 Jun 2022 16:19:49 +0000 (16:19 +0000)
committerPaul E. Murphy <murphyp@linux.ibm.com>
Wed, 8 Jun 2022 16:17:47 +0000 (11:17 -0500)
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.

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).

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
nptl_db/Makefile

index ed923a41e5774983181d604c81c7bf14c95a951b..2360e53c887087cd04757a0eb89e16bd340f024e 100644 (file)
@@ -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