diff options
author | Cary Coutant <ccoutant@gmail.com> | 2017-11-28 18:09:41 -0800 |
---|---|---|
committer | Cary Coutant <ccoutant@gmail.com> | 2017-11-28 18:09:41 -0800 |
commit | 8de0e07bf381f677bb93a8da72185a54e5b014bd (patch) | |
tree | d598f897f5281705c96ff2d4c42afd59d9521426 /gold/object.h | |
parent | 144653ec15141907a3276b6181c4d1114f71be13 (diff) | |
download | gdb-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.h | 3 |
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_; |