Commit Graph

10377 Commits

Author SHA1 Message Date
Alan Modra 73f91bba7b daily update 2013-04-08 00:00:05 +00:00
Alan Modra fdcdfbe835 daily update 2013-04-07 00:00:06 +00:00
Alan Modra 198f1157c9 * elf32-ppc.c (ppc_elf_check_relocs): Use SYMBOLIC_BIND.
* elf64-ppc.c (ppc64_elf_check_relocs, dec_dynrel_count): Likewise.
2013-04-06 06:44:45 +00:00
Alan Modra ed67aad39d daily update 2013-04-05 23:00:05 +00:00
Nick Clifton c69ba956e3 * elflink.c (elf_link_add_object_symbols): Revert accidental commit. 2013-04-05 09:08:28 +00:00
Alan Modra a50dfa9282 daily update 2013-04-04 23:00:05 +00:00
Alan Modra ff5ac77bf5 * bfd.c (bfd_error_type, bfd_errmsgs): Add bfd_error_missing_dso.
* bfd-in2.h: Regenerate.
	* elflink.c (elf_link_add_object_symbols): Use new error.
2013-04-04 14:38:01 +00:00
Alan Modra 5bbdeca4e8 daily update 2013-04-03 23:00:04 +00:00
Nick Clifton 41702d50f7 * elf32-v850.c (v850_elf_is_target_special_symbol): New function.
(bfd_elf32_bfd_is_target_special_symbol): Define.

	* v850.h (V850_INVERSE_PCREL): Define.

	* v850-dis.c (print_value): With V850_INVERSE_PCREL compute the
	destination address by subtracting the operand from the current
	address.
	* v850-opc.c (insert_u16_loop): Disallow negative offsets.  Store
	a positive value in the insn.
	(extract_u16_loop): Do not negate the returned value.
	(D16_LOOP): Add V850_INVERSE_PCREL flag.

	(ceilf.sw): Remove duplicate entry.
	(cvtf.hs): New entry.
	(cvtf.sh): Likewise.
	(fmaf.s): Likewise.
	(fmsf.s): Likewise.
	(fnmaf.s): Likewise.
	(fnmsf.s): Likewise.
	(maddf.s): Restrict to E3V5 architectures.
	(msubf.s): Likewise.
	(nmaddf.s): Likewise.
	(nmsubf.s): Likewise.
2013-04-03 14:42:10 +00:00
Nick Clifton cb8af559c1 * elf64-aarch64.c (elf64_aarch64_gc_sweep_hook): Use
elf64_aarch64_locals to get local GOT reference counts.

        * ld-aarch64/gc-relocs-tlsle.s: New gc section test.
        * ld-aarch64/gc-relocs-tlsle.s: Likewise
        * ld-aarch64/gc-relocs-tlsgd.s: Likewise
        * ld-aarch64/gc-relocs-tlsdesc.s: Likewise
        * ld-aarch64/gc-relocs-312.s: Likewise
        * ld-aarch64/gc-relocs-311.s: Likewise
        * ld-aarch64/gc-relocs-309.s: Likewise
        * ld-aarch64/gc-start.s: Likewise
        * ld-aarch64/gc-got-relocs.d: Update expected objdump
        * ld-aarch64/gc-tls-relocs.d: Likewise
        * ld-aarch64/aarch64-elf.exp: add test
