diff options
author | Cary Coutant <ccoutant@google.com> | 2014-11-25 13:55:42 -0800 |
---|---|---|
committer | Cary Coutant <ccoutant@google.com> | 2014-11-25 13:56:21 -0800 |
commit | c924eb67e143722e4098d84c1cb91123a51c988f (patch) | |
tree | 2e1410cddd8f1a119ea4e76e73cf1b481ad55c7c /gold/ChangeLog | |
parent | 61e6682207163bfc02b2fc0c54c084cf8f2c5f10 (diff) | |
download | gdb-c924eb67e143722e4098d84c1cb91123a51c988f.zip gdb-c924eb67e143722e4098d84c1cb91123a51c988f.tar.gz gdb-c924eb67e143722e4098d84c1cb91123a51c988f.tar.bz2 |
Fix corrupted .eh_frame section with LTO and --gc-sections.
When --gc-sections is turned on during an LTO link, the .eh_frame sections
from deferred files are processed before those from the replacement files.
As a result, the section end-cap from crtendS.o is placed ahead of
the .eh_frame data from the replacement files. This patch fixes the bug
by skipping the layout of the deferred sections during GC pass 2.
gold/
PR gold/17639
* object.cc (Sized_relobj_file): Initialize is_deferred_layout_.
(Sized_relobj_file::do_layout): Handle deferred sections properly
during GC pass 1. Don't add reloc sections to deferred list twice.
* object.h (Sized_relobj_file::is_deferred_layout): New function.
(Sized_relobj_file::is_deferred_layout_): New data member.
Diffstat (limited to 'gold/ChangeLog')
-rw-r--r-- | gold/ChangeLog | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index 73e601d..a447b42 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,12 @@ +2014-11-25 Cary Coutant <ccoutant@google.com> + + PR gold/17639 + * object.cc (Sized_relobj_file): Initialize is_deferred_layout_. + (Sized_relobj_file::do_layout): Handle deferred sections properly + during GC pass 1. Don't add reloc sections to deferred list twice. + * object.h (Sized_relobj_file::is_deferred_layout): New function. + (Sized_relobj_file::is_deferred_layout_): New data member. + 2014-11-21 H.J. Lu <hongjiu.lu@intel.com> PR gold/17619 |