aboutsummaryrefslogtreecommitdiff
path: root/nptl_db
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2021-06-28 14:33:53 +0200
committerFlorian Weimer <fweimer@redhat.com>2021-06-28 15:05:42 +0200
commitfef400a2f976d1fd6a4639e6980f6c50ee13fbf5 (patch)
treecb92de8390f3c38c40f54e6dc496b39ae449563a /nptl_db
parentb369cc4e9c2436b9b4f56128059313b69b0c300d (diff)
downloadglibc-fef400a2f976d1fd6a4639e6980f6c50ee13fbf5.zip
glibc-fef400a2f976d1fd6a4639e6980f6c50ee13fbf5.tar.gz
glibc-fef400a2f976d1fd6a4639e6980f6c50ee13fbf5.tar.bz2
nptl: Export libthread_db-used symbols under GLIBC_PRIVATE
This allows distributions to strip debugging information from libc.so.6 without impacting the debugging experience. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Diffstat (limited to 'nptl_db')
-rw-r--r--nptl_db/Makefile2
-rw-r--r--nptl_db/db-symbols.awk6
2 files changed, 5 insertions, 3 deletions
diff --git a/nptl_db/Makefile b/nptl_db/Makefile
index 1f79c01..c04aa61 100644
--- a/nptl_db/Makefile
+++ b/nptl_db/Makefile
@@ -55,7 +55,7 @@ include ../Rules
$(objpfx)db-symbols.out: $(objpfx)db-symbols.v.i \
$(common-objpfx)libc.so
- LC_ALL=C $(READELF) -W -s $(filter %.so,$^) | $(AWK) -f $< > $@; \
+ LC_ALL=C $(READELF) -W -D -s $(filter %.so,$^) | $(AWK) -f $< > $@; \
$(evaluate-test)
$(objpfx)db-symbols.v.i: db-symbols.awk
diff --git a/nptl_db/db-symbols.awk b/nptl_db/db-symbols.awk
index ef1d91b..fe90d3b 100644
--- a/nptl_db/db-symbols.awk
+++ b/nptl_db/db-symbols.awk
@@ -1,4 +1,4 @@
-# This script processes the output of 'readelf -W -s' on the libpthread.so
+# This script processes the output of 'readelf -W -D -s' on the libc.so
# we've just built. It checks for all the symbols used in td_symbol_list.
BEGIN {
@@ -12,7 +12,7 @@ BEGIN {
in_symtab = 0;
}
-/Symbol table '.symtab'/ { in_symtab=1; next }
+/Symbol table for image/ { in_symtab=1; next }
NF == 0 { in_symtab=0; next }
!in_symtab { next }
@@ -23,6 +23,7 @@ END {
status = 0;
for (s in required) {
+ s = s "@@GLIBC_PRIVATE"
if (s in seen) print s, "ok";
else {
status = 1;
@@ -32,6 +33,7 @@ END {
any = "";
for (s in th_unique) {
+ s = s "@@GLIBC_PRIVATE"
if (s in seen) {
any = s;
break;