Switch to new version of libthread_db .dynsym patch
This commit is contained in:
parent
5b63da3fa5
commit
d3fad65ba1
62
glibc-libthread_db-dynsym-1.patch
Normal file
62
glibc-libthread_db-dynsym-1.patch
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
Upstream submission:
|
||||||
|
|
||||||
|
<https://sourceware.org/pipermail/libc-alpha/2021-June/128163.html>
|
||||||
|
|
||||||
|
Author: Florian Weimer <fweimer@redhat.com>
|
||||||
|
Date: Mon Jun 28 10:05:44 2021 +0200
|
||||||
|
|
||||||
|
nptl_db: Clean up main/rtld variable handling
|
||||||
|
|
||||||
|
Most symbols are now in libc.so.6. The "main" (exempted from
|
||||||
|
coverage checks) status is therefore not necessary. Use
|
||||||
|
DB_MAIN_VARIABLE for the remaining separate symbol,
|
||||||
|
__nptl_initial_report_events. DB_RTLD_VARIABLE is now unused, so
|
||||||
|
remove it.
|
||||||
|
|
||||||
|
diff --git a/nptl_db/db-symbols.awk b/nptl_db/db-symbols.awk
|
||||||
|
index 6f326cf379fc886b..ef1d91b167998d3d 100644
|
||||||
|
--- a/nptl_db/db-symbols.awk
|
||||||
|
+++ b/nptl_db/db-symbols.awk
|
||||||
|
@@ -2,7 +2,6 @@
|
||||||
|
# we've just built. It checks for all the symbols used in td_symbol_list.
|
||||||
|
|
||||||
|
BEGIN {
|
||||||
|
-%define DB_RTLD_VARIABLE(name) /* Nothing. */
|
||||||
|
%define DB_MAIN_VARIABLE(name) /* Nothing. */
|
||||||
|
%define DB_MAIN_SYMBOL(name) /* Nothing. */
|
||||||
|
%define DB_MAIN_ARRAY_VARIABLE(name) /* Nothing. */
|
||||||
|
diff --git a/nptl_db/structs.def b/nptl_db/structs.def
|
||||||
|
index 6a726f207eca49a3..fb7bb9367d7c01ec 100644
|
||||||
|
--- a/nptl_db/structs.def
|
||||||
|
+++ b/nptl_db/structs.def
|
||||||
|
@@ -22,10 +22,6 @@
|
||||||
|
# define STRUCTS_DEF_DEFAULTS 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#ifndef DB_RTLD_VARIABLE
|
||||||
|
-# define DB_RTLD_VARIABLE(name) DB_VARIABLE (name)
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
/* DB_MAIN_VARIABLE, DB_MAIN_SYMBOL, DB_MAIN_ARRAY_VARIABLE are not
|
||||||
|
covered by the libc symbol check in db-symbols.awk. */
|
||||||
|
#ifndef DB_MAIN_VARIABLE
|
||||||
|
@@ -78,14 +74,14 @@ DB_STRUCT_FIELD (td_eventbuf_t, eventnum)
|
||||||
|
DB_STRUCT_FIELD (td_eventbuf_t, eventdata)
|
||||||
|
|
||||||
|
DB_SYMBOL (nptl_version)
|
||||||
|
-DB_MAIN_SYMBOL (__nptl_create_event)
|
||||||
|
-DB_MAIN_SYMBOL (__nptl_death_event)
|
||||||
|
+DB_SYMBOL (__nptl_create_event)
|
||||||
|
+DB_SYMBOL (__nptl_death_event)
|
||||||
|
DB_SYMBOL (__nptl_threads_events)
|
||||||
|
-DB_MAIN_VARIABLE (__nptl_nthreads)
|
||||||
|
+DB_VARIABLE (__nptl_nthreads)
|
||||||
|
DB_VARIABLE (__nptl_last_event)
|
||||||
|
-DB_RTLD_VARIABLE (__nptl_initial_report_events)
|
||||||
|
+DB_MAIN_VARIABLE (__nptl_initial_report_events)
|
||||||
|
|
||||||
|
-DB_MAIN_ARRAY_VARIABLE (__pthread_keys)
|
||||||
|
+DB_ARRAY_VARIABLE (__pthread_keys)
|
||||||
|
DB_STRUCT (pthread_key_struct)
|
||||||
|
DB_STRUCT_FIELD (pthread_key_struct, seq)
|
||||||
|
DB_STRUCT_FIELD (pthread_key_struct, destr)
|
37
glibc-libthread_db-dynsym-2.patch
Normal file
37
glibc-libthread_db-dynsym-2.patch
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
Upstream submission:
|
||||||
|
|
||||||
|
<https://sourceware.org/pipermail/libc-alpha/2021-June/128163.html>
|
||||||
|
|
||||||
|
Author: Florian Weimer <fweimer@redhat.com>
|
||||||
|
Date: Mon Jun 28 10:25:21 2021 +0200
|
||||||
|
|
||||||
|
nptl: Rename nptl_version to __nptl_version
|
||||||
|
|
||||||
|
This prepares it for exporting as a dynamic symbol.
|
||||||
|
|
||||||
|
diff --git a/nptl_db/structs.def b/nptl_db/structs.def
|
||||||
|
index fb7bb9367d7c01ec..248ecf43358dd7ae 100644
|
||||||
|
--- a/nptl_db/structs.def
|
||||||
|
+++ b/nptl_db/structs.def
|
||||||
|
@@ -73,7 +73,7 @@ DB_STRUCT (td_eventbuf_t)
|
||||||
|
DB_STRUCT_FIELD (td_eventbuf_t, eventnum)
|
||||||
|
DB_STRUCT_FIELD (td_eventbuf_t, eventdata)
|
||||||
|
|
||||||
|
-DB_SYMBOL (nptl_version)
|
||||||
|
+DB_SYMBOL (__nptl_version)
|
||||||
|
DB_SYMBOL (__nptl_create_event)
|
||||||
|
DB_SYMBOL (__nptl_death_event)
|
||||||
|
DB_SYMBOL (__nptl_threads_events)
|
||||||
|
diff --git a/nptl_db/td_ta_new.c b/nptl_db/td_ta_new.c
|
||||||
|
index 501d922ea269f703..eeca29d5a0f7be9f 100644
|
||||||
|
--- a/nptl_db/td_ta_new.c
|
||||||
|
+++ b/nptl_db/td_ta_new.c
|
||||||
|
@@ -39,7 +39,7 @@ td_ta_new (struct ps_prochandle *ps, td_thragent_t **ta)
|
||||||
|
LOG ("td_ta_new");
|
||||||
|
|
||||||
|
/* Check whether the versions match. */
|
||||||
|
- if (td_lookup (ps, SYM_nptl_version, &versaddr) != PS_OK)
|
||||||
|
+ if (td_lookup (ps, SYM___nptl_version, &versaddr) != PS_OK)
|
||||||
|
return TD_NOLIBTHREAD;
|
||||||
|
if (ps_pdread (ps, versaddr, versbuf, sizeof (versbuf)) != PS_OK)
|
||||||
|
return TD_ERR;
|
@ -1,16 +1,21 @@
|
|||||||
|
Upstream submission:
|
||||||
|
|
||||||
|
<https://sourceware.org/pipermail/libc-alpha/2021-June/128163.html>
|
||||||
|
|
||||||
Author: Florian Weimer <fweimer@redhat.com>
|
Author: Florian Weimer <fweimer@redhat.com>
|
||||||
Date: Thu Jun 17 19:23:00 2021 +0200
|
Date: Mon Jun 28 10:24:33 2021 +0200
|
||||||
|
|
||||||
nptl: Export libthread_db-used symbols under GLIBC_PRIVATE
|
nptl: Export libthread_db-used symbols under GLIBC_PRIVATE
|
||||||
|
|
||||||
This allows distributions to strip debugging information from
|
This allows distributions to strip debugging information from
|
||||||
libc.so.6 without impacting the debugging experience.
|
libc.so.6 without impacting the debugging experience.
|
||||||
|
|
||||||
nptl_version had to be renamed to __nptl_version to avoid
|
The commit also enhances the checks in nptl/db-symbols.awk to cover
|
||||||
namespace issues.
|
both the _thread_db_* descriptor symbols and the actual symbols
|
||||||
|
themselves.
|
||||||
|
|
||||||
diff --git a/nptl/Versions b/nptl/Versions
|
diff --git a/nptl/Versions b/nptl/Versions
|
||||||
index 62bb939d54..c03ed92848 100644
|
index e4fae73c0b9fae0c..060d8d5dec2be29c 100644
|
||||||
--- a/nptl/Versions
|
--- a/nptl/Versions
|
||||||
+++ b/nptl/Versions
|
+++ b/nptl/Versions
|
||||||
@@ -403,10 +403,14 @@ libc {
|
@@ -403,10 +403,14 @@ libc {
|
||||||
@ -28,12 +33,14 @@ index 62bb939d54..c03ed92848 100644
|
|||||||
__pthread_attr_copy;
|
__pthread_attr_copy;
|
||||||
__pthread_attr_destroy;
|
__pthread_attr_destroy;
|
||||||
__pthread_attr_init;
|
__pthread_attr_init;
|
||||||
@@ -430,6 +434,58 @@ libc {
|
@@ -430,6 +434,60 @@ libc {
|
||||||
__pthread_unwind;
|
__pthread_unwind;
|
||||||
__sched_fifo_max_prio;
|
__sched_fifo_max_prio;
|
||||||
__sched_fifo_min_prio;
|
__sched_fifo_min_prio;
|
||||||
+ _thread_db___nptl_last_event;
|
+ _thread_db___nptl_last_event;
|
||||||
|
+ _thread_db___nptl_nthreads;
|
||||||
+ _thread_db___nptl_rtld_global;
|
+ _thread_db___nptl_rtld_global;
|
||||||
|
+ _thread_db___pthread_keys;
|
||||||
+ _thread_db_const_thread_area;
|
+ _thread_db_const_thread_area;
|
||||||
+ _thread_db_dtv_dtv;
|
+ _thread_db_dtv_dtv;
|
||||||
+ _thread_db_dtv_slotinfo_gen;
|
+ _thread_db_dtv_slotinfo_gen;
|
||||||
@ -88,7 +95,7 @@ index 62bb939d54..c03ed92848 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c
|
diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c
|
||||||
index 3f017f1e26..d1b6817a81 100644
|
index 3f017f1e26c0d107..d1b6817a81b21ef1 100644
|
||||||
--- a/nptl/pthread_create.c
|
--- a/nptl/pthread_create.c
|
||||||
+++ b/nptl/pthread_create.c
|
+++ b/nptl/pthread_create.c
|
||||||
@@ -43,21 +43,24 @@
|
@@ -43,21 +43,24 @@
|
||||||
@ -122,10 +129,10 @@ index 3f017f1e26..d1b6817a81 100644
|
|||||||
/* This performs the initialization necessary when going from
|
/* This performs the initialization necessary when going from
|
||||||
single-threaded to multi-threaded mode for the first time. */
|
single-threaded to multi-threaded mode for the first time. */
|
||||||
diff --git a/nptl_db/Makefile b/nptl_db/Makefile
|
diff --git a/nptl_db/Makefile b/nptl_db/Makefile
|
||||||
index ea721c1dcf..4cc51c0e7b 100644
|
index 1f79c018a1f9fe19..c04aa6140acff337 100644
|
||||||
--- a/nptl_db/Makefile
|
--- a/nptl_db/Makefile
|
||||||
+++ b/nptl_db/Makefile
|
+++ b/nptl_db/Makefile
|
||||||
@@ -57,7 +57,7 @@ include ../Rules
|
@@ -55,7 +55,7 @@ include ../Rules
|
||||||
|
|
||||||
$(objpfx)db-symbols.out: $(objpfx)db-symbols.v.i \
|
$(objpfx)db-symbols.out: $(objpfx)db-symbols.v.i \
|
||||||
$(common-objpfx)libc.so
|
$(common-objpfx)libc.so
|
||||||
@ -135,10 +142,32 @@ index ea721c1dcf..4cc51c0e7b 100644
|
|||||||
|
|
||||||
$(objpfx)db-symbols.v.i: db-symbols.awk
|
$(objpfx)db-symbols.v.i: db-symbols.awk
|
||||||
diff --git a/nptl_db/db-symbols.awk b/nptl_db/db-symbols.awk
|
diff --git a/nptl_db/db-symbols.awk b/nptl_db/db-symbols.awk
|
||||||
index 6f326cf379..2033f95e38 100644
|
index ef1d91b167998d3d..a9289b4686a02dd2 100644
|
||||||
--- a/nptl_db/db-symbols.awk
|
--- a/nptl_db/db-symbols.awk
|
||||||
+++ b/nptl_db/db-symbols.awk
|
+++ b/nptl_db/db-symbols.awk
|
||||||
@@ -13,7 +13,7 @@ BEGIN {
|
@@ -1,7 +1,8 @@
|
||||||
|
-# 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 {
|
||||||
|
+# This processes the _thread_db_* names.
|
||||||
|
%define DB_MAIN_VARIABLE(name) /* Nothing. */
|
||||||
|
%define DB_MAIN_SYMBOL(name) /* Nothing. */
|
||||||
|
%define DB_MAIN_ARRAY_VARIABLE(name) /* Nothing. */
|
||||||
|
@@ -9,10 +10,19 @@ BEGIN {
|
||||||
|
%define DB_LOOKUP_NAME_TH_UNIQUE(idx, name) th_unique[STRINGIFY (name)] = 1;
|
||||||
|
%include "db-symbols.h"
|
||||||
|
|
||||||
|
+# And this processes the symbol names themselves.
|
||||||
|
+%define DB_STRUCT(...) /* Nothing. */
|
||||||
|
+%define DB_STRUCT_FIELD(...) /* Nothing. */
|
||||||
|
+%define DB_STRUCT_FLEXIBLE_ARRAY(...) /* Nothing. */
|
||||||
|
+%define DB_SYMBOL(name) required[STRINGIFY (name)] = 1;
|
||||||
|
+%define DB_FUNCTION(name) required[STRINGIFY (name)] = 1;
|
||||||
|
+%define DB_VARIABLE(name) required[STRINGIFY (name)] = 1;
|
||||||
|
+%include "structs.def"
|
||||||
|
+
|
||||||
in_symtab = 0;
|
in_symtab = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -147,7 +176,7 @@ index 6f326cf379..2033f95e38 100644
|
|||||||
NF == 0 { in_symtab=0; next }
|
NF == 0 { in_symtab=0; next }
|
||||||
|
|
||||||
!in_symtab { next }
|
!in_symtab { next }
|
||||||
@@ -24,6 +24,7 @@ END {
|
@@ -23,6 +33,7 @@ END {
|
||||||
status = 0;
|
status = 0;
|
||||||
|
|
||||||
for (s in required) {
|
for (s in required) {
|
||||||
@ -155,7 +184,7 @@ index 6f326cf379..2033f95e38 100644
|
|||||||
if (s in seen) print s, "ok";
|
if (s in seen) print s, "ok";
|
||||||
else {
|
else {
|
||||||
status = 1;
|
status = 1;
|
||||||
@@ -33,6 +34,7 @@ END {
|
@@ -32,6 +43,7 @@ END {
|
||||||
|
|
||||||
any = "";
|
any = "";
|
||||||
for (s in th_unique) {
|
for (s in th_unique) {
|
||||||
@ -163,29 +192,3 @@ index 6f326cf379..2033f95e38 100644
|
|||||||
if (s in seen) {
|
if (s in seen) {
|
||||||
any = s;
|
any = s;
|
||||||
break;
|
break;
|
||||||
diff --git a/nptl_db/structs.def b/nptl_db/structs.def
|
|
||||||
index 6a726f207e..e2e51acc39 100644
|
|
||||||
--- a/nptl_db/structs.def
|
|
||||||
+++ b/nptl_db/structs.def
|
|
||||||
@@ -77,7 +77,7 @@ DB_STRUCT (td_eventbuf_t)
|
|
||||||
DB_STRUCT_FIELD (td_eventbuf_t, eventnum)
|
|
||||||
DB_STRUCT_FIELD (td_eventbuf_t, eventdata)
|
|
||||||
|
|
||||||
-DB_SYMBOL (nptl_version)
|
|
||||||
+DB_SYMBOL (__nptl_version)
|
|
||||||
DB_MAIN_SYMBOL (__nptl_create_event)
|
|
||||||
DB_MAIN_SYMBOL (__nptl_death_event)
|
|
||||||
DB_SYMBOL (__nptl_threads_events)
|
|
||||||
diff --git a/nptl_db/td_ta_new.c b/nptl_db/td_ta_new.c
|
|
||||||
index 501d922ea2..eeca29d5a0 100644
|
|
||||||
--- a/nptl_db/td_ta_new.c
|
|
||||||
+++ b/nptl_db/td_ta_new.c
|
|
||||||
@@ -39,7 +39,7 @@ td_ta_new (struct ps_prochandle *ps, td_thragent_t **ta)
|
|
||||||
LOG ("td_ta_new");
|
|
||||||
|
|
||||||
/* Check whether the versions match. */
|
|
||||||
- if (td_lookup (ps, SYM_nptl_version, &versaddr) != PS_OK)
|
|
||||||
+ if (td_lookup (ps, SYM___nptl_version, &versaddr) != PS_OK)
|
|
||||||
return TD_NOLIBTHREAD;
|
|
||||||
if (ps_pdread (ps, versaddr, versbuf, sizeof (versbuf)) != PS_OK)
|
|
||||||
return TD_ERR;
|
|
@ -111,7 +111,7 @@
|
|||||||
Summary: The GNU libc libraries
|
Summary: The GNU libc libraries
|
||||||
Name: glibc
|
Name: glibc
|
||||||
Version: %{glibcversion}
|
Version: %{glibcversion}
|
||||||
Release: 31%{?dist}
|
Release: 32%{?dist}
|
||||||
|
|
||||||
# In general, GPLv2+ is used by programs, LGPLv2+ is used for
|
# In general, GPLv2+ is used by programs, LGPLv2+ is used for
|
||||||
# libraries.
|
# libraries.
|
||||||
@ -194,8 +194,10 @@ Patch34: glibc-nosymlink-1.patch
|
|||||||
Patch35: glibc-nosymlink-2.patch
|
Patch35: glibc-nosymlink-2.patch
|
||||||
Patch36: glibc-nosymlink-3.patch
|
Patch36: glibc-nosymlink-3.patch
|
||||||
Patch37: glibc-nosymlink-4.patch
|
Patch37: glibc-nosymlink-4.patch
|
||||||
Patch38: glibc-libthread_db-dynsym.patch
|
|
||||||
Patch39: glibc-iconvconfig-corruption.patch
|
Patch39: glibc-iconvconfig-corruption.patch
|
||||||
|
Patch40: glibc-libthread_db-dynsym-1.patch
|
||||||
|
Patch41: glibc-libthread_db-dynsym-2.patch
|
||||||
|
Patch42: glibc-libthread_db-dynsym-3.patch
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
# Continued list of core "glibc" package information:
|
# Continued list of core "glibc" package information:
|
||||||
@ -2213,6 +2215,9 @@ fi
|
|||||||
%files -f compat-libpthread-nonshared.filelist -n compat-libpthread-nonshared
|
%files -f compat-libpthread-nonshared.filelist -n compat-libpthread-nonshared
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Jun 28 2021 Florian Weimer <fweimer@redhat.com> - 2.33.9000-32
|
||||||
|
- Switch to new version of libthread_db .dynsym patch
|
||||||
|
|
||||||
* Mon Jun 28 2021 Florian Weimer <fweimer@redhat.com> - 2.33.9000-31
|
* Mon Jun 28 2021 Florian Weimer <fweimer@redhat.com> - 2.33.9000-31
|
||||||
- Further .symtab adjustment: Keep all __GI_* symbols (#1975859)
|
- Further .symtab adjustment: Keep all __GI_* symbols (#1975859)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user