Commit Graph

10974 Commits

Author SHA1 Message Date
Alan Modra aa01e46a4c daily update 2013-11-20 09:30:14 +10:30
H.J. Lu 0c7231013c Re-indent elf_x86_64_section_from_shdr
* elf64-x86-64.c (elf_x86_64_section_from_shdr): Re-indent.
2013-11-19 13:00:42 -08:00
Alan Modra 3737b3210b daily update 2013-11-19 09:30:19 +10:30
Alan Modra 0e7c43d8ec daily update 2013-11-18 09:30:16 +10:30
H.J. Lu c33205431a Add R_X86_64_PC32_BND and R_X86_64_PLT32_BND
bfd/

	* elf64-x86-64.c (x86_64_elf_howto_table): Add R_X86_64_PC32_BND
	and R_X86_64_PLT32_BND.
	(R_X86_64_standard): Replace R_X86_64_RELATIVE64 with
	R_X86_64_PLT32_BND.
	(IS_X86_64_PCREL_TYPE): Add R_X86_64_PLT32_BND.
	(x86_64_reloc_map): Add BFD_RELOC_X86_64_PC32_BND and
	BFD_RELOC_X86_64_PLT32_BND.
	(elf_x86_64_check_relocs): Handle R_X86_64_PC32_BND and
	R_X86_64_PLT32_BND.
	(elf_x86_64_gc_sweep_hook): Likewise.
	(elf_x86_64_relocate_section): Likewise.
	* reloc.c (bfd_reloc_code_real): Add BFD_RELOC_X86_64_PC32_BND
	and BFD_RELOC_X86_64_PLT32_BND.
	* bfd-in2.h: Regenerated.
	* libbfd.h: Likewise.

gas/

	* config/tc-i386.c (reloc): Add an argument, bnd_prefix, to
	indicate if instruction has the BND prefix.  Return
	BFD_RELOC_X86_64_PC32_BND instead of BFD_RELOC_32_PCREL if
	bnd_prefix isn't zero.
	(output_branch): Pass BFD_RELOC_X86_64_PC32_BND to frag_var
	if needed.
	(output_jump): Update reloc call.
	(output_interseg_jump): Likewise.
	(output_disp): Likewise.
	(output_imm): Likewise.
	(x86_cons_fix_new): Likewise.
	(lex_got): Add an argument, bnd_prefix, to indicate if
	instruction has the BND prefix.  Use BFD_RELOC_X86_64_PLT32_BND
	if needed.
	(x86_cons): Update lex_got call.
	(i386_immediate): Likewise.
	(i386_displacement): Likewise.
	(md_apply_fix): Handle BFD_RELOC_X86_64_PC32_BND and
	BFD_RELOC_X86_64_PLT32_BND.
	(tc_gen_reloc): Likewise.
	* config/tc-i386-intel.c (i386_operator): Update lex_got call.

gas/testsuite/

	* gas/i386/i386.exp: Run x86-64-mpx-branch-1 and
	x86-64-mpx-branch-2 on 64-bit ELF targets.
	* gas/i386/x86-64-mpx-branch-1.d: New file.
	* gas/i386/x86-64-mpx-branch-1.s: Likewise.
	* gas/i386/x86-64-mpx-branch-2.d: Likewise.
	* gas/i386/x86-64-mpx-branch-2.s: Likewise.

include/elf/

	* x86-64.h: Add R_X86_64_PC32_BND and R_X86_64_PLT32_BND.

ld/testsuite/

	* ld-x86-64/mpx.exp: New file.
	* ld-x86-64/mpx1.out: Likewise.
	* ld-x86-64/mpx1a.c: Likewise.
	* ld-x86-64/mpx1a.rd: Likewise.
	* ld-x86-64/mpx1b.c: Likewise.
	* ld-x86-64/mpx1c.c: Likewise.
	* ld-x86-64/mpx1c.rd: Likewise.
2013-11-17 08:57:56 -08:00
Alan Modra 2acaf6f952 daily update 2013-11-17 12:36:08 +10:30
Alan Modra 650948f9dc daily update 2013-11-16 09:30:19 +10:30
H.J. Lu bb81b736af Make room for PLT0 directly
* elf32-i386.c (elf_i386_allocate_dynrelocs): Make room for
	PLT0 directly.
	* elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise.
2013-11-15 09:32:24 -08:00
Alan Modra 993a449f17 daily update 2013-11-15 09:30:20 +10:30
Nick Clifton 57460bcf82 PR ld/16017
* elf32-arm.c (elf32_arm_populate_plt_entry): Return a boolean
	value, TRUE for success, FALSE for failure.
	Fail if attempting to create a PLT entry for a thumb only target.
	(elf32_arm_final_link_relocate): Check result of calling
	elf32_arm_populate_plt_entry.
	(elf32_arm_finish_dynamic_symbol): Likewise.
2013-11-14 15:39:51 +00:00
Nick Clifton 31fc8a0b2f PR ld/16082
* elf32-hppa.c (elf32_hppa_hide_symbol): Remove old version
	information when forcing a symbol to be local.
2013-11-14 14:24:34 +00:00
Alan Modra ec2af0ee47 daily update 2013-11-14 09:30:19 +10:30
Yufeng Zhang da0781dc5f bfd/
* elfnn-aarch64.c (elfNN_aarch64_howto_table): Use
	R_AARCH64_TLS_DTPMOD64 instead of R_AARCH64_TLS_DTPMOD;
	likewise for R_AARCH64_TLS_DTPREL and R_AARCH64_TLS_TPREL.

include/elf/

	* aarch64.h: Define R_AARCH64_TLS_DTPMOD64,
	R_AARCH64_TLS_DTPREL64 and R_AARCH64_TLS_TPREL64; guard
	R_AARCH64_TLS_DTPMOD, R_AARCH64_TLS_DTPREL and
	R_AARCH64_TLS_TPREL with RELOC_MACROS_GEN_FUNC.
2013-11-13 14:47:04 +00:00
Alan Modra 995407397c daily update 2013-11-13 09:30:27 +10:30
Alan Modra 130eeb0196 daily update 2013-11-12 09:30:18 +10:30
Yufeng Zhang 3b570dee4f * elfxx-aarch64.c (_bfd_aarch64_elf_grok_prstatus): Fix hard-coded
size of struct elf_prstatus.
2013-11-11 10:26:41 +00:00
Alan Modra 14b5f73fac PowerPC64 ELFv2, allocate dynreloc space for ifunc
* elf64-ppc.c (allocate_dynrelocs): Revert 2013-11-04 change.
2013-11-11 14:33:01 +10:30
Alan Modra afe397ea85 Correct elf64-ppc.c handling of protected symbols
Some places in elf64-ppc.c carelessly used SYMBOL_CALLS_LOCAL when
the proper test is SYMBOL_REFERENCES_LOCAL for cases where we take the
address of a protected symbol.  This works OK for function descriptors
but not for ELFv2.  Setting symbols to their global entry stub a
little earlier is to ensure _bfd_elf_hash_symbol allows such symbols
in .gnu.hash.

	* elf64-ppc.c (ppc64_elf_edit_toc): Use SYMBOL_REFERENCES_LOCAL
	here, not SYMBOL_CALLS_LOCAL.
	(ppc64_elf_relocate_section): Likewise.
	(size_global_entry_stubs): Set undefined symbols on their global
	entry stubs here..
	(build_global_entry_stubs): ..rather than here.
	(ppc64_elf_build_stubs): Don't reset glink->size before calling
	build_global_entry_stubs.
2013-11-11 14:31:58 +10:30
Alan Modra 32798b4b81 daily update 2013-11-11 09:30:01 +10:30
Alan Modra f215dd6bc8 daily update 2013-11-10 09:30:02 +10:30
Alan Modra 15e0e5f284 daily update 2013-11-09 09:30:18 +10:30
H.J. Lu 94d60ebd79 Remove strayed entry 2013-11-08 08:46:07 -08:00
Alan Modra fcb8d9c2f4 daily update 2013-11-08 09:30:18 +10:30
Roland McGrath 64b384e1e8 Set CPU type in BFD backend for x86_64-nacl* and i?86-nacl* targets
bfd/
	* archures.c (bfd_mach_i386_nacl): Fix definition so it doesn't
	collide with bfd_mach_l1om.
	* bfd-in2.h: Regenerate.

	* elf32-i386.c (elf32_i386_nacl_elf_object_p): New function.
	(elf_backend_object_p): Use that in elf32-i386-nacl definition.
	* elf64-x86-64.c (elf64_x86_64_nacl_elf_object_p): New function.
	(elf_backend_object_p): Use that in elf64-x86-64-nacl definition.
	(elf32_x86_64_nacl_elf_object_p): New function.
	(elf_backend_object_p): Use that in elf32-x86-64-nacl definition.

binutils/
	* objdump.c (dump_dwarf): Grok bfd_mach_x86_64_nacl and
	bfd_mach_x64_32_nacl as equivalent to bfd_mach_x86_64.

ld/testsuite/
	* ld-x86-64/x86-64.exp (mixed1, mixed2): Loosen error string match
	so it accepts "i386:nacl" in place of "i386".
	* ld-x86-64/ilp32-2.d: Likewise.
	* ld-x86-64/ilp32-3.d: Likewise.
	* ld-x86-64/lp64-2.d: Likewise.
	* ld-x86-64/lp64-3.d: Likewise.
