aboutsummaryrefslogtreecommitdiff
path: root/gold/object.h
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@gmail.com>2017-11-28 18:09:41 -0800
committerCary Coutant <ccoutant@gmail.com>2017-11-28 18:09:41 -0800
commit8de0e07bf381f677bb93a8da72185a54e5b014bd (patch)
treed598f897f5281705c96ff2d4c42afd59d9521426 /gold/object.h
parent144653ec15141907a3276b6181c4d1114f71be13 (diff)
downloadgdb-8de0e07bf381f677bb93a8da72185a54e5b014bd.zip
gdb-8de0e07bf381f677bb93a8da72185a54e5b014bd.tar.gz
gdb-8de0e07bf381f677bb93a8da72185a54e5b014bd.tar.bz2
Allow multiple .eh_frame sections per object file.
LLVM is experimenting with placing .eh_frame sections in the COMDAT group with the function's text. This triggers an internal error in gold because we don't expect to see but one .eh_frame section in an object, and we use a single data member in class Sized_relobj_file to keep track of that section. This patch removes that data member, and instead checks the output section and the input section offset to identify an optimized .eh_frame section. gold/ * object.h (class Sized_relobj_file): Remove discarded_eh_frame_shndx_. * object.cc (Sized_relobj_file::Sized_relobj_file): Likewise. (Sized_relobj_file::layout_eh_frame_section): Likewise. (Sized_relobj_file::do_count_local_symbols): Check for optimized .eh_frame section by other means. (Sized_relobj_file::compute_final_local_value_internal): Likewise.
Diffstat (limited to 'gold/object.h')
-rw-r--r--gold/object.h3
1 files changed, 0 insertions, 3 deletions
diff --git a/gold/object.h b/gold/object.h
index 508e79c..59915d9 100644
--- a/gold/object.h
+++ b/gold/object.h
@@ -2842,9 +2842,6 @@ class Sized_relobj_file : public Sized_relobj<size, big_endian>
Kept_comdat_section_table kept_comdat_sections_;
// Whether this object has a GNU style .eh_frame section.
bool has_eh_frame_;
- // If this object has a GNU style .eh_frame section that is discarded in
- // output, record the index here. Otherwise it is -1U.
- unsigned int discarded_eh_frame_shndx_;
// True if the layout of this object was deferred, waiting for plugin
// replacement files.
bool is_deferred_layout_;