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. b4f7960d5307fe4aad2126382df78f63696e96b3


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  b4f7960d5307fe4aad2126382df78f63696e96b3 (commit)
       via  d4a95d4999e7fe0d868254bec76722b35f064184 (commit)
       via  e8910a83af41c3dbfd00191b2720d4094f8d9532 (commit)
       via  a078d95abc554b6c2572fcab5550591639b1c871 (commit)
       via  b9e5796b0d6ebc355e4a6d06791b7366939d10f2 (commit)
       via  6911b7dcb8ea17f8b811578dd4ac1ab7bb675e7b (commit)
       via  ee67d69a3ff0eed25d98c5e97ed6c3ede8069edc (commit)
       via  71a39c98f8bedad54818c62ab2d567b0e2de546b (commit)
       via  f9c6b9078c54ea0f018b673e2ff128e61a0aa666 (commit)
      from  e17aaa33b10ed1d047a01cefb5547844c0597836 (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=b4f7960d5307fe4aad2126382df78f63696e96b3

commit b4f7960d5307fe4aad2126382df78f63696e96b3
Author: Alan Modra <amodra@gmail.com>
Date:   Tue Oct 29 17:45:48 2013 +1030

    PowerPC64 ELFv2 support for gold.
    
    elfcpp/
    	* powerpc.h (EF_PPC64_ABI): New enum constant.
    	(STO_PPC64_LOCAL_BIT, STO_PPC64_LOCAL_MASK): Likewise.
    	(ppc64_decode_local_entry): New function.
    	(ppc64_encode_local_entry): Likewise.
    gold/
    	* powerpc.cc (Powerpc_relobj::abiversion, set_abiversion,
    	ppc64_local_entry_offset, ppc64_local_entry_offset,
    	do_read_symbols): New functions.
    	(Powerpc_relobj::e_flags_, st_other_): New vars.
    	(Powerpc_relobj::Powerpc_relobj): Call set_abiversion.
    	(Powerpc_dynobj::abiversion, set_abiversion): New functions.
    	(Powerpc_relobj::e_flags_): New var.
    	(Target_powerpc::first_plt_entry_offset, plt_entry_size): Inline
    	and adjust for ELFv2.
    	(Target_powerpc::abiversion, set_abiversion, stk_toc): New functions.
    	(Powerpc_relobj::do_find_special_sections): Check no .opd in ELFv2.
    	(Powerpc_dynobj::do_find_special_sections): Likewise.
    	(Target_powerpc::do_define_standard_symbols): Define ".TOC.".
    	(Target_powerpc::Branch_info::make_stub): Adjust stub destination
    	to ELFv2 local entry.
    	(Target_powerpc::do_relax): No thread safe barriers needed for
    	ELFv2.
    	(Output_data_plt_powerpc::initial_plt_entry_size_,
    	plt_entry_size): Delete.  Replace all uses with
    	first_plt_entry_offset() and plt_entry_size().
    	(Output_data_plt_powerpc::Output_data_plt_powerpc): Remove
    	reserved_size parm.  Update callers.
    	(Output_data_plt_powerpc::entry_count): Update.
    	(Output_data_plt_powerpc::first_plt_entry_offset): Make private
    	and use Target_powerpc::first_plt_entry_offset().
    	(Output_data_plt_powerpc::get_plt_entry_size): Similarly and
    	rename to plt_entry_size.
    	(Output_data_plt_powerpc::add_ifunc_entry,
    	add_local_ifunc_entry): Adjust reloc for ELFv2.
    	(glink_eh_frame_fde_64): Rename to glink_eh_frame_fde_64v1.
    	(glink_eh_frame_fde_64v2): New.
    	(Stub_table::plt_call_size): Support ELFv2 sizing.
    	(Output_data_glink::add_eh_frame): Use the new FDE.
    	(Output_data_glink::set_final_data_size): Adjust for ELFv2 glink.
    	(Stub_table::do_write): Write ELFv2 stubs and glink.
    	(Target_powerpc::Relocate::relocate): Replaces nop after call
    	with ld 2,24(1) and adjust local offset destination for ELFv2.

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=d4a95d4999e7fe0d868254bec76722b35f064184

commit d4a95d4999e7fe0d868254bec76722b35f064184
Author: Alan Modra <amodra@gmail.com>
Date:   Tue Oct 29 16:40:34 2013 +1030

    Add PowerPC64 ELFv2 tests.
    
    	* ld-powerpc/elfv2.s,
    	* ld-powerpc/elfv2so.d,
    	* ld-powerpc/elfv2exe.d: New tests.
    	* ld-powerpc/powerpc.exp: Run them.

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=e8910a83af41c3dbfd00191b2720d4094f8d9532

commit e8910a83af41c3dbfd00191b2720d4094f8d9532
Author: Alan Modra <amodra@gmail.com>
Date:   Tue Oct 29 16:34:35 2013 +1030

    Replace DT_PPC_TLSOPT with DT_PPC_OPT.
    
    This removes the DT_PPC_TLSOPT/DT_PPC64_TLSOPT dynamic tag and replaces
    it with DT_PPC_OPT/DT_PPC64_OPT tag to provide the same functionality
    and more.  This isn't backwards compatible, but the TLSOPT tag hasn't
    been used since the tls optimisation support was never submitted to
    glibc.
    
    /include/elf/
    	* ppc.h (DT_PPC_TLSOPT): Delete.
    	(DT_PPC_OPT, PPC_OPT_TLS): Define.
    	* ppc64.h (DT_PPC64_TLSOPT): Delete.
    	(DT_PPC64_OPT, PPC64_OPT_TLS, PPC64_OPT_MULTI_TOC): Define.
    bfd/
    	* elf32-ppc.c (ppc_elf_size_dynamic_sections): Use new DT_PPC_OPT
    	tag to specify tls optimisation.
    	* elf64-ppc.c (ppc64_elf_size_dynamic_sections): Likewise.
    	(ppc64_elf_finish_dynamic_sections): Specify whether multiple
    	toc pointers are used via DT_PPC64_OPT.
    binutils/
    	* readelf.c (get_ppc_dynamic_type): Replace PPC_TLSOPT with PPC_OPT.
    	(get_ppc64_dynamic_type): Replace PPC64_TLSOPT with PPC64_OPT.

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=a078d95abc554b6c2572fcab5550591639b1c871

commit a078d95abc554b6c2572fcab5550591639b1c871
Author: Alan Modra <amodra@gmail.com>
Date:   Tue Oct 29 16:17:22 2013 +1030

    Support ELFv2 stack frame.
    
    The toc pointer save slot changes on ELFv2 from 40(1) to 24(1).
    
    	* elf64-ppc.c (STK_LR, STK_TOC, STK_LINKER): Define.
    	(savegpr0_tail, restgpr0_tail, savefpr0_tail, restfpr0_tail)
    	build_plt_stub, build_tls_get_addr_stub, ppc_build_one_stub,
    	ppc64_elf_relocate_section): Use new defines.

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=b9e5796b0d6ebc355e4a6d06791b7366939d10f2

