aboutsummaryrefslogtreecommitdiff
path: root/gold/layout.cc
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@google.com>2014-06-06 16:23:21 -0700
committerCary Coutant <ccoutant@google.com>2014-06-06 16:24:30 -0700
commit4320c6919860634baf2207d9a642a9fbd9efc3d5 (patch)
tree54f6adffda34dbb3a69c3d51bf2c7c70a9c9119b /gold/layout.cc
parent25326a285b3aea10ea9acd63b6187ae78b59b09e (diff)
downloadgdb-4320c6919860634baf2207d9a642a9fbd9efc3d5.zip
gdb-4320c6919860634baf2207d9a642a9fbd9efc3d5.tar.gz
gdb-4320c6919860634baf2207d9a642a9fbd9efc3d5.tar.bz2
Strip .debug_gnu_pubnames and .debug_gnu_pubtypes when building .gdb_index.
When not stripping those sections, there was a bug where gold was incorrectly adjusting section-relative offsets by the offset of the input section within the output section. That adjustment was both unnecessary and wrong, causing gold to miss a number of debug entries that should have been added to .gdb_index. (With stripping, the adjustment was always 0, so the bug in dwarf_reader.cc would have been hidden by the change to layout.cc.) gold/ * dwarf_reader.h (Dwarf_pubnames_table): Remove output_section_offset_. * dwarf_reader.cc (Dwarf_pubnames_table::read_section): Likewise. (Dwarf_pubnames_table::read_header): Likewise. * layout.cc (gdb_fast_lookup_sections): Add .debug_gnu_pubnames and .debug_gnu_pubtypes.
Diffstat (limited to 'gold/layout.cc')
-rw-r--r--gold/layout.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/gold/layout.cc b/gold/layout.cc
index 147f740..c5c3b57 100644
--- a/gold/layout.cc
+++ b/gold/layout.cc
@@ -563,7 +563,9 @@ static const char* gdb_fast_lookup_sections[] =
{
"aranges",
"pubnames",
+ "gnu_pubnames",
"pubtypes",
+ "gnu_pubtypes",
};
// Returns whether the given debug section is in the list of