mirror of
https://github.com/beard7n/bsdports.git
synced 2026-04-13 20:11:19 +02:00
37 lines
1.4 KiB
Plaintext
37 lines
1.4 KiB
Plaintext
commit df22c1e5d53c38f38bce6072bb46de240f9e0e2b
|
|
Author: John Baldwin <jhb@FreeBSD.org>
|
|
Date: Tue Mar 12 13:39:02 2019 -0700
|
|
|
|
Handle an edge case for minisym TLS variable lookups.
|
|
|
|
If a TLS variable is provided by a minisym from a separate debug file,
|
|
the separate debug file is passed to
|
|
gdbarch_fetch_tls_load_module_address. However, the object files
|
|
stored in the shared object list are the original object files, not
|
|
the separate debug object files. In this case,
|
|
svr4_fetch_objfile_link_map was failing to find the link map entry
|
|
since the debug object file is not in its internal list, only the
|
|
original object file.
|
|
|
|
gdb/ChangeLog:
|
|
|
|
* solib-svr4.c (svr4_fetch_objfile_link_map): Look for
|
|
objfile->separate_debug_objfile_backlink if not NULL.
|
|
|
|
diff --git gdb/solib-svr4.c gdb/solib-svr4.c
|
|
index 84693c1766..14a471b6dc 100644
|
|
--- gdb/solib-svr4.c
|
|
+++ gdb/solib-svr4.c
|
|
@@ -1551,6 +1551,11 @@ svr4_fetch_objfile_link_map (struct objfile *objfile)
|
|
if (objfile == symfile_objfile)
|
|
return info->main_lm_addr;
|
|
|
|
+ /* If OBJFILE is a separate debug object file, look for the
|
|
+ original object file. */
|
|
+ if (objfile->separate_debug_objfile_backlink != NULL)
|
|
+ objfile = objfile->separate_debug_objfile_backlink;
|
|
+
|
|
/* The other link map addresses may be found by examining the list
|
|
of shared libraries. */
|
|
for (so = master_so_list (); so; so = so->next)
|