This is the mail archive of the
binutils-cvs@sourceware.org
mailing list for the binutils project.
gdb and binutils branch master updated. 4564fb94daa76c3b339507f0f985dc139f2db8ba
- From: amodra at sourceware dot org
- To: binutils-cvs at sourceware dot org
- Date: 22 Aug 2014 00:44:26 -0000
- Subject: gdb and binutils branch master updated. 4564fb94daa76c3b339507f0f985dc139f2db8ba
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gdb and binutils".
The branch, master has been updated
via 4564fb94daa76c3b339507f0f985dc139f2db8ba (commit)
via da44f4e5464f82dec79eb5885961c6466dd3bf6a (commit)
from 7f85237141c02e3989311cbaca19038c7c3d5b2c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=4564fb94daa76c3b339507f0f985dc139f2db8ba
commit 4564fb94daa76c3b339507f0f985dc139f2db8ba
Author: Alan Modra <amodra@gmail.com>
Date: Fri Aug 22 09:12:09 2014 +0930
Delete redundant struct cie field
cie->output_sec is used to when merging CIEs to ensure that only CIEs
from the same output section are merged. I noticed an assignment to
this field in _bfd_elf_parse_eh_frame, and thought "That's wrong,
output_section isn't set properly when _bfd_elf_parse_eh_frame is
called from gc-sections code". It turns out that this assignment is
premature, and in fact a dead store. find_merged_cie overwrites with
the correct value before the field is ever used. On looking a little
more it becomes apparent that cie->cie_inf.u.cie.u.sec->output_section
holds the same value, so cie->output_sec is redundant.
* elf-eh-frame.c (struct cie): Delete "output_sec" field.
(cie_eq, cie_compute_hash): Use output_section from cie_inf instead.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=da44f4e5464f82dec79eb5885961c6466dd3bf6a
commit da44f4e5464f82dec79eb5885961c6466dd3bf6a
Author: Alan Modra <amodra@gmail.com>
Date: Fri Aug 22 09:07:35 2014 +0930
Index PowerPC64 linker generated .eh_frame in .eh_frame_hdr
I noticed recently that .eh_frame FDEs generated by the linker for
call stubs and .glink weren't being indexed in .eh_frame_hdr, due to
bfd_elf_discard_info being run before the linker generated .eh_frame
sections were available for parsing. This patch moves code around in
elf64-ppc.c and ppc64elf.em to avoid that problem.
Another problem fixed here is that --gc-sections parses .eh_frame
early, and the existing machinery allows only one go at parsing the
.eh_frame sections. That resulted in the linker generated .eh_frame
CIEs not being merged and no .eh_frame_hdr index entries for those
FDEs. It turns out that all the info from parsing .eh_frame is
attached to the section, so order of parsing isn't important, and
after parsing sec_info_type being set will prevent a section being
parsed again. At least, when parsing doesn't hit an error. So there
isn't really any need for "parsed_eh_frame". "merge_cies" is also
redundant, which means _bfd_elf_{begin,end}_eh_frame_parsing can also
disappear.
bfd/
* elf-bfd.h (struct eh_frame_hdr_info): Delete merge_cies and
parsed_eh_frames.
(_bfd_elf_begin_eh_frame_parsing): Delete.
(_bfd_elf_end_eh_frame_parsing): Delete.
* elf-eh-frame.c (_bfd_elf_begin_eh_frame_parsing): Delete.
(_bfd_elf_end_eh_frame_parsing): Delete.
(_bfd_elf_parse_eh_frame): Don't test parsed_eh_frame. Test
!info->relocatable in place of merge_cies.
* elflink.c (bfd_elf_gc_sections, bfd_elf_discard_info): Adjust.
* elf64-ppc.c (glink_eh_frame_cie): Pad to multiple of 8.
(ppc64_elf_size_stubs): Likewise pad stub FDE.
(ppc64_elf_build_stubs): Move code setting glink .eh_frame to..
(ppc64_elf_size_stubs): ..here and..
(ppc64_elf_finish_dynamic_sections): ..here.
ld/
* emultempl/ppc64elf.em (gld${EMULATION_NAME}_after_allocation): Call
bfd_elf_discard_info after generating glink .eh_frame. Delete
redundant test on ppc64_elf_setup_section_lists status.
-----------------------------------------------------------------------
Summary of changes:
bfd/ChangeLog | 22 ++++
bfd/elf-bfd.h | 9 --
bfd/elf-eh-frame.c | 39 +-----
bfd/elf64-ppc.c | 282 ++++++++++++++++++++++++++-------------------
bfd/elflink.c | 20 +---
ld/ChangeLog | 6 +
ld/emultempl/ppc64elf.em | 28 +++---
7 files changed, 218 insertions(+), 188 deletions(-)
hooks/post-receive
--
gdb and binutils