[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug gold/14675] No eh_frame info registered in exception_static_test
From: |
cvs-commit at gcc dot gnu.org |
Subject: |
[Bug gold/14675] No eh_frame info registered in exception_static_test |
Date: |
Mon, 09 Mar 2015 17:13:17 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=14675
--- Comment #10 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot
gnu.org> ---
The master branch has been updated by Cary Coutant <address@hidden>:
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=e16631979e847a6b39db3435bea7708b9f34b36d
commit e16631979e847a6b39db3435bea7708b9f34b36d
Author: Cary Coutant <address@hidden>
Date: Mon Mar 9 10:10:29 2015 -0700
Fix failure in exception_static_test.
Because the __EH_FRAME_BEGIN__ symbol is provided in an empty .eh_frame
section in crtbeginT.o, if crt1.o has a non-empty .eh_frame section,
we place all optimized .eh_frame sections into the output section ahead
of the __EH_FRAME_BEGIN__ symbol, which breaks EH for statically-linked
binaries.
This patch fixes the problem by delaying the attachment of the optimized
.eh_frame sections to the output section until we see the end marker
section (or to the end of pass 1 if we never see an end marker).
gold/
PR gold/14675
* ehframe.cc (Eh_frame::add_ehframe_input_section): Change return type;
return enum indicating whether .eh_frame section is empty, optimizable,
unrecognized, or an end marker. Adjust explicit instantiations.
* ehframe.h (Eh_frame::Eh_frame_section_disposition): New enum type.
(Eh_frame::add_ehframe_input_section): Change return type.
* gold.cc (queue_middle_tasks): Call Layout::finalize_eh_frame_section.
* layout.cc (Layout::layout_eh_frame): Don't add optimized sections
to the .eh_frame output section until we see the end marker.
(Layout::finalize_eh_frame_section): New.
* layout.h: (Layout::finalize_eh_frame_section): New.
--
You are receiving this mail because:
You are on the CC list for the bug.
- [Bug gold/14675] No eh_frame info registered in exception_static_test,
cvs-commit at gcc dot gnu.org <=