2013-11-07 10:00:32 -08:00
Alan Modra 20d37e9aab daily update 2013-11-07 09:30:19 +10:30
DJ Delorie 2bc56d6613 * elf32-rl78.c (elf32_rl78_relax_delete_bytes): Make sure relocs
are loaded before trying to use them.
2013-11-05 22:13:04 -05:00
Alan Modra a5b5d5ae56 daily update 2013-11-06 09:30:19 +10:30
H.J. Lu 62d887d406 Pass ignored unresolved relocations to ld backend
bfd/

	PR ld/4409
	* elf-bfd.h (RELOC_FOR_GLOBAL_SYMBOL): Add an argument for
	error ignored.
	* elf-m10200.c (mn10200_elf_relocate_section): Updated.
	* elf-m10300.c (mn10300_elf_relocate_section): Likewise.
	* elf32-arm.c (elf32_arm_relocate_section): Likewise.
	* elf32-avr.c (elf32_avr_relocate_section): Likewise.
	* elf32-bfin.c (bfinfdpic_relocate_section): Likewise.
	(bfin_relocate_section): Likewise.
	* elf32-cr16.c (elf32_cr16_relocate_section): Likewise.
	* elf32-cr16c.c (elf32_cr16c_relocate_section): Likewise.
	* elf32-cris.c (cris_elf_relocate_section): Likewise.
	* elf32-crx.c (elf32_crx_relocate_section): Likewise.
	* elf32-d10v.c (elf32_d10v_relocate_section): Likewise.
	* elf32-epiphany.c (epiphany_elf_relocate_section): Likewise.
	* elf32-fr30.c (fr30_elf_relocate_section): Likewise.
	* elf32-frv.c (elf32_frv_relocate_section): Likewise.
	* elf32-h8300.c (elf32_h8_relocate_section): Likewise.
	* elf32-hppa.c (elf32_hppa_relocate_section): Likewise.
	* elf32-i386.c (elf_i386_relocate_section): Likewise.
	* elf32-i860.c (elf32_i860_relocate_section): Likewise.
	* elf32-ip2k.c (ip2k_elf_relocate_section): Likewise.
	* elf32-iq2000.c (iq2000_elf_relocate_section): Likewise.
	* elf32-lm32.c (lm32_elf_relocate_section): Likewise.
	* elf32-m68hc1x.c (elf32_m68hc11_relocate_section): Likewise.
	* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
	* elf32-metag.c (elf_metag_relocate_section): Likewise.
	* elf32-microblaze.c (microblaze_elf_relocate_section): Likewise.
	* elf32-mcore.c (mcore_elf_relocate_section): Likewise.
	* elf32-mep.c (mep_elf_relocate_section): Likewise.
	* elf32-moxie.c (moxie_elf_relocate_section): Likewise.
	* elf32-msp430.c (elf32_msp430_relocate_section): Likewise.
	* elf32-mt.c (mt_elf_relocate_section): Likewise.
	* elf32-nios2.c (nios2_elf32_relocate_section): Likewise.
	* elf32-openrisc.c (openrisc_elf_relocate_section): Likewise.
	* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
	* elf32-rl78.c (rl78_elf_relocate_section): Likewise.
	* elf32-rx.c (rx_elf_relocate_section): Likewise.
	* elf32-tic6x.c (elf32_tic6x_relocate_section): Likewise.
	* elf32-tilepro.c (tilepro_elf_relocate_section): Likewise.
	* elf32-s390.c (elf_s390_relocate_section): Likewise.
	* elf32-v850.c (v850_elf_relocate_section): Likewise.
	* elf32-vax.c (elf_vax_relocate_section): Likewise.
	* elf32-xc16x.c (elf32_xc16x_relocate_section): Likewise.
	* elf32-xstormy16.c (xstormy16_elf_relocate_section): Likewise.
	* elf32-xtensa.c (elf_xtensa_relocate_section): Likewise.
	* elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
	* elf64-ia64-vms.c (elf64_ia64_relocate_section): Likewise.
	* elf64-mmix.c (mmix_elf_relocate_section): Likewise.
	* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
	* elf64-s390.c (elf_s390_relocate_section): Likewise.
	* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
	* elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Likewise.
	* elfxx-tilegx.c (tilegx_elf_relocate_section): Likewise.
	* elfnn-aarch64.c (elfNN_aarch64_relocate_section): Likewise.

	* elfnn-ia64.c (elfNN_ia64_relocate_section): Skip if error
	from RELOC_FOR_GLOBAL_SYMBOL in executable is ignored.

ld/testsuite/

	PR ld/4409
	* ld-ia64/error1.d: New file.
	* ld-ia64/error1.s: Likewise.
	* ld-ia64/error2.d: Likewise.
	* ld-ia64/error3.d: Likewise.
2013-11-05 10:29:44 -08:00
Alan Modra dba6fa9bce Hide ppc64 .TOC. from --export-dynamic
I can't see any good reason why anyone would want a dynamic .TOC., so
hide it in a way that is respected by _bfd_elf_export_symbol.  This
also fixes an abort in relocate_section on not finding sreloc for .TOC.

	* elf64-ppc.c (ppc64_elf_func_desc_adjust): Make .TOC. defined and
	hidden.
	(ppc64_elf_set_toc): Adjust.
2013-11-05 12:44:54 +10:30
Alan Modra 33e44f2eb2 Update elf64-ppc.c to use elf_link_hash_table shortcuts.
These shortcuts to dynamic sections in ppc_link_hash_table predated
their geneneric elf hash table equivalents.

	* elf64-ppc.c (struct ppc_link_hash_table): Remove got, plt, relplt,
	iplt, reliplt.  Update all references to use elf.sgot, elf.splt,
	elf.srelplt, elf.iplt and elf.irelplt.
2013-11-05 12:26:28 +10:30
Alan Modra cf2f8b3bf2 daily update 2013-11-05 09:30:21 +10:30
Sandra Loosemore 25153ba087 Remove incorrect ATTRIBUTE_UNUSED from nios2 bfd
2013-11-03  Sandra Loosemore  <sandra@codesourcery.com>

	bfd/
	* elf32-niso2.c (nios2_elf32_do_hi16_relocate): Remove incorrect
	ATTRIBUTE_UNUSED from parameter.
	(nios2_elf_do_lo16_relocate): Likewise.
	(nios2_elf32_do_hiadj16_relocate): Likewise.
	(nios2_elf32_do_pcrel_lo16_relocate): Likewise.
	(nios2_elf32_do_pcrel_hiadj16_relocate): Likewise.
	(nios2_elf32_do_pcrel16_relocate): Likewise.
	(nios2_elf32_do_call26_relocate): Likewise.
	(nios2_elf32_do_gprel_relocate): Likewise.
	(nios2_elf32_do_ujmp_relocate): Likewise.
	(nios2_elf32_do_cjmp_relocate): Likewise.
	(nios2_elf32_do_callr_relocate): Likewise.
	(nios2_elf32_gc_mark_hook): Likewise.
2013-11-03 18:39:07 -08:00
Alan Modra 52a82034ac Edit ELFv2 global entry prologue to non-PIC
Changing addis r2,r12,..; addi r2,r2,.. to lis r2,..; addi r2,r2..
in non-PIC executables has the benefit of removing a dependency on r12.

bfd/
	* elf64-ppc.c (ppc64_elf_relocate_section): Edit global entry
	prologue to non-PIC in non-PIC executables.
ld/testsuite/
	* ld-powerpc/elfv2exe.d: Adjust for non-PIC global entry.
2013-11-04 10:21:32 +10:30
Alan Modra a345bc8d31 PowerPC64 ELFv2 symbols defined in plt
In a non-pic executable, ELFv2 like other targets, needs to emit a plt
entry even for non-call references to functions defined in shared
libraries, and define the function on the plt code.

	* elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Copy
	pointer_equality_needed flag.
	(ppc64_elf_check_relocs): For ELFv2 arrange to emit plt
	entries for references to functions in shared libraries on
	non-call relocs.
	(readonly_dynrelocs): Split into function of the same name and..
	(maybe_set_textrel): ..this new function.  Update call.
	(ppc64_elf_adjust_dynamic_symbol): Don't emit dynrelocs for
	ELFv2 in most cases if we have a plt entry.  Use new
	readonly_relocs.
	(allocate_dynrelocs): For ELFv2, don't allocate dynreloc space
	for ifunc in static executables.
	(size_global_entry_stubs): New function.
	(ppc64_elf_size_dynamic_sections): Call size_global_entry_stubs.
	Save end of glink branch table.
	(ppc64_elf_hash_symbol): New function.
	(build_global_entry_stubs): New function.
	(ppc64_elf_build_stubs): Call build_global_entry_stubs.  Adjust
	glink sizing.
	(ppc64_elf_relocate_section): Tidy plt16/32/64 reloc code.
	(ppc64_elf_finish_dynamic_symbol): For ELFv2, adjust symbols
	defined on plt code.
2013-11-04 10:20:09 +10:30
Alan Modra 21354732de daily update 2013-11-04 09:30:01 +10:30
Alan Modra 9d2c496e3b daily update 2013-11-03 09:30:25 +10:30
Alan Modra cacce40b2d Remove unnecessary _bfd_new_bfd initialisation
nbfd is allocated by bfd_zmalloc.

	* opncls.c (_bfd_new_bfd): Don't init vars already zeroed.
2013-11-02 15:45:12 +10:30
Alan Modra 8b974ba3e8 Simplify ppc64 code setting toc_off.
Every function has a nominal toc pointer value, even if it isn't used,
so set toc_off for every code section to the value used in that object
file.  The thinking here was that if a code section didn't use the toc
it could use the previous object file's toc pointer value.  It can,
but doing so is only a gain if functions in that section are called
mostly from previous objects sharing the same toc.  We lose if the
functions in question are called mostly from the current object or
following objects, and it's a good bet they will probably mostly be
called from the current object.

	* elf64-ppc.c (ppc64_elf_next_input_section): Always set toc_off
	to value for object file.
2013-11-02 11:57:55 +10:30
Alan Modra 6f72a1112b daily update 2013-11-02 09:30:20 +10:30
Roland McGrath 86e0565d9c *-*-nacl* layout: Drop requirement that some section have SEC_HAS_CONTENTS set.
bfd/
	* elf-nacl.c (segment_eligible_for_headers): Drop requirement that
	some section have SEC_HAS_CONTENTS set.  It's not set for
	.note.gnu.build-id, and a segment of only read-only SHT_NOBITS
	sections is implausible and not really supportable anyway.
2013-11-01 14:37:46 -07:00
Alan Modra 04abef86aa daily update 2013-11-01 09:30:17 +10:30
Alan Modra 856ff3311a daily update 2013-10-31 09:30:18 +10:30
Alan Modra e8910a83af 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.
2013-10-30 13:43:32 +10:30
Alan Modra a078d95abc 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.
2013-10-30 13:41:57 +10:30
Alan Modra b9e5796b0d 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.
2013-10-30 13:41:20 +10:30
Alan Modra 6911b7dcb8 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.
2013-10-30 13:40:21 +10:30
Alan Modra ee67d69a3f 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.
2013-10-30 13:37:47 +10:30
Alan Modra 71a39c98f8 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.
2013-10-30 13:35:47 +10:30
Alan Modra f9c6b9078c 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.
2013-10-30 13:33:15 +10:30
Roland McGrath 70cc877f6e BFD: elf64-x86-64-nacl: Correct 9-byte nop sequence used in PLT0 entry.
bfd/
	* elf64-x86-64.c (elf_x86_64_nacl_plt0_entry): Correct 9-byte nop
	sequence to match what the assembler generates.
2013-10-29 16:15:38 -07:00
Alan Modra 84f7b15039 daily update 2013-10-30 09:30:01 +10:30
Alan Modra b2df0add3b daily update 2013-10-30 08:54:25 +10:30
Jan Beulich 34a79995c4 ld/ELF: refine fake STT_FILE symbol emission
There's no real need to emit these always: They're needed only if we
indeed want to emit a localized symbol. Hence defer emission until we
at least did the basic early checks that would lead to no such symbol
getting emitted. This in particular avoids emitting such a symbol in
the majority of (if not all) "ld -r" cases.

I hope my set of cross build tests caught all the test cases needing
adjustment - please forgive if I missed a few.

bfd/
2013-10-29  Jan Beulich <jbeulich@suse.com>

	* elflink.c (struct elf_outext_info): Add field file_sym_done.
	(bfd_elf_final_link): Initialize new field. Move fake STT_FILE
	symbol emission from here ...
	(elf_link_output_extsym): ... to here.