2013-04-03 14:21:18 +00:00
DJ Delorie 1122dc88f5 * elf32-rl78.c (GET_RELOC): Assert that there are relocs to get.
(rl78_elf_relax_section): Only fetch the next reloc if there is
one expected.
2013-04-02 23:29:51 +00:00
Alan Modra 2b6759ceee daily update 2013-04-02 23:00:05 +00:00
Alan Modra c4313823bd daily update 2013-04-01 23:00:05 +00:00
Alan Modra 3fce8b7088 daily update 2013-03-31 23:00:05 +00:00
Alan Modra 6f28a035d3 daily update 2013-03-30 23:00:05 +00:00
Alan Modra 81fbe831fe PR ld/15323
bfd/
	* elf-m10300.c (mn10300_elf_check_relocs): Set non_ir_ref for
	global symbols referenced by relocs.
	* elf32-arm.c (elf32_arm_check_relocs): Likewise.
	* elf32-bfin.c (bfin_check_relocs): Likewise.
	* elf32-cr16.c (cr16_elf_check_relocs): Likewise.
	* elf32-cris.c (cris_elf_check_relocs): Likewise.
	* elf32-d10v.c (elf32_d10v_check_relocs): Likewise.
	* elf32-dlx.c (elf32_dlx_check_relocs): Likewise.
	* elf32-fr30.c (fr30_elf_check_relocs): Likewise.
	* elf32-frv.c (elf32_frv_check_relocs): Likewise.
	* elf32-hppa.c (elf32_hppa_check_relocs): Likewise.
	* elf32-i370.c (i370_elf_check_relocs): Likewise.
	* elf32-iq2000.c (iq2000_elf_check_relocs): Likewise.
	* elf32-lm32.c (lm32_elf_check_relocs): Likewise.
	* elf32-m32c.c (m32c_elf_check_relocs): Likewise.
	* elf32-m32r.c (m32r_elf_check_relocs): Likewise.
	* elf32-m68hc1x.c (elf32_m68hc11_check_relocs): Likewise.
	* elf32-m68k.c (elf_m68k_check_relocs): Likewise.
	* elf32-mcore.c (mcore_elf_check_relocs): Likewise.
	* elf32-metag.c (elf_metag_check_relocs): Likewise.
	* elf32-microblaze.c (microblaze_elf_check_relocs): Likewise.
	* elf32-moxie.c (moxie_elf_check_relocs): Likewise.
	* elf32-msp430.c (elf32_msp430_check_relocs): Likewise.
	* elf32-mt.c (mt_elf_check_relocs): Likewise.
	* elf32-nios2.c (nios2_elf32_check_relocs): Likewise.
	* elf32-openrisc.c (openrisc_elf_check_relocs): Likewise.
	* elf32-ppc.c (ppc_elf_check_relocs): Likewise.
	* elf32-rl78.c (rl78_elf_check_relocs): Likewise.
	* elf32-s390.c (elf_s390_check_relocs): Likewise.
	* elf32-score.c (s3_bfd_score_elf_check_relocs): Likewise.
	* elf32-score7.c (s7_bfd_score_elf_check_relocs): Likewise.
	* elf32-sh.c (sh_elf_check_relocs): Likewise.
	* elf32-tic6x.c (elf32_tic6x_check_relocs): Likewise.
	* elf32-tilepro.c (tilepro_elf_check_relocs): Likewise.
	* elf32-v850.c (v850_elf_check_relocs): Likewise.
	* elf32-vax.c (elf_vax_check_relocs): Likewise.
	* elf32-xstormy16.c (xstormy16_elf_check_relocs): Likewise.
	* elf32-xtensa.c (elf_xtensa_check_relocs): Likewise.
	* elf64-aarch64.c (elf64_aarch64_check_relocs): Likewise.
	* elf64-alpha.c (elf64_alpha_check_relocs): Likewise.
	* elf64-hppa.c (elf64_hppa_check_relocs): Likewise.
	* elf64-ia64-vms.c (elf64_ia64_check_relocs): Likewise.
	* elf64-mmix.c (mmix_elf_check_relocs): Likewise.
	* elf64-ppc.c (ppc64_elf_check_relocs): Likewise.
	* elf64-s390.c (elf_s390_check_relocs): Likewise.
	* elf64-sh64.c (sh_elf64_check_relocs): Likewise.
	* elfnn-ia64.c (elfNN_ia64_check_relocs): Likewise.
	* elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Likewise.
	* elfxx-tilegx.c (tilegx_elf_check_relocs): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_check_relocs): Likewise.  Don't
	test indirect/warning links for NULL.
ld/testsuite/
	* ld-plugin/lto.exp (pr15323a.c): Compile without -flto rather
	than using -r to effectively strip out lto info.