commit b9e5796b0d6ebc355e4a6d06791b7366939d10f2
Author: Alan Modra <amodra@gmail.com>
Date:   Tue Oct 29 15:58:05 2013 +1030

    ELFv2 stub, plt and glink changes
    
    An ELFv2 PLT entry is simply the address of the target function rather
    than three (or two) words to specify entry, toc and static chain.  PLT
    call stubs are correspondingly simpler and need no thread safety
    barrier.  The glink resolver stub and branch table also is simplified,
    a change that could be applied to ELFv1 too, but isn't as yet.
    
    	* elf64-ppc.c (PLT_ENTRY_SIZE, PLT_INITIAL_ENTRY_SIZE): Add htab
    	parameter and adjust for ELFv2.  Update all uses.
    	(PLT_CALL_STUB_SIZE): Delete.
    	(ppc64_elf_get_synthetic_symtab): Support new glink layout.
    	(allocate_dynrelocs): Likewise.
    	(plt_stub_size, build_plt_stub): Adjust for ELFv2.
    	(get_r2off): Return 0 for ELFv2 -R.
    	(ppc_build_one_stub, ppc_size_one_stub): Adjust for ELFv2.
    	(ppc64_elf_size_stubs): Likewise.
    	(ppc64_elf_build_stubs): Add new ELFv2 glink.

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=6911b7dcb8ea17f8b811578dd4ac1ab7bb675e7b