gas/testsuite/
2013-10-29  Jan Beulich <jbeulich@suse.com>

	* gas/microblaze/relax_size.elf: Drop expectation of no longer
	present STT_FILE symbol.
	* gas/microblaze/relax_size2.elf: Likewise.

ld/testsuite/
2013-10-29  Jan Beulich <jbeulich@suse.com>

	* ld-cris/tls-e-tpoffcomm1.d: Drop expectation of no longer
	present STT_FILE symbol.
	* ld-mmix/bpo-18.d: Likewise.
	* ld-mmix/bpo-22.d: Likewise.
	* ld-mmix/greg-6.d: Likewise.
	* ld-mmix/greg-7.d: Likewise.
	* ld-mmix/loc4.d: Likewise.
	* ld-mmix/local1.d: Likewise.
	* ld-mmix/local3.d: Likewise.
	* ld-mmix/local5.d: Likewise.
	* ld-mmix/local7.d: Likewise.
	* ld-mmix/loct-1.d: Likewise.
	* ld-sh/sh64/abi32.xd: Likewise.
	* ld-sh/sh64/abi64.xd: Likewise.
	* ld-sh/sh64/cmpct1.xd: Likewise.
	* ld-sh/sh64/crange1.rd: Likewise.
	* ld-sh/sh64/crange2.rd: Likewise.
	* ld-sh/sh64/crange3-cmpct.rd: Likewise.
	* ld-sh/sh64/crange3-media.rd: Likewise.
	* ld-sh/sh64/crange3.rd: Likewise.
	* ld-sh/sh64/crangerel1.rd: Likewise.
	* ld-sh/sh64/crangerel2.rd: Likewise.
	* ld-sh/sh64/mix1.xd: Likewise.
	* ld-sh/sh64/mix2.xd: Likewise.
	* ld-sh/sh64/shdl32.xd: Likewise.
	* ld-sh/sh64/shdl64.xd: Likewise.
2013-10-29 17:52:24 +01:00
Nick Clifton 96691246d4 PR binutils/15994
* dwarf2.c (lookup_address_in_line_info_table): Change return type
	to be the range of addresses covered by the table.
	(comp_unit_find_nearest_line): Likewise.
	(find_line): Search all CUs.  Select the one that matches and
	covers the smallest address range.
2013-10-25 14:03:01 +00:00
Nick Clifton 240d6706c6 PR binutils/15994
* dwarf2.c (lookup_address_in_line_info_table): Change return type
	to be the range of addresses covered by the table.
	(comp_unit_find_nearest_line): Likewise.
	(find_line): Search all CUs.  Select the one that matches and
	covers the smallest address range.
2013-10-25 14:03:01 +00:00
Tom Tromey 20cef68c2f binutils doc update
Here's another small patch to lay the groundwork for the git
conversion.  This one updates the BFD and binutils documentation for
the move.

bfd:
	* doc/bfdint.texi (BFD generated files): Mention git, not cvs.
binutils:
	* MAINTAINERS: Mention git, not cvs.
	* README: Mention git, not cvs.
2013-10-25 14:02:58 +00:00
Alan Modra e166eda42e daily update 2013-10-20 23:00:04 +00:00
Alan Modra c96a2a7ede daily update 2013-10-19 23:00:04 +00:00
Alan Modra b59babdb81 daily update 2013-10-18 23:00:05 +00:00
Hans-Peter Nilsson 6dd38d7935 * elf32-cris.c (cris_elf_check_relocs): Don't assume
a registered dynobj means that a .got has been created.
2013-10-18 02:37:51 +00:00
Alan Modra 64fc6eab9a daily update 2013-10-17 23:00:04 +00:00
Alan Modra fb8a568490 PR 16056
* elf.c (copy_elf_program_header): Only consider SEC_ALLOC sections
	when finding lowest_section.
2013-10-17 10:05:38 +00:00
Alan Modra 93415d70e0 daily update 2013-10-16 23:00:05 +00:00
Alan Modra 90c9b2c61c daily update 2013-10-15 23:00:05 +00:00
Chao-ying Fu b60bf9be01 2013-10-14 Chao-ying Fu <Chao-ying.Fu@imgtec.com>
* elfxx-mips.c (mips_elf_obj_tdata): Add abi_msa_bfd.
	(mips_elf_merge_obj_attributes): Set abi_msa_bfd to the first object
	file that has a Tag_GNU_MIPS_ABI_MSA attribute.
	Merge Tag_GNU_MIPS_ABI_MSA attributes.
2013-10-14 18:43:39 +00:00
Nick Clifton b2e951ec58 * gen-aout.c (main): Fix formatting. Close file.
* emultempl/aix.em (_read_file): Close file at end of function.

	* gas/all/itbl-test.c (main): Close fas.

	* read.c (add_include_dir): Use xrealloc.
	* config/tc-score.c (do_macro_bcmp): Initialise inst_main.
	* config/tc-tic6x.c (tic6x_parse_operand): Initialise second_reg.

	* readelf.c (decode_arm_unwind): Initialise addr structure.
	(process_symbol_table): Free lengths.
	* srcconv.c (wr_sc): Free info.

	* chew.c (perform): Free next.
2013-10-14 09:15:09 +00:00
Alan Modra 158efad315 daily update 2013-10-13 23:00:05 +00:00
Richard Sandiford c5d6fa4495 bfd/
* elfxx-mips.c (mips_use_local_got_p): New function.
	(mips_elf_count_got_symbols, mips_elf_calculate_relocation): Use it.
	(_bfd_mips_elf_check_relocs): Set pointer_equality_needed for
	GOT and absolute references.

ld/testsuite/
	* ld-mips-elf/pic-and-nonpic-6-n32.ad,
	ld-mips-elf/pic-and-nonpic-6-n32.dd,
	ld-mips-elf/pic-and-nonpic-6-n32.gd,
	ld-mips-elf/pic-and-nonpic-6-n32.nd,
	ld-mips-elf/pic-and-nonpic-6-n32.rd,
	ld-mips-elf/pic-and-nonpic-6-n64.ad,
	ld-mips-elf/pic-and-nonpic-6-n64.dd,
	ld-mips-elf/pic-and-nonpic-6-n64.gd,
	ld-mips-elf/pic-and-nonpic-6-n64.nd,
	ld-mips-elf/pic-and-nonpic-6-n64.rd,
	ld-mips-elf/pic-and-nonpic-6-o32.ad,
	ld-mips-elf/pic-and-nonpic-6-o32.dd,
	ld-mips-elf/pic-and-nonpic-6-o32.gd,
	ld-mips-elf/pic-and-nonpic-6-o32.nd,
	ld-mips-elf/pic-and-nonpic-6-o32.rd: Fix symbol value of extf4.
	No longer expect extf3, extf4 and extd2 to be in the global GOT.
2013-10-13 10:03:22 +00:00
Alan Modra 3fcec3ee77 daily update 2013-10-12 23:00:05 +00:00
Alan Modra ad7ba01794 daily update 2013-10-11 23:00:04 +00:00
Alan Modra cd1e8820f0 daily update 2013-10-10 23:00:05 +00:00
Alan Modra 3fd4907535 daily update 2013-10-09 23:00:04 +00:00
Roland McGrath 9a757e4d20 bfd/
* elf64-alpha.c (elf64_alpha_relax_tls_get_addr): Cast switch
	expression to int to silence over-eager compiler warnings.
2013-10-09 19:40:04 +00:00
Roland McGrath 1c1479bf99 bfd/
* xcofflink.c (_bfd_xcoff_bfd_final_link): Don't touch EREL in
	loop that doesn't use (or initialize) it.
2013-10-09 18:02:48 +00:00
Roland McGrath 0e4894b9f9 bfd/
* elfxx-tilegx.c (tilegx32_plt_tail_entry, tilegx32_plt_tail_entry):
	Move second const qualifier so it applies to the pointer.
2013-10-09 17:54:32 +00:00
Nick Clifton b707aa49bf PR binutils/16022
* elf32-rx.c (rx_dump_symtab): Add missing break statements.
2013-10-09 16:24:43 +00:00
Tom Tromey 6e114b15ca * opncls.c (get_alt_debug_link_info_shim): Update type of 'len'. 2013-10-09 15:50:39 +00:00
Nick Clifton 6d490cdb86 PR ld/16021
* elf32-rl78.c (rl78_dump_symtab): Delete.
	(rl78_get_reloc): Delete.
2013-10-09 15:44:27 +00:00
Tom Tromey acd13123fb bfd
* bfd-in2.h: Rebuild.
	* opncls.c (bfd_get_alt_debug_link_info): Change type of
	buildid_len to bfd_size_type.
gdb
	* dwarf2read.c (dwarf2_get_dwz_file): Update for type change in
	bfd_get_alt_debug_link_info.
2013-10-09 14:26:26 +00:00
Sergio Durigan Junior 86879d8871 bfd/ChangeLog
2013-10-09  Sergio Durigan Junior  <sergiodj@redhat.com>

	PR binutils/15993
	* elf32-m32c.c (dump_symtab): Add missing "break;" statement on each
	"case".  Reindent "switch" statements.
2013-10-09 05:23:23 +00:00
Alan Modra 7319c6ac25 daily update 2013-10-08 23:00:05 +00:00
Tom Tromey dc294be54c fix PR symtab/15597
This patch fixes gdb PR symtab/15597.

The bug is that the .gnu_debugaltlink section includes the build-id of
the alt file, but gdb does not use it.

This patch fixes the problem by changing gdb to do what it ought to
always have done: verify the build id of the file found using the
filename in .gnu_debugaltlink; and if that does not match, try to find
the correct debug file using the build-id and debug-file-directory.

This patch touches BFD.  Previously, gdb had its own code for parsing
.gnu_debugaltlink; I changed it to use the BFD functions after those
were introduced.  However, the BFD functions are incorrect -- they
assume that .gnu_debugaltlink is formatted like .gnu_debuglink.
However, it it is not.  Instead, it consists of a file name followed
by the build-id -- no alignment, and the build-id is not a CRC.

Fixing this properly is a bit of a pain.  But, because
separate_alt_debug_file_exists just has a FIXME for the build-id case,
I did not fix it properly.  Instead I introduced a hack.  This leaves
BFD working just as well as it did before my patch.

I'm willing to do something better here but I could use some guidance
as to what.  It seems that the build-id code in BFD is largely punted
on.

FWIW gdb is the only user of bfd_get_alt_debug_link_info outside of
BFD itself.

I moved the build-id logic out of elfread.c and into a new file.
This seemed cleanest to me.

Writing a test case was a bit of a pain.  I added a couple new
features to the DWARF assembler to handle this.