2013-03-30 10:14:15 +00:00
H.J. Lu 61315175ad Set non_ir_ref if a symbol is referenced by a non-shared object
bfd/

	PR ld/15323
	* elf32-i386.c (elf_i386_check_relocs): Set non_ir_ref if a
	symbol is referenced by a non-shared object.
	* elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.

ld/testsuite/

	PR ld/15323
	* ld-plugin/lto.exp (lto_link_tests): Add pr15323a-r.o.
	(lto_run_tests): Add a test for PR ld/15323.

	* ld-plugin/pr15323.out: New file.
	* ld-plugin/pr15323a.c: Likewise.
	* ld-plugin/pr15323b.c: Likewise.
2013-03-30 00:38:39 +00:00
Alan Modra 6bf547f009 daily update 2013-03-29 23:00:05 +00:00
Kaz Kojima a6f713fc44 * elf32-sh.c (sh_elf_relocate_section): Suppress warnings for
R_SH_REL32 relocations against undefined weak symbols.
2013-03-28 23:52:44 +00:00
Alan Modra 9bf7063f22 daily update 2013-03-28 23:00:05 +00:00
Alan Modra 19e08130ee * elf64-ppc.c (struct ppc_dyn_relocs): New.
(ppc64_elf_check_relocs): Separate dynrel counts for local syms
	into ifunc and non-ifunc.
	(dec_dynrel_count): Pass in sym rather than sym_sec.  Handle
	separate ifunc/non-ifunc dynrel counts.
	(allocate_got): Always use reliplt for ifunc.
	(allocate_dynrelocs): Likewise.
	(ppc64_elf_size_dynamic_sections): Likewise.
	(ppc64_elf_layout_multitoc): Likewise.
	(ppc64_elf_relocate_section): Likewise.
2013-03-28 13:36:32 +00:00
Alan Modra f95f8542c5 * elf32-ppc.c (struct ppc_dyn_relocs): New.
(ppc_elf_check_relocs): Separate dynrel counts for local syms
	into ifunc and non-ifunc.
	(allocate_dynrelocs): Always put ifunc relocs into reliplt.
	(ppc_elf_size_dynamic_sections): Likewise.
	(ppc_elf_relocate_section): Likewise.
2013-03-28 07:07:25 +00:00
Alan Modra d7543b9d55 daily update 2013-03-27 23:00:05 +00:00
Alan Modra 7e612e9848 * elf-bfd.h (enum elf_reloc_type_class): Add reloc_class_ifunc.
(struct elf_backend_data <elf_backed_reloc_type_class>): Add
	bfd_link_info* and asection* params.
	(_bfd_elf_reloc_type_class): Likewise.
	* elf.c (_bfd_elf_reloc_type_class): Likewise.
	* elflink.c (elf_link_sort_cmp2): Sort first on reloc class.
	(elf_link_sort_relocs): Update elf_backed_reloc_type_class call.
	* elf32-ppc.c (ppc_elf_reloc_type_class): Return reloc_class_ifunc
	for any reliplt reloc.  Don't return reloc_class_plt for
	R_PPC_REL24 and R_PPC_ADDR24.
	* elf64-ppc.c (allocate_got): Formatting.
	(ppc64_elf_reloc_type_class): Return reloc_class_ifunc for any
	reliplt reloc.
	* elf-m10300.c, * elf32-arm.c, * elf32-bfin.c, * elf32-cr16.c,
	* elf32-cris.c, * elf32-hppa.c, * elf32-i386.c, * elf32-lm32.c,
	* elf32-m32r.c, * elf32-m68k.c, * elf32-metag.c, * elf32-nios2.c,
	* elf32-s390.c, * elf32-sh.c, * elf32-sparc.c, * elf32-tilepro.c,
	* elf32-vax.c, * elf32-xtensa.c, * elf64-aarch64.c, * elf64-alpha.c,
	* elf64-hppa.c, * elf64-ia64-vms.c, * elf64-s390.c, * elf64-sparc.c,
	* elf64-x86-64.c, * elfnn-ia64.c, * elfxx-tilegx.c, * elfxx-tilegx.h:
	Add extra params to the various reloc_type_class functions.