commit 6911b7dcb8ea17f8b811578dd4ac1ab7bb675e7b
Author: Alan Modra <amodra@gmail.com>
Date:   Tue Oct 29 15:37:43 2013 +1030

    Add ELFv2 .localentry support.
    
    This defines the ELF symbol st_other field used to encode the number
    of instructions between a function "global entry" and its "local entry",
    and adds support related to the local entry offset.
    
    include/elf/
    	* ppc64.h (STO_PPC64_LOCAL_BIT, STO_PPC64_LOCAL_MASK): Define.
    	(ppc64_decode_local_entry, ppc64_encode_local_entry): New functions.
    	(PPC64_LOCAL_ENTRY_OFFSET, PPC64_SET_LOCAL_ENTRY_OFFSET): Define.
    bfd/
    	* elf64-ppc.c (struct ppc_stub_hash_entry): Add "other".
    	(stub_hash_newfunc): Init new ppc_stub_hash_entry field, and one
    	we forgot, "plt_ent".
    	(ppc64_elf_add_symbol_hook): Check ELFv1 objects don't have
    	st_other bits only valid in ELFv2.
    	(ppc64_elf_merge_symbol_attribute): New function.
    	(ppc_type_of_stub): Add local_off param to test branch range.
    	(ppc_build_one_stub): Adjust destinations for ELFv2 locals.
    	(ppc_size_one_stub, toc_adjusting_stub_needed): Similarly.
    	(ppc64_elf_size_stubs): Pass local_off to ppc_type_of_stub.
    	Set "other" field.
    	(ppc64_elf_relocate_section): Adjust destination for ELFv2 local
    	calls.
    gas/
    	* config/tc-ppc.c (md_pseudo_table): Add .localentry.
    	(ppc_elf_localentry): New function.
    	(ppc_force_relocation): Force relocs on all branches to localenty
    	symbols.
    	(ppc_fix_adjustable): Don't reduce such symbols to section+offset.
    binutils/
    	* readelf.c (get_ppc64_symbol_other): New function.
    	(get_symbol_other): Use it for EM_PPC64.

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=ee67d69a3ff0eed25d98c5e97ed6c3ede8069edc

commit ee67d69a3ff0eed25d98c5e97ed6c3ede8069edc
Author: Alan Modra <amodra@gmail.com>
Date:   Tue Oct 29 15:06:09 2013 +1030

    Add .abiversion related support for ELFv2
    
    Defines bits in ELF e_flags to differentiate ELFv2 objects from ELFv2,
    adds .abiversion directive to explicitly choose the ABI, and code to
    check and automatically select ABI.
    
    include/elf/
    	* ppc64.h (EF_PPC64_ABI): Define.
    bfd/
    	* elf64-ppc.c (abiversion, set_abiversion): New functions.
    	(ppc64_elf_get_synthetic_symtab): Handle ELFv2 objects without .opd.
    	(struct ppc_link_hash_table): Add opd_abi.
    	(ppc64_elf_check_relocs): Check no .opd with ELFv2.
    	(ppc64_elf_merge_private_bfd_data): New function.
    	(ppc64_elf_print_private_bfd_data): New function.
    	(ppc64_elf_tls_setup): Set htab->opd_abi.
    	(ppc64_elf_size_dynamic_sections): Don't emit OPD related dynamic
    	tags for ELFv2.
    	(ppc_build_one_stub): Use R_PPC64_IRELATIVE for ELFv2 ifunc.
    	(ppc64_elf_finish_dynamic_symbol): Likewise
    binutils/
    	* readelf.c (get_machine_flags): Display ABI version for EM_PPC64.
    gas/
    	* config/tc-ppc.c: Include elf/ppc64.h.
    	(ppc_abiversion): New variable.
    	(md_pseudo_table): Add .abiversion.
    	(ppc_elf_abiversion, ppc_elf_end): New functions.
    	* config/tc-ppc.h (md_end): Define.

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=71a39c98f8bedad54818c62ab2d567b0e2de546b