Built and regtested on x86-64 Fedora 18.

	* bfd-in2.h: Rebuild.
	* opncls.c (bfd_get_alt_debug_link_info): Add buildid_len
	parameter.  Change type of buildid_out.  Update.
	(get_alt_debug_link_info_shim): New function.
	(bfd_follow_gnu_debuglink): Use it.

	* Makefile.in (SFILES): Add build-id.c.
	(HFILES_NO_SRCDIR): Add build-id.h.
	* build-id.c: New file, largely from elfread.c.  Modified
	most functions.
	* build-id.h: New file.
	* dwarf2read.c (dwarf2_get_dwz_file): Update for change to
	bfd_get_alt_debug_link_info.  Verify dwz file's build-id.
	Search for dwz file using build-id.
	* elfread.c (build_id_bfd_get, build_id_verify)
	(build_id_to_debug_filename, find_separate_debug_file): Remove.

	* gdb.dwarf2/dwzbuildid.exp: New file.
	* lib/dwarf.exp (Dwarf::_section): Add "flags" and "type"
	parameters.
	(Dwarf::_defer_output): Change "section" parameter to
	"section_spec"; update.
	(Dwarf::gnu_debugaltlink, Dwarf::_note, Dwarf::build_id): New
	procs.
2013-10-08 19:56:15 +00:00
Andreas Schwab 5bb7df2edf * elf32-m68k.c (elf_m68k_size_dynamic_sections): Add DT_DEBUG also
for PIE executables.
2013-10-08 15:57:24 +00:00
Alan Modra f424ae209c daily update 2013-10-07 23:00:04 +00:00
Alan Modra f872dc3d6e daily update 2013-10-06 23:00:05 +00:00
Alan Modra c080eea7b2 daily update 2013-10-05 23:00:05 +00:00
Alan Modra 5331b8a80c daily update 2013-10-05 00:00:05 +00:00
Alan Modra c4c2eac59e daily update 2013-10-04 00:00:04 +00:00
Jan-Benedict Glaw e0eebf9759 2013-10-04 Jan-Benedict Glaw <jbglaw@lug-owl.de>
* configure: Regenerate.
2013-10-03 22:02:45 +00:00
Will Newton 1419bbe571 aarch64: Add support for GNU indirect functions.
Add support for STT_GNU_IFUNC symbols to the AArch64 bfd backend. The tests
are ported from the ld-ifunc tests but are enabled for cross builds so can
be run easily without hardware or a simulator.

bfd/ChangeLog:

2013-10-03  Will Newton  <will.newton@linaro.org>

	* configure: Regenerate.
	* configure.in: Build elf-ifunc.o for AArch64.
	* elfnn-aarch64.c: Include objalloc.h.
	(elfNN_aarch64_local_htab_hash): New function.
	(elfNN_aarch64_local_htab_eq): New function.
	(elfNN_aarch64_get_local_sym_hash): New function.
	(elfNN_aarch64_link_hash_table_create): Initialize local STT_GNU_IFUNC
	symbol hash.
	(elfNN_aarch64_hash_table_free): Free local STT_GNU_IFUNC symbol hash.
	(elfNN_aarch64_final_link_relocate): Add sym argument.  Add support
	for handling STT_GNU_IFUNC symbols.
	(elfNN_aarch64_gc_sweep_hook): Add support for garbage collecting
	references to STT_GNU_IFUNC symbols.
	(elfNN_aarch64_adjust_dynamic_symbol): Add support for handling
	STT_GNU_IFUNC symbols.
	(elfNN_aarch64_check_relocs): Add support for handling STT_GNU_IFUNC
	symbols.  Ensure we don't increase plt.refcount from -1 to 0.
	(elfNN_aarch64_post_process_headers): Call _bfd_elf_set_osabi.
	(elfNN_aarch64_is_function_type): Remove function.
	(elfNN_aarch64_allocate_dynrelocs): Handle STT_GNU_IFUNC symbols.
	(elfNN_aarch64_allocate_ifunc_dynrelocs): New function.
	(elfNN_aarch64_allocate_local_dynrelocs): New function.
	(elfNN_aarch64_allocate_local_ifunc_dynrelocs): New function.
	(elfNN_aarch64_size_dynamic_sections): Call
	elfNN_aarch64_allocate_local_dynrelocs.
	(elfNN_aarch64_create_small_pltn_entry): Add info argument.
	Add support for creating .iplt entries for STT_GNU_IFUNC symbols.
	(elfNN_aarch64_finish_dynamic_symbol): Add support for handling
	STT_GNU_IFUNC symbols and .iplt.
	(elfNN_aarch64_finish_local_dynamic_symbol): New function.
	(elfNN_aarch64_finish_dynamic_sections): Call
	elfNN_aarch64_finish_local_dynamic_symbol.

ld/ChangeLog:

2013-10-03  Will Newton  <will.newton@linaro.org>

	* emulparams/aarch64elf.sh: Add IREL_IN_PLT.
	* emulparams/aarch64elf32.sh: Likewise.

ld/testsuite/ChangeLog:

2013-10-03  Will Newton  <will.newton@linaro.org>

	* ld-ifunc/ifunc.exp: Enable ifunc tests for AArch64.
	* ld-aarch64/aarch64-elf.exp: Run ifunc tests.
	* ld-aarch64/ifunc-1-local.d: New file.
	* ld-aarch64/ifunc-1-local.s: Likewise.
	* ld-aarch64/ifunc-1.d: Likewise.
	* ld-aarch64/ifunc-1.s: Likewise.
	* ld-aarch64/ifunc-10.d: Likewise.
	* ld-aarch64/ifunc-10.s: Likewise.
	* ld-aarch64/ifunc-11.d: Likewise.
	* ld-aarch64/ifunc-11.s: Likewise.
	* ld-aarch64/ifunc-12.d: Likewise.
	* ld-aarch64/ifunc-12.s: Likewise.
	* ld-aarch64/ifunc-13.d: Likewise.
	* ld-aarch64/ifunc-13a.s: Likewise.
	* ld-aarch64/ifunc-13b.s: Likewise.
	* ld-aarch64/ifunc-14a.d: Likewise.
	* ld-aarch64/ifunc-14a.s: Likewise.
	* ld-aarch64/ifunc-14b.d: Likewise.
	* ld-aarch64/ifunc-14b.s: Likewise.
	* ld-aarch64/ifunc-14c.d: Likewise.
	* ld-aarch64/ifunc-14c.s: Likewise.
	* ld-aarch64/ifunc-14d.d: Likewise.
	* ld-aarch64/ifunc-14e.d: Likewise.
	* ld-aarch64/ifunc-14f.d: Likewise.
	* ld-aarch64/ifunc-15.d: Likewise.
	* ld-aarch64/ifunc-15.s: Likewise.
	* ld-aarch64/ifunc-16.d: Likewise.
	* ld-aarch64/ifunc-16.s: Likewise.
	* ld-aarch64/ifunc-17a.d: Likewise.
	* ld-aarch64/ifunc-17a.s: Likewise.
	* ld-aarch64/ifunc-17b.d: Likewise.
	* ld-aarch64/ifunc-17b.s: Likewise.
	* ld-aarch64/ifunc-18a.d: Likewise.
	* ld-aarch64/ifunc-18a.s: Likewise.
	* ld-aarch64/ifunc-18b.d: Likewise.
	* ld-aarch64/ifunc-18b.s: Likewise.
	* ld-aarch64/ifunc-19a.d: Likewise.
	* ld-aarch64/ifunc-19a.s: Likewise.
	* ld-aarch64/ifunc-19b.d: Likewise.
	* ld-aarch64/ifunc-19b.s: Likewise.
	* ld-aarch64/ifunc-2-local.d: Likewise.
	* ld-aarch64/ifunc-2-local.s: Likewise.
	* ld-aarch64/ifunc-2.d: Likewise.
	* ld-aarch64/ifunc-2.s: Likewise.
	* ld-aarch64/ifunc-20.d: Likewise.
	* ld-aarch64/ifunc-20.s: Likewise.
	* ld-aarch64/ifunc-3.s: Likewise.
	* ld-aarch64/ifunc-3a.d: Likewise.
	* ld-aarch64/ifunc-3b.d: Likewise.
	* ld-aarch64/ifunc-4.d: Likewise.
	* ld-aarch64/ifunc-4.s: Likewise.
	* ld-aarch64/ifunc-4a.d: Likewise.
	* ld-aarch64/ifunc-5-local.s: Likewise.
	* ld-aarch64/ifunc-5.s: Likewise.
	* ld-aarch64/ifunc-5a-local.d: Likewise.
	* ld-aarch64/ifunc-5a.d: Likewise.
	* ld-aarch64/ifunc-5b-local.d: Likewise.
	* ld-aarch64/ifunc-5b.d: Likewise.
	* ld-aarch64/ifunc-5r-local.d: Likewise.
	* ld-aarch64/ifunc-6.s: Likewise.
	* ld-aarch64/ifunc-6a.d: Likewise.
	* ld-aarch64/ifunc-6b.d: Likewise.
	* ld-aarch64/ifunc-7.s: Likewise.
	* ld-aarch64/ifunc-7a.d: Likewise.
	* ld-aarch64/ifunc-7b.d: Likewise.
	* ld-aarch64/ifunc-7c.d: Likewise.
	* ld-aarch64/ifunc-8.d: Likewise.
	* ld-aarch64/ifunc-8a.s: Likewise.
	* ld-aarch64/ifunc-8b.s: Likewise.
	* ld-aarch64/ifunc-9.d: Likewise.
	* ld-aarch64/ifunc-9.s: Likewise.
2013-10-03 14:46:09 +00:00
Alan Modra f8fedb8d7b daily update 2013-10-03 00:00:04 +00:00
Alan Modra 62574b938f daily update 2013-10-02 00:00:04 +00:00
Alan Modra ce63849fab daily update 2013-10-01 00:00:04 +00:00
Nick Clifton cbb2b07e33 * emulparams/msp430all.sh: Update ARCH names.
* cpu-msp430.c: Use printable names that match the values
	displayed by readelf.
2013-09-30 09:03:59 +00:00
Alan Modra b9bd7559c7 daily update 2013-09-30 00:00:04 +00:00
Alan Modra 9a5624cea1 daily update 2013-09-29 00:00:04 +00:00
Alan Modra c2267fe5ea daily update 2013-09-28 00:00:04 +00:00
Alan Modra 86a367af41 daily update 2013-09-27 00:00:04 +00:00
Andrew Pinski 4e8516b2d9 2013-08-25 Andrew Pinski <apinski@cavium.com>
* elfnn-aarch64.c (TCB_SIZE): Base on the ARCH_SIZE rather than a
	fixed size of 16.
2013-09-25 17:55:05 +00:00
Alan Modra 9d26852e6d daily update 2013-09-25 00:00:04 +00:00
Richard Sandiford 2f9efdfcdb bfd/
2013-09-24  Gregory Fong  <gregory.0xf0@gmail.com>

	* elfxx-mips.c (mips_elf_create_got_section): Hide
	_GLOBAL_OFFSET_TABLE_.