2013-03-27 13:37:51 +00:00
Alan Modra 0bed072fb1 * elf32-ppc.c (ppc_elf_check_relocs): Set PLT_IFUNC in local got
masks for all local ifunc syms.
	(allocate_dynrelocs): Don't use htab->relgot for ifunc.
	(ppc_elf_size_dynamic_sections): Likewise.
	(ppc_elf_relocate_section): Likewise.
2013-03-27 13:25:48 +00:00
Will Newton 6f820c855c bfd/ChangeLog:
2013-03-20  Will Newton  <will.newton@linaro.org>

	* elf32-arm.c (elf32_arm_final_link_relocate): Avoid emitting a
	dynamic reloc for symbols with dynindx == -1.
	(allocate_dynrelocs_for_symbol): Avoid allocating space for a
	dynamic reloc for symbols with dynindx == -1.
2013-03-27 09:51:46 +00:00
Will Newton 319438823f bfd/ChangeLog:
2013-03-20  Will Newton  <will.newton@linaro.org>

	* elf32-arm.c (elf32_arm_final_link_relocate): Avoid emitting a
	dynamic reloc for symbols with dynindx == -1.
	(allocate_dynrelocs_for_symbol): Avoid allocating space for a
	dynamic reloc for symbols with dynindx == -1.
2013-03-27 09:48:46 +00:00
Alan Modra 38b0ecc5a7 daily update 2013-03-26 23:00:04 +00:00
Alan Modra ffd65175b8 * elflink.c (_bfd_elf_add_default_symbol): Preserve section
over _bfd_elf_merge_symbol calls.
2013-03-26 07:02:52 +00:00
Alan Modra 3a81e8251e * elflink.c (elf_link_add_object_symbols): Add assertion for
common override alignment check code.  Formatting.
2013-03-26 06:08:14 +00:00
Alan Modra 058c1c6a23 daily update 2013-03-25 23:00:05 +00:00
Alan Modra 4f3fedcf68 * elflink.c (_bfd_elf_merge_symbol): Set old_alignment for
usual common symbols as well as for dynamic.  Add poldbfd param.
	Save old bfd.  Adjust callers.
	(_bfd_elf_add_default_symbol): Add poldbfd param.  Pass "section"
	and "value" by value, not pointer.  Adjust caller.
	(elf_link_add_object_symbols): Combine undef_bfd and old_bfd vars.
	Delete code to set same.  Use old_bfd and old_alignment from
	_bfd_elf_merge_symbol instead.  Add default symbol before
	alignment and size checks.  Wrap overlong lines.
2013-03-25 06:12:06 +00:00
Alan Modra e3c9d23467 * elflink.c (_bfd_elf_add_default_symbol): Delete "override" param.
(elf_link_add_object_symbols): Don't call _bfd_elf_add_default_symbol
	when override is true.
2013-03-25 06:06:35 +00:00
Alan Modra 6c9b78e691 * elflink.c (_bfd_elf_merge_symbol): Use local var holding value
of *sym_hash.
2013-03-25 06:03:48 +00:00
Alan Modra 191c0c4245 * elflink.c (_bfd_elf_merge_symbol): Don't discard TLS symbols here.
Wrap long lines.
	(elf_link_add_object_symbols): Discard TLS symbols for --just-syms
	early in symbol loop.
2013-03-25 06:02:28 +00:00
Alan Modra 5d13b3b319 * elf-bfd.h (struct elf_backend_data <merge_symbol>): Update proto.
(_bfd_elf_init_reloc_shdr): Delete.
	* elf.c (_bfd_elf_init_reloc_shdr): Make static.
	* elf64-x86-64.c (elf_x86_64_merge_symbol): Trim parameters to
	just what is needed.
	* elflink.c (_bfd_elf_merge_symbol): Update bed->merge_symbol call.