commit 71a39c98f8bedad54818c62ab2d567b0e2de546b
Author: Alan Modra <amodra@gmail.com>
Date:   Tue Oct 29 12:39:30 2013 +1030

    Change plt stubs to have destination in r12.
    
    This change is to support the new ELFv2 ABI, which uses the value in
    r12 on function entry to calculate the got/toc pointer.
    
    bfd/
    	* elf64-ppc.c (build_plt_stub): Switch stubs to use r11 as base
    	reg and r12 as destination.
    	(ppc_build_one_stub): Likewise.
    	(ppc64_elf_build_stubs): Likewise for glink.
    ld/testsuite/
    	* ld-powerpc/tls.s: Add proper .opd entry for _start.
    	* ld-powerpc/tlstoc.s: Likewise.
    	* ld-powerpc/relbrlt.d: Update for changed stubs.
    	* ld-powerpc/tls.d: Update for changed stubs and _start .opd entry.
    	* ld-powerpc/tls.g: Likewise.
    	* ld-powerpc/tlsexe.d: Likewise.
    	* ld-powerpc/tlsexe.g: Likewise.
    	* ld-powerpc/tlsexe.r: Likewise.
    	* ld-powerpc/tlsexetoc.d: Likewise.
    	* ld-powerpc/tlsexetoc.g: Likewise.
    	* ld-powerpc/tlsexetoc.r: Likewise.
    	* ld-powerpc/tlsso.d: Likewise.
    	* ld-powerpc/tlsso.g: Likewise.
    	* ld-powerpc/tlsso.r: Likewise.
    	* ld-powerpc/tlstoc.d: Likewise.
    	* ld-powerpc/tlstoc.g: Likewise.
    	* ld-powerpc/tlstocso.d: Likewise.
    	* ld-powerpc/tlstocso.g: Likewise.
    	* ld-powerpc/tlstocso.r: Likewise.

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=f9c6b9078c54ea0f018b673e2ff128e61a0aa666

commit f9c6b9078c54ea0f018b673e2ff128e61a0aa666
Author: Alan Modra <amodra@gmail.com>
Date:   Tue Oct 29 16:53:25 2013 +1030

    Report overflow on PowerPC64 @h and @ha relocations.
    
    This changes the behaviour of @h and @ha on PowerPC64 to report errors
    on 32-bit overflow.  The motivation for this change is that on
    PowerPC64, most uses of @h and @ha modifiers and their corresponding
    relocations are to build up 32-bit offsets.  We'd like to know when
    such offsets overflow.  Only rarely do people use @h or @ha with the
    high 32-bit modifiers to build a 64-bit constant.  Those uses will now
    need to use two new modifiers, @high and @higha, if the constant isn't
    known at assembly time.  For now, we won't report overflow at assembly
    time..
    
    This also fixes an error when applying some of the HIGHER and HIGHEST
    relocations.
    
    include/elf/
    	* ppc64.h (R_PPC64_ADDR16_HIGH, R_PPC64_ADDR16_HIGHA,
    	R_PPC64_TPREL16_HIGH, R_PPC64_TPREL16_HIGHA,
    	R_PPC64_DTPREL16_HIGH, R_PPC64_DTPREL16_HIGHA): New.
    	(IS_PPC64_TLS_RELOC): Match new tls relocs.
    bfd/
    	* reloc.c (BFD_RELOC_PPC64_ADDR16_HIGH, BFD_RELOC_PPC64_ADDR16_HIGHA,
    	BFD_RELOC_PPC64_TPREL16_HIGH, BFD_RELOC_PPC64_TPREL16_HIGHA,
    	BFD_RELOC_PPC64_DTPREL16_HIGH, BFD_RELOC_PPC64_DTPREL16_HIGHA): New.
    	* elf64-ppc.c (ppc64_elf_howto_raw): Add entries for new relocs.
    	Make all _HA and _HI relocs report signed overflow.
    	(ppc64_elf_reloc_type_lookup): Handle new relocs.
    	(must_be_dyn_reloc, ppc64_elf_check_relocs): Likewise.
    	(dec_dynrel_count, ppc64_elf_relocate_section): Likewise.
    	(ppc64_elf_relocate_section): Don't apply 0x8000 adjust to
    	R_PPC64_TPREL16_HIGHER, R_PPC64_TPREL16_HIGHEST,
    	R_PPC64_DTPREL16_HIGHER, and R_PPC64_DTPREL16_HIGHEST.
    	* libbfd.h: Regenerate.
    	* bfd-in2.h: Regenerate.
    gas/
    	* config/tc-ppc.c (SEX16): Don't mask.
    	(REPORT_OVERFLOW_HI): Define as zero.
    	(ppc_elf_suffix): Support @high, @higha, @dtprel@high, @dtprel@higha,
    	@tprel@high, and @tprel@higha modifiers.
    	(md_assemble): Ignore X_unsigned when applying 16-bit insn fields.
    	Add (disabled) code to check @h and @ha reloc overflow for powerpc64.
    	Handle new relocs.
    	(md_apply_fix): Similarly.
    elfcpp/
    	* powerpc.h (R_PPC64_ADDR16_HIGH, R_PPC64_ADDR16_HIGHA,
    	R_PPC64_TPREL16_HIGH, R_PPC64_TPREL16_HIGHA,
    	R_PPC64_DTPREL16_HIGH, R_PPC64_DTPREL16_HIGHA): Define.
    gold/
    	* powerpc.cc (Target_powerpc::Scan::check_non_pic): Handle new relocs.
    	(Target_powerpc::Scan::global, local): Likewise.
    	(Target_powerpc::Relocate::relocate): Likewise.  Check for overflow
    	on all ppc64 @h and @ha relocs.

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