ld/testsuite/
2013-09-24  Gregory Fong  <gregory.0xf0@gmail.com>

	* ld-mips-elf/eh-frame5.d, ld-mips-elf/jalx-2.dd,
	ld-mips-elf/mips-elf.exp, ld-mips-elf/mips16-pic-2.ad,
	ld-mips-elf/mips16-pic-2.nd, ld-mips-elf/pic-and-nonpic-3a.dd,
	ld-mips-elf/pic-and-nonpic-3b.ad, ld-mips-elf/pic-and-nonpic-3b.dd,
	ld-mips-elf/pic-and-nonpic-3b.nd, ld-mips-elf/pic-and-nonpic-4b.ad,
	ld-mips-elf/pic-and-nonpic-4b.nd, ld-mips-elf/pic-and-nonpic-4b.rd,
	ld-mips-elf/pic-and-nonpic-5b.ad, ld-mips-elf/pic-and-nonpic-5b.nd,
	ld-mips-elf/pic-and-nonpic-6-n32.ad,
	ld-mips-elf/pic-and-nonpic-6-n32.dd,
	ld-mips-elf/pic-and-nonpic-6-n32.nd,
	ld-mips-elf/pic-and-nonpic-6-n64.ad,
	ld-mips-elf/pic-and-nonpic-6-n64.dd,
	ld-mips-elf/pic-and-nonpic-6-n64.nd,
	ld-mips-elf/pic-and-nonpic-6-o32.ad,
	ld-mips-elf/pic-and-nonpic-6-o32.dd,
	ld-mips-elf/pic-and-nonpic-6-o32.nd, ld-mips-elf/rel32-n32.d,
	ld-mips-elf/rel32-o32.d, ld-mips-elf/rel64.d,
	ld-mips-elf/tls-multi-got-1.got, ld-mips-elf/tls-multi-got-1.r,
	ld-mips-elf/tlsdyn-o32-1.d, ld-mips-elf/tlsdyn-o32-1.got,
	ld-mips-elf/tlsdyn-o32-2.d, ld-mips-elf/tlsdyn-o32-2.got,
	ld-mips-elf/tlsdyn-o32-3.d, ld-mips-elf/tlsdyn-o32-3.got,
	ld-mips-elf/tlsdyn-o32.d, ld-mips-elf/tlsdyn-o32.got,
	ld-mips-elf/tlslib-o32-ver.got, ld-mips-elf/tlslib-o32.got: Update
	for removal of _GLOBAL_OFFSET_TABLE_ from .dynsym.
2013-09-24 22:15:38 +00:00
Alan Modra 91ea67ca58 * elf32-mips.c (ELF_OSABI): Undef for vxworks. 2013-09-24 10:22:27 +00:00
Alan Modra 8a865bcb77 * syms.c (_bfd_stab_section_find_nearest_line): Ignore partial
stabs at end of .stab.  Tidy variable usage.  Don't drop the need
	for a NULL function name stab if If N_FUN stab is ignored.
	Ensure index entry count loop matches write loop.
2013-09-24 06:57:36 +00:00
Alan Modra 8cbc424d22 daily update 2013-09-24 00:00:04 +00:00
Alan Modra eb381701a3 daily update 2013-09-23 00:00:04 +00:00
Alan Modra ea76e9198c daily update 2013-09-22 00:00:04 +00:00
Alan Modra 722a5e98ea daily update 2013-09-21 00:00:05 +00:00
Alan Modra cc9afea3e4 * libtool.m4 (_LT_ENABLE_LOCK <ld -m flags>): Remove non-canonical
ppc host match.  Support little-endian powerpc linux hosts.
Regenerate binutils configure files.
2013-09-20 09:51:25 +00:00
Alan Modra ff2773be07 daily update 2013-09-20 00:00:04 +00:00
Alan Modra 205bc6b1a7 daily update 2013-09-19 00:00:03 +00:00
Tristan Gingold bc080e949d bfd/
2013-09-18  Tristan Gingold  <gingold@adacore.com>

	* configure.in: Bump version to 2.24.51
	* configure: Regenerate.
2013-09-18 11:02:05 +00:00
Alan Modra 000d27e5e7 daily update 2013-09-18 00:00:05 +00:00
Steve Ellcey 5baf5e34cf 2013-09-17 Doug Gilmore <Doug.Gilmore@imgtec.com>
* elfxx-mips.c (_bfd_mips_elf_print_private_bfd_data): Handle
	EF_MIPS_FP64.
2013-09-17 21:07:13 +00:00
Alan Modra 3a86fc5600 daily update 2013-09-17 00:00:04 +00:00
Alan Modra fe75ecec82 daily update 2013-09-16 00:00:04 +00:00
Alan Modra 605e29cd82 daily update 2013-09-15 00:00:04 +00:00
Alan Modra 556a4ec59c daily update 2013-09-14 00:00:04 +00:00
Alan Modra 89e204c4bc daily update 2013-09-13 00:00:04 +00:00
Alan Modra c9ee61e2dd daily update 2013-09-12 00:00:04 +00:00
Alan Modra f9a1695ef6 daily update 2013-09-11 00:00:04 +00:00
Alan Modra cca931b4c8 daily update 2013-09-10 00:00:04 +00:00
Alan Modra 3ce8d851a6 daily update 2013-09-09 00:00:04 +00:00
Alan Modra 92796d6430 daily update 2013-09-08 00:00:04 +00:00
Alan Modra 3d05c071aa daily update 2013-09-07 00:00:04 +00:00
Alan Modra 253a4c9811 daily update 2013-09-06 00:00:04 +00:00
Alan Modra 316d1644e4 daily update 2013-09-05 00:00:05 +00:00
Alan Modra 4cb70f9a2f daily update 2013-09-04 00:00:04 +00:00
Alan Modra 9d0cdcdf27 daily update 2013-09-03 00:00:04 +00:00
Alan Modra dd97e043eb daily update 2013-09-02 00:00:05 +00:00
Alan Modra 56b699ea02 daily update 2013-09-01 00:00:05 +00:00
Dave Anglin 29bff3ea1d 2013-08-31 John David Anglin <dave.anglin@bell.net>
* elf64-hppa.c (elf_hppa_final_link_relocate): Add missing '%' to
	format string.
2013-08-31 11:31:42 +00:00
Alan Modra e826858c0b daily update 2013-08-31 00:00:05 +00:00
Alan Modra e2668a1a80 daily update 2013-08-30 00:00:04 +00:00
Jakub Jelinek 5c98a14e1e * elf64-x86-64.c (elf_x86_64_check_tls_transition): Allow
64-bit -mcmodel=large -fpic TLS GD and LD sequences.
	(elf_x86_64_relocate_section): Handle -mcmodel=large -fpic
	TLS GD and LD sequences in GD->LE, GD->IE and LD->LE transitions.
ld/testsuite/
	* ld-x86-64/x86-64.exp: Add tlsld3, tlsgd7 and tlsgd8 tests.
	* ld-x86-64/tlspic1.s: Add -mcmodel=large -fpic TLS GD and LD
	sequences.
	* ld-x86-64/tlspic.dd: Adjusted.
	* ld-x86-64/tlspic.rd: Adjusted.
	* ld-x86-64/tlspic-nacl.rd: Adjusted.
	* ld-x86-64/tlsld3.dd: New test.
	* ld-x86-64/tlsld3.s: New file.
	* ld-x86-64/tlsgd7.dd: New test.
	* ld-x86-64/tlsgd7.s: New file.
	* ld-x86-64/tlsgd8.dd: New test.
	* ld-x86-64/tlsgd8.s: New file.
2013-08-29 10:25:27 +00:00
Alan Modra 17ba854700 daily update 2013-08-29 00:00:04 +00:00
Alan Modra 06d0fc3a6a daily update 2013-08-28 00:00:05 +00:00
Alan Modra e5034e59e0 * elf-bfd.h (struct elf_backend_data): Remove as_needed_cleanup.
Add notice_as_needed.
	* elf64-ppc.c (elf_backend_as_needed_cleanup): Don't define.
	(elf_backend_notice_as_needed): Define.
	(ppc64_elf_as_needed_cleanup): Rename and adjust..
	(ppc64_elf_notice_as_needed): ..to this.
	* elflink.c (_bfd_elf_notice_as_needed): New function, extracted..
	(elf_link_add_object_symbols): ..from here.
	* elfxx-target.h (elf_backend_as_needed_cleanup): Don't define.
	(elf_backend_notice_as_needed): Define..
	(elfNN_bed): ..and use here.
2013-08-27 01:06:43 +00:00
Alan Modra 243f1f0bda daily update 2013-08-27 00:00:04 +00:00
Roland McGrath 1098fd41ac bfd/
* archures.c (bfd_mach_i386_nacl, bfd_mach_i386_i386_nacl): New macros.
	(bfd_mach_x86_64_nacl, bfd_mach_x64_32_nacl): New macros.
	* cpu-i386.c (bfd_arch_i386_onebyte_nop_fill): New function.
	(bfd_i386_nacl_arch): New variable.
	(bfd_x86_64_nacl_arch, bfd_x64_32_nacl_arch): New variables.
	(bfd_x64_32_arch_intel_syntax): Link them into the list.
	* bfd-in2.h: Regenerate.

ld/
	* emulparams/elf_i386_nacl.sh (ARCH): Set to i386:nacl.
	* emulparams/elf_x86_64_nacl.sh (ARCH): Set to i386:x86-64:nacl.
	* emulparams/elf32_x86_64_nacl.sh (ARCH): Set to i386:x64-32:nacl.

ld/testsuite/
	* ld-x86-64/x86-64.exp (Mixed x86_64 and i386 input test 1):
	Loosen string match to admit i386:x86-64*.
	(Mixed x86_64 and i386 input test 2): Likewise.
	* ld-x86-64/ilp32-2.d: Likewise.
	* ld-x86-64/ilp32-3.d: Likewise.
	* ld-x86-64/lp64-2.d: Likewise.
	* ld-x86-64/lp64-3.d: Likewise.
	* ld-x86-64/ia32-2.d: Likewise, and i386.* too.
	* ld-x86-64/ia32-3.d: Likewise.
2013-08-26 22:18:07 +00:00
Roland McGrath 887badb310 bfd/
* elf-nacl.c (nacl_modify_segment_map): Fix logic reordering the
	elf_segment_map list.  If an executable segment is page-aligned
	but does not end with a full page, then append a fake section into
	the segment map entry that pads out the page.
	(nacl_final_write_processing): New function.  Write the code fill
	laid out in nacl_modify_segment_map.
	* elf-nacl.h: Declare it.
	* elf32-arm.c (elf32_arm_nacl_final_write_processing): New function.
	(elf_backend_final_write_processing): Define it for NaCl backend.
	* elf32-i386.c (elf_backend_final_write_processing): Likewise.
	* elf64-x86-64.c (elf_backend_final_write_processing): Likewise.

	* elf-nacl.c (segment_eligible_for_headers): Rename MAXPAGESIZE
	parameter to MINPAGESIZE.
	(nacl_modify_segment_map): Use minpagesize instead of maxpagesize.

	* elf32-arm.c (ELF_MINPAGESIZE, ELF_COMMONPAGESIZE): Set to
	0x10000	for NaCl targets.