2013-03-25 06:00:06 +00:00
Alan Modra f5700e63ea daily update 2013-03-24 23:00:05 +00:00
Alan Modra 5193ca284e daily update 2013-03-23 23:00:04 +00:00
Alan Modra 8a56bd0251 * elf-bfd.h (_bfd_elf_merge_symbol): Delete declaration.
* elflink.c (_bfd_elf_merge_symbol): Make static.
	* elf32-sh-symbian.c (sh_symbian_relocate_section): Don't call
	_bfd_elf_merge_symbol, call _bfd_generic_link_add_one_symbol.
2013-03-23 10:25:02 +00:00
Alan Modra 96f29d96af PR ld/15270
* elflink.c (elf_link_add_object_symbols): Don't set def_regular
	or ref_regular for BFD_PLUGIN owned syms, or have them affect
	def_dynamic/ref_dynamic.
	(_bfd_elf_fix_symbol_flags): Don't set def_regular for BFD_PLUGIN
	owned syms.
2013-03-22 23:35:55 +00:00
Alan Modra 7438a259bc daily update 2013-03-22 23:00:06 +00:00
David S. Miller 209be8d2a9 Fix attribute section output on sparc.
bfd/

	* elfxx-sparc.c (_bfd_sparc_elf_merge_private_bfd_data): Set type of
	hwcaps attribute.
2013-03-22 15:54:21 +00:00
Nick Clifton 5c0df4846e PR ld/14902
* elf32-h8300.c (elf32_h8_relax_delete_bytes): Fix off by one
	errors adjusting relocs and symbols.
2013-03-22 15:53:36 +00:00
Alan Modra 3227bda7a8 daily update 2013-03-21 23:00:05 +00:00
Nick Clifton 81f5558e3d * elf32-h8300 (h8_relax_section): Add new relaxation of mov
@(disp:32,ERx) to mov @(disp:16,ERx).
	(R_H8_DISP32A16): New reloc.
	Comments added and corrected.
	* reloc.c (BFD_RELOC_H8_DISP32A16): New reloc.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.

	* ld.texinfo (H8/300): Add description of relaxation of
	mov @(disp:32,ERx) to mov @(disp:16,ERx).

	* ld-h8300/h8300.exp: Add new relax-7 test on ELF.
	* ld-h8300/relax-2.s: Add other direction and .w/.l variants of
	mov insns.
	* ld-h8300/relax-2.d: Update expected disassembly.
	* ld-h8300/relax-7a.s: New: tests for mov @(disp:32,ERx) -> mov
	@(disp:16,ERx).
	* ld-h8300/relax-7b.s: New: Likewise.
	* ld-h8300/relax-7.d: New: expected disassembly.

	* config/tc-h8300.c (do_a_fix_imm): Add relaxation of mov
	@(disp:32,ERx) to mov @(disp:16,ERx) insns by new reloc
	R_H8_DISP32A16.
	* config/tc-h8300.h: Remove duplicated defines.
2013-03-21 16:08:07 +00:00
Kai Tietz ce63b7b388 * coffgen.c (coff_real_object_p): Make global.
* peicode.h (coff_real_object_p): Add prototype.
	(FILHDR): Defined for COFF_IMAGE_WITH_PE as
	external_PEI_IMAGE_hdr structure.
	(coff_swap_filehdr_in): Handle variable header-size.
	* peXXigen.c (_bfd_XXi_swap_aouthdr_in): Just handle amount
	of directory-entiries as specified in pe-header.
2013-03-21 14:07:08 +00:00
Nick Clifton 088ca6c1e3 PR sim/15286
* elf32-arm.c (bfd_arm_get_mach_from_attributes): Identify XScale,
	iWMMXt and iWMMXt2 processors from attributes.
2013-03-21 10:34:11 +00:00
Alan Modra a6ec22e371 daily update 2013-03-20 23:00:04 +00:00
Alan Modra 8877b5e517 bfd/
* elflink.c (_bfd_elf_make_dynamic_reloc_section): Override
	sh_type according to is_rela.
ld/testsuite/
	* ld-elf/rel.c, ld-elf/relmain.c, ld-elf/relmain.out: New test.
	* ld-elf/shared.exp: Build and run it.
2013-03-20 03:44:56 +00:00
Alan Modra 51753f4ce4 daily update 2013-03-19 23:00:03 +00:00