Allow multiple .eh_frame sections per object file.
authorCary Coutant <ccoutant@gmail.com>
Wed, 29 Nov 2017 02:09:41 +0000 (18:09 -0800)
committerCary Coutant <ccoutant@gmail.com>
Wed, 29 Nov 2017 02:09:41 +0000 (18:09 -0800)
commit8de0e07bf381f677bb93a8da72185a54e5b014bd
treed598f897f5281705c96ff2d4c42afd59d9521426
parent144653ec15141907a3276b6181c4d1114f71be13
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.
gold/ChangeLog
gold/object.cc
gold/object.h