ld/testsuite/
	* ld-x86-64/ilp32-4-nacl.d: Loosen .shstrtab line regexp to match
	any file offset.
	* ld-x86-64/tlsbin-nacl.rd: Update expected code segment PT_LOAD.
	* ld-x86-64/tlsbindesc-nacl.rd: Likewise.
	* ld-scripts/rgn-at3.d: XFAIL for *-*-nacl* targets.
	* ld-scripts/rgn-over8-ok.d: Likewise.
2013-08-26 19:27:25 +00:00
Alan Modra 188253007c daily update 2013-08-26 00:00:04 +00:00
Alan Modra 8862a5c46f daily update 2013-08-25 00:00:04 +00:00
Maciej W. Rozycki 387f8054ca * elf32-tilepro.c (tilepro_elf_finish_dynamic_sections): Don't
set GOT's entry size if there is no ELF section data.
	* elf64-s390.c (elf_s390_finish_dynamic_sections): Likewise.
	* elfxx-sparc.c (_bfd_sparc_elf_finish_dynamic_sections):
	Likewise.
2013-08-24 22:16:41 +00:00
Alan Modra 59246daa45 daily update 2013-08-24 00:00:04 +00:00
H.J. Lu f8222080f6 Add get_elf_x86_64_arch_data
* elf64-x86-64.c (get_elf_x86_64_arch_data): New.
	(get_elf_x86_64_backend_data): Use it.
	(elf_x86_64_size_dynamic_sections): Likewise.
2013-08-23 19:29:13 +00:00
Nick Clifton 9aff4b7ac1 PR binutils/15834
Fix typos:
---
 bfd/bfdio.c                                  |  2 +-
 bfd/elf32-spu.c                              |  2 +-
 bfd/elfnn-aarch64.c                          |  2 +-
 binutils/od-xcoff.c                          |  2 +-
 config/tcl.m4                                |  2 +-
 gas/config/tc-ia64.c                         |  2 +-
 gas/config/tc-sparc.c                        |  2 +-
 gas/config/tc-z80.c                          | 12 ++++++------
 gas/doc/c-i386.texi                          |  6 +++---
 gas/doc/c-m32r.texi                          |  2 +-
 gas/testsuite/gas/d10v/instruction_packing.d |  2 +-
 gas/testsuite/gas/z80/atend.d                |  2 +-
 gold/object.h                                |  2 +-
 include/gdb/remote-sim.h                     |  2 +-
 include/opcode/ChangeLog                     |  2 +-
 include/opcode/i960.h                        |  2 +-
 ld/testsuite/ld-mips-elf/mips16-pic-1.inc    |  2 +-
 opcodes/aarch64-asm.c                        |  2 +-
 opcodes/aarch64-dis.c                        |  2 +-
 opcodes/msp430-dis.c                         |  2 +-
2013-08-23 07:54:19 +00:00
Alan Modra 9fdc4cb36f daily update 2013-08-23 00:00:04 +00:00
Alan Modra 342719af23 daily update 2013-08-22 00:00:04 +00:00
Tristan Gingold 2eea244095 2013-08-21 Tristan Gingold <gingold@adacore.com>
* coff-rs6000.c (_bfd_xcoff_sizeof_headers): Also count
	.ovrflo sections.
	* coffcode.h (coff_compute_section_file_positions): Force
	match between file offset and vma offset.
2013-08-21 08:15:23 +00:00
Nick Clifton 0ed1b36a6a Fix typo 2013-08-21 07:28:37 +00:00
Alan Modra 934bce08d2 * elflink.c (_bfd_elf_merge_symbol): Set *poldbfd, *poldweak,
and *poldalignment before exiting when !relocs_compatible.
2013-08-21 04:09:30 +00:00
Alan Modra 00b7642b8a * elflink.c (_bfd_elf_define_linkage_sym): Don't set STV_INTERNAL
symbols to STV_HIDDEN.
2013-08-21 03:45:44 +00:00
Alan Modra d686b906dc daily update 2013-08-21 00:00:05 +00:00
Alan Modra 1911163163 daily update 2013-08-20 00:00:04 +00:00
Alan Modra 6686753d09 daily update 2013-08-19 00:00:04 +00:00
Alan Modra cbf92e6096 daily update 2013-08-18 00:00:04 +00:00
Alan Modra 856afefbaf daily update 2013-08-17 00:00:04 +00:00
Alan Modra 4956ded865 daily update 2013-08-16 00:00:04 +00:00
Alan Modra dbdf691ab9 daily update 2013-08-15 00:00:04 +00:00
Nick Clifton 62c34db3dc PR ld/15787
* elf32-arm.c (elf32_arm_final_link_relocate): Use origin of output
	segment containing the relocating symbol instead of assuming 0 for
	sb group relocations.

	* ld-arm/group-relocs-ldr-bad.s: Redefine bar into foo section
	beyond 16 bit offset width.
	* ld-arm/group-relocs-ldrs-bad.s: Likewise.
	* ld-arm/group-relocs-ldr-bad.d: Adjust expected result.
	* ld-arm/group-relocs-ldrs-bad.d: Likewise.
	* ld-arm/group-relocs.s: Add comments.  Move symbols used for sb
	group relocations into .data section.  Drop section zero.  Use pc/r0
	as base register when pc/sb group relocations are used.
	* ld-arm/group-relocs.d: Adjust expected result.
	* ld-arm/group-relocs-alu-bad-2.d: New test for sb group relocation.
	* ld-arm/group-relocs-ldc-bad-2.d: Likewise.
	* ld-arm/group-relocs-ldr-bad-2.d: New test for pc group relocation.
	* ld-arm/group-relocs-ldrs-bad-2.d: Likewise.
	* ld-arm/unresolved-2.d: Add sb relocation failure test.
	* ld-arm/group-relocs-alu-bad-2.s: New test source.
	* ld-arm/group-relocs-ldr-bad-2.s: Likewise.
	* ld-arm/group-relocs-ldrs-bad-2.s: Likewise.
	* ld-arm/group-relocs-ldc-bad-2.s: Likewise.
	* ld-arm/unresolved-2.s: Likewise.
	* ld-arm/arm-elf.exp: For group-relocs, drop section zero start
	definition.  Run the new tests.
2013-08-14 12:20:41 +00:00
Alan Modra 1960b13439 daily update 2013-08-14 00:00:04 +00:00
Alan Modra 859e698207 daily update 2013-08-13 00:00:04 +00:00
Alan Modra 6eddc0cf04 daily update 2013-08-12 00:00:04 +00:00
Alan Modra f4a65ebf94 daily update 2013-08-11 00:00:05 +00:00
Alan Modra 0885525e15 daily update 2013-08-10 00:00:05 +00:00
Nick Clifton 4046d87a36 * elf32-rl78.c (rl78_elf_merge_private_bfd_data): Complain if G10
flag bits do not match.
	(rl78_elf_print_private_bfd_data): Describe G10 flag.

	* readelf.c (get_machine_flags): Handle RL78 G10 flag.

	* config/tc-rl78.c (elf_flags): New variable.
	(enum options): Add OPTION_G10.
	(md_longopts): Add mg10.
	(md_parse_option): Parse -mg10.
	(rl78_elf_final_processing): New function.
	* config/tc-rl78.c (tc_final_processing): Define.
	* doc/c-rl78.texi: Document -mg10 option.

	* rl78.c (E_FLAG_RL78_G10): Define.

	* lib/ld-lib.exp (check_shared_lib_support): Note that the RL78
	does not support shared library generation.
2013-08-09 10:40:04 +00:00
Alan Modra a780258f0e daily update 2013-08-09 00:00:04 +00:00
Alan Modra b04006e69c daily update 2013-08-08 00:00:04 +00:00
Alan Modra 2d8c526bfb daily update 2013-08-07 00:00:04 +00:00
Alan Modra fdd57b168c daily update 2013-08-06 00:00:05 +00:00
Richard Sandiford 138964030f bfd/
2013-08-05  John Tytgat  <john@bass-software.com>

	* po/BLD-POTFILES.in: Regenerate.
	* po/SRC-POTFILES.in: Likewise.

gas/
2013-08-05  John Tytgat  <john@bass-software.com>

	* po/POTFILES.in: Regenerate.

gprof/
2013-08-05  John Tytgat  <john@bass-software.com>

	* po/POTFILES.in: Regenerate.
2013-08-05 21:58:23 +00:00
Alan Modra b3ce1f8a94 daily update 2013-08-05 00:00:05 +00:00
Alan Modra ba5b2044e8 daily update 2013-08-04 00:00:05 +00:00
Alan Modra 18342312e1 daily update 2013-08-03 00:00:04 +00:00
Alan Modra 2e204b8240 daily update 2013-08-02 00:00:04 +00:00
Alan Modra 5c7b0e48a1 daily update 2013-08-01 00:00:04 +00:00
Nick Clifton 31a91d61f9 PR ld/15787
* elf32-arm.c (elf32_arm_final_link_relocate): Base SB on the
	output section VMA.

	* ld-arm/group-relocs-alu-bad-2.d; New.
	* ld-arm/group-relocs-alu-bad-2.s: New.
	* ld-arm/group-relocs-ldc-bad-2.d: New.
	* ld-arm/group-relocs-ldc-bad-2.s: New.
	* ld-arm/group-relocs-ldr-bad-2.d: New.
	* ld-arm/group-relocs-ldr-bad-2.s: New.
	* ld-arm/group-relocs-ldrs-bad-2.d: New.
	* ld-arm/group-relocs-ldrs-bad-2: New.
	* ld-arm/arm-elf.exp: Add the new tests.
	* ld-arm/group-relocs-ldr-bad.d: Update expected output.
	* ld-arm/group-relocs-ldr-bad.s: Likewise.
	* ld-arm/group-relocs-ldrs-bad.d: Likewise.
	* ld-arm/group-relocs-ldrs-bad.s: Likewise.
	* ld-arm/group-relocs.d: Likewise.
	* ld-arm/group-relocs.s: Likewise.
2013-07-31 16:26:02 +00:00
Alan Modra e735959b3f daily update 2013-07-31 00:00:05 +00:00
Alan Modra b6caa37ec8 daily update 2013-07-30 00:00:05 +00:00
Alan Modra c8f30dac8c daily update 2013-07-29 00:00:04 +00:00
Maciej W. Rozycki a505d7ac6e * elf64-hppa.c (elf64_hppa_finish_dynamic_sections)
<DT_HP_LOAD_MAP>: Return unsuccessfully if there's no `.data'
	section.
2013-07-28 23:05:18 +00:00
Andrew Pinski 0608afa70a 2013-07-27 Andrew Pinski <apinski@cavium.com>
* elfnn-aarch64.c (elfNN_aarch64_check_relocs):
	Use the correct alignment for
	_bfd_elf_make_dynamic_reloc_section for ILP32.