Summary of changes:
 bfd/ChangeLog                       |   82 ++++
 bfd/bfd-in2.h                       |    6 +
 bfd/elf32-ppc.c                     |    2 +-
 bfd/elf64-ppc.c                     |  884 +++++++++++++++++++++++++----------
 bfd/libbfd.h                        |    6 +
 bfd/reloc.c                         |   12 +
 binutils/ChangeLog                  |   14 +
 binutils/readelf.c                  |   30 ++-
 elfcpp/ChangeLog                    |   13 +
 elfcpp/powerpc.h                    |   61 +++-
 gas/ChangeLog                       |   27 ++
 gas/config/tc-ppc.c                 |  284 ++++++++++--
 gas/config/tc-ppc.h                 |    3 +
 gold/ChangeLog                      |   47 ++
 gold/powerpc.cc                     |  668 ++++++++++++++++++++-------
 include/elf/ChangeLog               |   24 +
 include/elf/ppc.h                   |    3 +-
 include/elf/ppc64.h                 |   73 +++-
 ld/testsuite/ChangeLog              |   29 ++
 ld/testsuite/ld-powerpc/elfv2.s     |   32 ++
 ld/testsuite/ld-powerpc/elfv2exe.d  |   40 ++
 ld/testsuite/ld-powerpc/elfv2so.d   |   82 ++++
 ld/testsuite/ld-powerpc/powerpc.exp |    2 +
 ld/testsuite/ld-powerpc/relbrlt.d   |    8 +-
 ld/testsuite/ld-powerpc/tls.d       |    4 +-
 ld/testsuite/ld-powerpc/tls.g       |    6 +-
 ld/testsuite/ld-powerpc/tls.s       |    7 +-
 ld/testsuite/ld-powerpc/tlsexe.d    |   23 +-
 ld/testsuite/ld-powerpc/tlsexe.g    |    2 +-
 ld/testsuite/ld-powerpc/tlsexe.r    |   56 ++--
 ld/testsuite/ld-powerpc/tlsexetoc.d |   23 +-
 ld/testsuite/ld-powerpc/tlsexetoc.g |    2 +-
 ld/testsuite/ld-powerpc/tlsexetoc.r |   58 ++--
 ld/testsuite/ld-powerpc/tlsso.d     |   25 +-
 ld/testsuite/ld-powerpc/tlsso.g     |    2 +-
 ld/testsuite/ld-powerpc/tlsso.r     |   60 ++--
 ld/testsuite/ld-powerpc/tlstoc.d    |    4 +-
 ld/testsuite/ld-powerpc/tlstoc.g    |   12 +-
 ld/testsuite/ld-powerpc/tlstoc.s    |    7 +-
 ld/testsuite/ld-powerpc/tlstocso.d  |   25 +-
 ld/testsuite/ld-powerpc/tlstocso.g  |    2 +-
 ld/testsuite/ld-powerpc/tlstocso.r  |   62 ++--
 42 files changed, 2166 insertions(+), 646 deletions(-)
 create mode 100644 ld/testsuite/ld-powerpc/elfv2.s
 create mode 100644 ld/testsuite/ld-powerpc/elfv2exe.d
 create mode 100644 ld/testsuite/ld-powerpc/elfv2so.d


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]