This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

gdb and binutils branch master updated. 5446cbdf82892a800ed7eef563a795e75223ec52


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  5446cbdf82892a800ed7eef563a795e75223ec52 (commit)
      from  8effdc96dc110ef0bcd256bdc026d56d373c2e11 (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=5446cbdf82892a800ed7eef563a795e75223ec52

commit 5446cbdf82892a800ed7eef563a795e75223ec52
Author: Alan Modra <amodra@gmail.com>
Date:   Thu Jan 30 08:26:02 2014 +1030

    ppc476 icache bug workaround
    
    This implements a work-around for an icache bug on 476 that can cause
    execution of stale instructions when control falls through from one
    page to the next.  The idea is to prevent such fall-through by
    replacing the last instruction on a page with a branch to a patch
    area containing the instruction, then branch to the next page.
    
    The patch also fixes a number of bugs in the existing support for long
    branch trampolines.
    
    bfd/
    	* elf32-ppc.c (struct ppc_elf_link_hash_table): Add params.
    	Delete emit_stub_syms, no_tls_get_addr_opt.  Update all uses.
    	(ppc_elf_link_params): New function.
    	(ppc_elf_create_glink): Align .glink to 64 bytes for ppc476
    	workaround.
    	(ppc_elf_select_plt_layout): Remove plt_style and emit_stub_syms
    	parameters.  Use htab->params instead.
    	(ppc_elf_tls_setup): Remove no_tls_get_addr_opt parameter.
    	(ppc_elf_size_dynamic_sections): Align __glink_PLTresolve to
    	64 bytes for ppc476 workaround.
    	(struct ppc_elf_relax_info): New.
    	(ppc_elf_relax_section): Exclude linker created sections and
    	those too small to hold one instruction.  Don't add another
    	branch 	around trampolines on later relax passes.  Don't
    	generate trampolines for undefined symbols when !relocatable,
    	nor for plugin symbols.  Allocate space for ppc476 workaround
    	patch area.  Free fixups on error return path.
    	(ppc_elf_relocate_section): Handle ppc476 workaround patching.
    	* elf32-ppc.h (struct ppc_elf_params): New.
    	(ppc_elf_select_plt_layout, ppc_elf_tls_setup): Update prototype.
    	(ppc_elf_link_params): Declare.
    	* section.c (SEC_INFO_TYPE_TARGET): Define.
    	* bfd-in2.h: Regenerate.
    ld/
    	* emultempl/ppc32elf.em (no_tls_get_addr_opt, emit_stub_syms)
    	plt_style): Delete.  Adjust all refs to instead use..
    	(params): ..this.  New variable.
    	(ppc_after_open_output): New function.  Tweak params and pass to
    	ppc_elf_link_params.
    	(ppc_after_open): Adjust ppc_elf_select_plt_layout call.
    	(ppc_before_allocation): Adjust ppc_elf_tls_setup call.  Enable
    	relaxation for ppc476 workaround.
    	(PARSE_AND_LIST_*): Add --{no-,}ppc476-workaround support.
    	(LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS): Define.

-----------------------------------------------------------------------

Summary of changes:
 bfd/ChangeLog            |   26 ++
 bfd/bfd-in2.h            |    1 +
 bfd/elf32-ppc.c          |  884 +++++++++++++++++++++++++++++-----------------
 bfd/elf32-ppc.h          |   26 ++-
 bfd/section.c            |    1 +
 ld/ChangeLog             |   13 +
 ld/emultempl/ppc32elf.em |   78 +++--
 7 files changed, 681 insertions(+), 348 deletions(-)


hooks/post-receive
-- 
gdb and binutils


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]