2013-07-28 03:29:41 +00:00
Alan Modra c9a49335b2 daily update 2013-07-28 00:00:04 +00:00
Andrew Pinski 54757ed169 2013-07-27 Andrew Pinski <apinski@cavium.com>
* elfnn-aarch64.c (elfNN_aarch64_howto_from_bfd_reloc): Handle
	BFD_RELOC_AARCH64_NONE explicitly.
2013-07-27 23:58:43 +00:00
Maciej W. Rozycki f6518c488a * elf32-vax.c (elf_vax_finish_dynamic_sections): Don't set GOT's
entry size if there is no ELF section data.
2013-07-27 22:38:50 +00:00
Maciej W. Rozycki 125b5bac98 bfd/
* elf32-vax.c (elf_vax_check_relocs) <R_VAX_GOT32, R_VAX_PLT32>:
	Don't check symbol visibility here.  Remove a check already
	asserted for.
	(elf_vax_instantiate_got_entries): Use SYMBOL_REFERENCES_LOCAL
	instead of individual checks.
	(elf_vax_relocate_section) <R_VAX_GOT32, R_VAX_PLT32>: Only
	check the offset to decide if produce a GOT or PLT entry.
	Remove redundant assertions.  Remove code to produce GOT entries
	for local symbols.  Remove a duplicate comment and add a comment
	on GOT relocations.
	(elf_vax_finish_dynamic_symbol): Remove code to produce RELATIVE
	dynamic relocs.

	ld/testsuite/
	* ld-vax-elf/got-local-exe.xd: New test.
	* ld-vax-elf/got-local-lib.xd: New test.
	* ld-vax-elf/got-local-aux.s: New test source.
	* ld-vax-elf/got-local-def.s: New test source.
	* ld-vax-elf/got-local-ref.s: New test source.
	* ld-vax-elf/vax-elf.exp: Run the new tests.
2013-07-27 22:21:11 +00:00
Maciej W. Rozycki 49d01bf63d * elf32-vax.c (elf_vax_always_size_sections): Correct a comment
typo.
2013-07-27 19:32:53 +00:00
Maciej W. Rozycki fac3d2414b * elf32-vax.c (elf_vax_discard_got_entries): New function.
(elf_vax_always_size_sections): Likewise.
	(elf_vax_size_dynamic_sections): Remove code moved to
	elf_vax_always_size_sections.  Make comment on
	elf_vax_instantiate_got_entries match reality.
	(elf_vax_instantiate_got_entries): Assert that rather than check
	if dynobj is null.  Don't check for dynamic_sections_created.
	Make function description match reality.
	(elf_backend_always_size_sections): New macro.
2013-07-27 19:17:29 +00:00
Alan Modra e21b1c5ffd daily update 2013-07-27 00:00:04 +00:00
Alan Modra cc3d0a6f35 daily update 2013-07-26 00:00:04 +00:00
Alan Modra 729eabd5c8 * elf64-ppc.c (struct ppc64_elf_obj_tdata): Replace opd_relocs
with a union.
	(opd_entry_value): Cache .opd section contents.
	(ppc64_elf_relocate_section): Adjust.
2013-07-25 15:18:26 +00:00
Alan Modra db6a5d5f90 PR ld/15762
PR ld/12761
	* elflink.c (elf_link_add_object_symbols): Correct test in
	last patch.  Remove unnecessary code.
2013-07-25 00:14:11 +00:00
Alan Modra 8c058e6af3 daily update 2013-07-25 00:00:04 +00:00
Tristan Gingold 7fa9fcb6db bfd/
2013-07-24  Tristan Gingold  <gingold@adacore.com>

        * coff-rs6000.c (xcoff_howto_table): Fix masks and pc_relative for
        R_RBR.  Add numbers in comments.
        (_bfd_xcoff_reloc_type_lookup): Handle BFD_RELOC_PPC_B16.
        * coff64-rs6000.c: Likewise.

gas/
2013-07-24  Tristan Gingold  <gingold@adacore.com>

        * config/tc-ppc.c (md_apply_fix): Adjust BFD_RELOC_PPC_B16 on
        xcoff targets.

gas/testsuite/
2013-07-24  Tristan Gingold  <gingold@adacore.com>

        * gas/ppc/test2xcoff32.s, gas/ppc/test2xcoff32.d: New files
        * gas/ppc/ppc.exp: Add new test.
        * gas/ppc/xcoff-br16-1.s, gas/ppc/xcoff-br16-1.d,
        gas/ppc/xcoff-br16-2.s, gas/ppc/xcoff-br16-2.d: New files
        * gas/ppc/aix.exp: Add new tests.
2013-07-24 14:12:41 +00:00
Alan Modra 13355230fb daily update 2013-07-24 00:00:04 +00:00
Alan Modra 6ef198dae7 daily update 2013-07-23 00:00:04 +00:00
Alan Modra b91fb16d75 daily update 2013-07-22 00:00:04 +00:00
Alan Modra 93a102b3b4 daily update 2013-07-21 00:00:04 +00:00
Alan Modra 436e1ebacc PR ld/15762
PR ld/12761
	* elflink.c (elf_link_add_object_symbols): Don't clobber
	.gnu.warning.symbol sections when shared.
2013-07-20 09:50:16 +00:00
Alan Modra 702535171d daily update 2013-07-20 00:00:05 +00:00
Nick Clifton ee181c7253 * elf32-rx.c (rx_elf_relocate_section): Fix typo: move
saw_subtract from R_RX_OPdiv to R_RX_OPneg.
2013-07-19 13:16:17 +00:00
Alan Modra 0857ec5735 daily update 2013-07-19 00:00:04 +00:00
Nick Clifton df301bfc7c PR ld/15721
* elf32-msp430.c (R_MSP430_10_PCREL): Use 10-bit source and
	destination masks.
	* R_MSP430_2X_PCREL: Likewise.
	* R_MSP430X_10_PCREL: Likewise.
	* R_MSP430X_2X_PCREL: Likewise.
2013-07-18 14:08:42 +00:00
Nick Clifton 39f2162499 * elf32-arm.c (arm_type_of_stub): Don't use ST_BRANCH_TO_ARM for
thumb only targets.
        (elf32_arm_final_link_relocate): Likewise.

        * ld-arm/thumb-b-lks-sym.d: Updated to be more flexible.
        * ld-arm/thumb-bl-lks-sym.d: Likewise.
2013-07-18 12:00:26 +00:00
Nick Clifton 671a6cbe38 * mach-o.c (mach_o_section_name_xlat dw): Add entry for
.debug_gdb_scripts
2013-07-18 11:40:37 +00:00
Nick Clifton 7a89b94e91 * elf32-arm.c (elf32_arm_stub_long_branch_arm_nacl): New variable.
(elf32_arm_stub_long_branch_arm_nacl_pic): New variable.
	(arm_build_one_stub): Increase MAXRELOCS to 3.
	(arm_type_of_stub): Use them if GLOBALS->nacl_p.
	(struct elf32_arm_link_hash_table): Give add_stub_section member's
	pointee type a third argument.
	(elf32_arm_create_or_find_stub_sec): Update caller.
	(elf32_arm_size_stubs): Update argument type.
	* bfd-in.h (elf32_arm_size_stubs): Update decl.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.

	* emultempl/armelf.em (elf32_arm_add_stub_section): Take third
	argument ALIGNMENT_POWER, use it instead of constant 3.

	* ld-arm/farcall-arm-nacl.d: New file.
	* ld-arm/farcall-arm-nacl-pic.d: New file.
	* ld-arm/farcall-data-nacl.d: New file.
	* ld-arm/arm-elf.exp (armeabitests_common): Add extra element to
	"action" lists for those cases to use a different dump file for NaCl
	targets.
	Massage $armeabitests_common to drop the extra element or the one
	before it, depending on [istarget "arm*-*-nacl*"].

	* ld-arm/arm-elf.exp (armelftests_common): Move all "Cortex-A8
	erratum fix", Thumb-only and interworking cases to ...
	(armelftests_nonacl): ... here.
	(armeabitests_common): Move all "erratum 760522 fix", Thumb-only
	and interworking cases to ...
	(armeabitests_nonacl): ... here.
2013-07-18 11:24:11 +00:00
Alan Modra 3631583d25 daily update 2013-07-18 00:00:04 +00:00
Alan Modra 7245f25572 daily update 2013-07-17 00:00:04 +00:00
Alan Modra 61e0fe8313 daily update 2013-07-16 00:00:04 +00:00
Maciej W. Rozycki d929bc19b9 include/elf/
* mips.h (Tag_GNU_MIPS_ABI_FP): Remove comment.
	(Val_GNU_MIPS_ABI_FP_ANY, Val_GNU_MIPS_ABI_FP_DOUBLE,
	Val_GNU_MIPS_ABI_FP_SINGLE, Val_GNU_MIPS_ABI_FP_SOFT,
	Val_GNU_MIPS_ABI_FP_64): New enum.

	bfd/
	* elfxx-mips.c (mips_elf_merge_obj_attributes): Replace hardcoded
	magic numbers with enum values.

	binutils/
	* readelf.c (display_mips_gnu_attribute): Replace hardcoded magic
	numbers with enum values.

	gdb/
	* mips-tdep.c (mips_gdbarch_init): Replace hardcoded magic
	numbers with enum values.
2013-07-15 15:07:30 +00:00
Alan Modra 2f1bafe9f6 daily update 2013-07-15 00:00:04 +00:00
Alan Modra 5b581c3147 daily update 2013-07-14 00:00:04 +00:00
Alan Modra 0c28503dd3 daily update 2013-07-13 00:00:04 +00:00
Roland McGrath 7e11d300d1 bfd/
* reloc.c: Add BFD_RELOC_390_PC12DBL, BFD_RELOC_390_PLT12DBL,
	BFD_RELOC_390_PC24DBL, BFD_RELOC_390_PLT24DBL (should have
	been added here with 2013-07-05 elf32-s390.c change).
	* bfd-in2.h: Regenerate (no-op).
	* libbfd.h: Regenerate (no-op).
2013-07-12 20:40:13 +00:00
Maciej W. Rozycki ba92f88752 include/elf/
* mips.h (EF_MIPS_NAN2008): New macro.

	bfd/
	* elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Handle
	EF_MIPS_NAN2008.
	(_bfd_mips_elf_print_private_bfd_data): Likewise.

	binutils/
	* readelf.c (get_machine_flags): Handle EF_MIPS_NAN2008.

	gas/
	* config/tc-mips.c (mips_flag_nan2008): New variable.
	(options): Add OPTION_NAN enum value.
	(md_longopts): Handle it.
	(md_parse_option): Likewise.
	(s_nan): New function.
	(mips_elf_final_processing): Handle EF_MIPS_NAN2008.
	(md_show_usage): Add -mnan.

	* doc/as.texinfo (Overview): Add -mnan.
	* doc/c-mips.texi (MIPS Opts): Document -mnan.
	(MIPS NaN Encodings): New node.  Document .nan directive.
	(MIPS-Dependent): List the new node.

	gas/testsuite/
	* gas/mips/nan-2008-1.d: New test.
	* gas/mips/nan-2008-2.d: New test.
	* gas/mips/nan-2008-3.d: New test.
	* gas/mips/nan-2008-4.d: New test.
	* gas/mips/nan-legacy-1.d: New test.
	* gas/mips/nan-legacy-2.d: New test.
	* gas/mips/nan-legacy-3.d: New test.
	* gas/mips/nan-legacy-4.d: New test.
	* gas/mips/nan-legacy-5.d: New test.
	* gas/mips/nan-error-1.l: New list test.
	* gas/mips/nan-error-2.l: New list test.
	* gas/mips/nan-2008-override.s: New test source.
	* gas/mips/nan-2008.s: New test source.
	* gas/mips/nan-legacy-override.s: New test source.
	* gas/mips/nan-legacy.s: New test source.
	* gas/mips/nan-error-1.s: New test source.
	* gas/mips/nan-error-2.s: New test source.
	* gas/mips/mips.exp: Run the new tests.

	ld/testsuite/
	* ld-mips-elf/nan-2008.d: New test.
	* ld-mips-elf/nan-legacy.d: New test.
	* ld-mips-elf/nan-mixed-1.d: New test.
	* ld-mips-elf/nan-mixed-2.d: New test.
	* ld-mips-elf/nan-2008.s: New test source.
	* ld-mips-elf/nan-legacy.s: New test source.
2013-07-12 15:58:15 +00:00
Alan Modra 627e05482b daily update 2013-07-12 00:00:05 +00:00
Alan Modra 99e17d3840 daily update 2013-07-11 00:00:04 +00:00
Alan Modra 8089a358de daily update 2013-07-10 00:00:03 +00:00
Tristan Gingold 534523715a 2013-07-09 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (struct vms_private_data_struct): Remove
	flag_hash_long_names and flag_show_after_trunc.
	(hash_string): Remove.
	(_bfd_vms_length_hash_symbol): Remove.
	(alpha_vms_write_exec): Remove call to _bfd_vms_length_hash_symbol.
	(_bfd_vms_write_egsd): Likewise.  Rewrite condition.
	(_bfd_vms_write_ehdr): Remove code that set removed flags.
	(_bfd_vms_write_etir): Remove call to _bfd_vms_length_hash_symbol.
	(vms_bfd_is_local_label_name): Remove trace call.
2013-07-09 10:12:22 +00:00
Tristan Gingold 787548c84f 2013-07-09 Tristan Gingold <gingold@adacore.com>
* hosts/alphavms.h: Include config.h and ansidecl.h, remove useless
	macros.
	* configure.com: Adjust to match changes in configure.
	* makefile.vms (OBJS): Update list.
2013-07-09 07:03:53 +00:00
Alan Modra 98fdce3de6 daily update 2013-07-09 00:00:04 +00:00
Alan Modra 93161bef4c daily update 2013-07-08 00:00:04 +00:00
Alan Modra b8ad3e9d18 daily update 2013-07-07 00:00:03 +00:00
Alan Modra f41884c3a0 daily update 2013-07-06 00:00:04 +00:00
Tristan Gingold 2d63fb6c15 2013-07-05 Tristan Gingold <gingold@adacore.com>
* coffcode.h (coff_write_object_contents): Use ".ovrflo" name for
        overflow sections.
2013-07-05 10:20:49 +00:00
Andreas Krebbel a63cc5f70c 2013-07-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
bfd/
	* elf32-s390.c: Rewrite GOT accesses using larl if possible.
	* elf64-s390.c: Likewise.

ld/testsuite/
	* ld-s390/gotreloc-1.s: New file.
	* ld-s390/gotreloc-1.ver: New file.
	* ld-s390/gotreloc_31-1.dd: New file.
	* ld-s390/gotreloc_64-1.dd: New file.
	* ld-s390/s390.exp: Run the new tests. Run 31 bit tests also on 64
	bit.
2013-07-05 09:51:00 +00:00
Andreas Krebbel fb798c50b2 2013-07-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
opcodes/
	    * s390-opc.c (J12_12, J24_24): New macros.
	    (INSTR_MII_UPI): Rename to INSTR_MII_UPP.
	    (MASK_MII_UPI): Rename to MASK_MII_UPP.
	    * s390-opc.txt: Rename MII_UPI to MII_UPP for bprp instruction.

include/elf/
	    * s390.h: Add new relocs R_390_PC12DBL, R_390_PLT12DBL,
	    R_390_PC24DBL, and R_390_PLT24DBL.

gas/testsuite/
	    * gas/s390/zarch-zEC12.s: Change bprp second operand and add
	    variants requiring relocations.
	    * gas/s390/zarch-zEC12.d: Likewise.

gas/
	    * config/tc-s390.c (md_gather_operands, md_apply_fix): Support new
	    relocs.
bfd/
	    * elf32-s390.c: Add new relocation definitions R_390_PC12DBL,
	    R_390_PLT12DBL, R_390_PC24DBL, and R_390_PLT24DBL.
	    (elf_s390_reloc_type_lookup, elf_s390_check_relocs)
	    (elf_s390_gc_sweep_hook, elf_s390_relocate_section): Support new
	    relocations.
	    * elf64-s390.c: See elf32-s390.c
	    * bfd-in2.h: Add new relocs to enum bfd_reloc_code_real.
	    * libbfd.h: Add new reloc strings.
2013-07-05 09:45:44 +00:00
Alan Modra 99953cc6b4 daily update 2013-07-05 00:00:04 +00:00
Alan Modra 0220e44b4c daily update 2013-07-04 00:00:04 +00:00
Marcus Shawcroft 7bcccb57fb [AArch64] Tidy up switch statements in elfnn-aarch64.c 2013-07-03 17:23:24 +00:00
Alan Modra 5295321caf * elf64-ppc.c (ppc64_elf_func_desc_adjust): Don't hide .TOC.
when relocatable.  Don't change root.type or type here.
	(ppc64_elf_set_toc): Set type of .TOC. to STT_OBJECT.
2013-07-03 09:42:56 +00:00
Alan Modra ba8ca3e739 bfd/
* elf64-ppc.c (struct ppc_stub_hash_entry): Delete "addend".
	(ppc64_elf_size_stubs): Don't set "addend".
	(ppc64_elf_relocate_section): Don't allow calls via
	toc-adjusting stubs without a following nop even in an
	executable, except for self-calls and both libc_start_main
	and .libc_start_main.
gold/
	* powerpc.cc (Target_powerpc::Relocate::relocate): Update self-call
	comment.
2013-07-03 02:22:35 +00:00
Alan Modra c66bb0eea0 * elf64-ppc.c (ppc64_elf_func_desc_adjust): Hide ".TOC.". 2013-07-03 00:45:50 +00:00
Alan Modra c21a6e9987 daily update 2013-07-03 00:00:04 +00:00
Tristan Gingold d5be367d70 2013-07-02 Tristan Gingold <gingold@adacore.com>
* coff-rs6000.c (xcoff_find_nearest_line_discriminator): Add missing
 	line.
2013-07-02 12:58:17 +00:00
Tristan Gingold b1a49096ef 2013-07-02 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (_bfd_generic_find_nearest_line_discriminator): Define.
	(_bfd_vms_find_nearest_line_discriminator): New function.
2013-07-02 09:42:25 +00:00
Tristan Gingold 9a1ada6cce 2013-07-02 Tristan Gingold <gingold@adacore.com>
* coff-rs6000.c (xcoff_create_csect_from_smclas): Handle more smclas.
2013-07-02 07:38:51 +00:00
Tristan Gingold a685c4e6d5 2013-07-02 Tristan Gingold <gingold@adacore.com>
* coff-rs6000.c (xcoff_find_nearest_line_discriminator): New function.
	(rs6000coff_vec): Reference it.
2013-07-02 07:34:38 +00:00
Marcus Shawcroft cc0efaa802 [AArch64] Fix creation of .got and placement of _GLOBAL_OFFSET_TABLE_ 2013-07-02 06:39:26 +00:00
Marcus Shawcroft 9d115506b6 [AArch64] Adjust testcases for move of &_DYNAMIC to got[0]. 2013-07-02 06:37:33 +00:00
Alan Modra f40da81ba5 bfd/
* elf64-ppc.c (ppc64_elf_relocate_section): Set "relocation" for
	.TOC. after relocatable check.
gas/
	* config/tc-ppc.c (ppc_elf_adjust_symtab): Don't make .TOC. weak.
2013-07-02 00:25:08 +00:00
Alan Modra 9b17b5e3d7 daily update 2013-07-02 00:00:04 +00:00
Alan Modra 1c865ab2fb bfd/
* elf64-ppc.h (ppc64_elf_toc): Delete.
	(ppc64_elf_set_toc): Declare.
	* elf64-ppc.c (ppc64_elf_toc_reloc): Replace call to ppc64_elf_toc
	with call the ppc64_elf_set_toc.
	(ppc64_elf_toc_ha_reloc, ppc64_elf_toc64_reloc): Likewise.
	(ppc64_elf_start_multitoc_partition): Likewise.
	(struct ppc_link_hash_table): Delete dot_toc_dot.  Replace all uses
	with elf.hgot.
	(ppc64_elf_process_dot_syms): Don't make a fake function descriptor
	for ".TOC.".
	(ppc64_elf_check_relocs): Mark sections with a reference to .TOC.
	as needing a toc pointer.
	(ppc64_elf_size_stubs): Don't set dot_toc_dot here.
	(ppc64_elf_set_toc): Rename from ppc64_elf_toc.  Add info param.
	Set elf.hgot value.
ld/
	* emultempl/ppc64elf.em: (ppc_layout_sections_again): Call
	ppc64_elf_set_toc rather than ppc64_elf_toc/_bfd_set_gp_value.
	(gld${EMULATION_NAME}_after_allocation): Likewise.
2013-07-01 03:45:05 +00:00
Alan Modra d48b453377 daily update 2013-07-01 00:00:04 +00:00
Alan Modra 297ad64137 daily update 2013-06-30 00:00:04 +00:00
Alan Modra 193b10e376 daily update 2013-06-29 00:00:03 +00:00
H.J. Lu a69ed7f7aa Handle R_X86_64_DTPOFF64
bfd/

	PR ld/15685
	* elf64-x86-64.c (elf_x86_64_relocate_section): Handle
	R_X86_64_DTPOFF64.

ld/testsuite/

	PR ld/15685
	* ld-x86-64/tlsg.s: Add a test for R_X86_64_DTPOFF64.
	* ld-x86-64/tlsg.sd: Updated.
2013-06-28 15:07:55 +00:00
Nick Clifton c3b6407fbe PR ld/15302
* elf32-arm.c (allocate_dynrelocs_for_symbol): Revert previous patch.
2013-06-28 12:22:42 +00:00
Alan Modra 11f0d7ea96 daily update 2013-06-28 00:00:04 +00:00
Marcus Shawcroft 8db339a667 [AArch64] Fix the placement of &_DYNAMIC in the GOT. 2013-06-27 15:47:55 +00:00