Commit graph

7713 commits

Author SHA1 Message Date
Alan Modra
383b05fbab daily update 2009-07-30 00:00:09 +00:00
Alan Modra
25f231068e * elf32-ppc.c (ppc_elf_check_relocs): Always set up sections
used by indirect function support.  Count dynamic relocs for
	ifunc syms.
	(ppc_elf_adjust_dynamic_symbol): Tweak for ifunc.
	(allocate_dynrelocs): Allocate all non-dynamic ifunc plt entries
	in iplt and their relocs in reliplt.  Don't make ifunc syms
	dynamic.  Allocate got entry relocs for non-dynamic ifunc in
	reliplt.  Handle other dynamic relocs for ifunc.
	(ppc_elf_size_dynamic_sections): Alloc dyn relocs for static
	ifunc in reliplt, likewise relocs for got against local ifunc.
	Typo fix on reliplt size adjust.
	(ppc_elf_relocate_section): Don't use plt scheme of allocating
	relocs 1-1 with entries for iplt, instead just add using
	reloc_count.  Write got relocs and dyn relocs for ifunc to reliplt.
	Error on invalid ifunc dyn relocs.
	(ppc_elf_finish_dynamic_symbol): Adjust for non-dynamic ifunc plt
	in iplt/reliplt.
	* elf64-ppc.c (ppc64_elf_howto_raw): Add R_PPC64_JMP_IREL,
	R_PPC64_REL16, R_PPC64_REL16_LO, R_PPC64_REL16_HI, R_PPC64_REL16_HA.
	(ppc64_elf_reloc_type_lookup): Handle new relocs.
	(ppc64_elf_check_relocs): Likewise.  Count dyn relocs for ifunc.
	(allocate_dynrelocs): As for elf32-ppc.c above.
	(ppc64_elf_size_dynamic_sections): Likewise.
	(ppc_build_one_stub): Put non-dynamic ifunc plt call stubs in iplt,
	and their relocs in reliplt.  Use R_PPC64_JMP_IREL.
	(ppc_size_one_stub): Similarly.
	(ppc64_elf_relocate_section): As for elf32-ppc.c above.  Handle new
	relocs too.
	(ppc64_elf_finish_dynamic_symbol): As for elf32-ppc.c above.
2009-07-29 14:56:38 +00:00
Alan Modra
d1f17c3309 daily update 2009-07-29 00:00:05 +00:00
Hans-Peter Nilsson
80f540b775 * elf64-mmix.c (mmix_elf_relax_section): Revert 2009-05-27
change.  Add note to head comment.
2009-07-28 23:45:22 +00:00
Jan Beulich
4ad4f3cb14 bfd/
2009-07-28  Jan Beulich  <jbeulich@novell.com>

	* archive.c (get_extended_arelt_filename): Remove redundant
	range check on index.
2009-07-28 06:22:01 +00:00
Alan Modra
9d5cc3e1de daily update 2009-07-28 00:00:04 +00:00
Doug Kwan
d8d2f43311 2009-07-27 Doug Kwan <dougkwan@google.com>
* elf32-arm.c (stub_hash_newfunc): Initialize field output_name.
2009-07-27 23:04:05 +00:00
H.J. Lu
9e675548b8 2009-07-27 H.J. Lu <hongjiu.lu@intel.com>
* archures.c bfd_*_arch): Sorted.
	(bfd_archures_list): Likewise.
2009-07-27 14:06:34 +00:00
M R Swami Reddy
86514226a5 2009-07-26 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
* elf32-cr16.c (elf_cr16_final_link_relocate): Add code to handle
       to R_cr16_NUM32 relocation.
2009-07-27 06:52:33 +00:00
Michael Snyder
305f7588d6 2009-07-26 Michael Eager <eager@eagercon.com>
* archures.c: Add bfd_mach_ppc_405
	* bfd-in2.h: Same.
2009-07-27 02:32:49 +00:00
Alan Modra
0297bb899f daily update 2009-07-27 00:00:05 +00:00
Alan Modra
bf48150520 daily update 2009-07-26 00:00:05 +00:00
H.J. Lu
b1995b0179 2009-07-25 H.J. Lu <hongjiu.lu@intel.com>
* cpu-i386.c (bfd_x86_64_arch): Fix comment typos.
	* cpu-l1om.c (bfd_l1om_arch): Likewise.
2009-07-25 15:50:20 +00:00
H.J. Lu
8a9036a406 bfd/
2009-07-25  H.J. Lu  <hongjiu.lu@intel.com>

	* archures.c (bfd_architecture): Add bfd_arch_l1om.
	(bfd_l1om_arch): New.
	(bfd_archures_list): Add &bfd_l1om_arch.
	* bfd-in2.h: Regenerated.

	* config.bfd (targ64_selvecs): Add bfd_elf64_l1om_vec if
	bfd_elf64_x86_64_vec is supported.  Add bfd_elf64_l1om_freebsd_vec
	if bfd_elf64_x86_64_freebsd_vec is supported.
	(targ_selvecs): Likewise.

	* configure.in: Support bfd_elf64_l1om_vec and
	bfd_elf64_l1om_freebsd_vec.
	* configure: Regenerated.

	* cpu-l1om.c: New.

	* elf64-x86-64.c (elf64_l1om_elf_object_p): New.
	(bfd_elf64_l1om_vec): Likewise.
	(bfd_elf64_l1om_freebsd_vec): Likewise.

	* Makefile.am (ALL_MACHINES): Add cpu-l1om.lo.
	(ALL_MACHINES_CFILES): Add cpu-l1om.c.
	* Makefile.in: Regenerated.

	* targets.c (bfd_elf64_l1om_vec): New.
	(bfd_elf64_l1om_freebsd_vec): Likewise.
	(_bfd_target_vector): Add bfd_elf64_l1om_vec and
	bfd_elf64_l1om_freebsd_vec.

binutils/

2009-07-25  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (guess_is_rela): Handle EM_L1OM.
	(dump_relocations): Likewise.
	(get_machine_name): Likewise.
	(get_section_type_name): Likewise.
	(get_elf_section_flags): Likewise.
	(get_symbol_index_type): Likewise.
	(is_32bit_abs_reloc): Likewise.
	(is_32bit_pcrel_reloc): Likewise.
	(is_64bit_abs_reloc): Likewise.
	(is_64bit_pcrel_reloc): Likewise.
	(is_none_reloc): Likewise.

gas/

2009-07-25  H.J. Lu  <hongjiu.lu@intel.com>

	* config/tc-i386.c (cpu_arch): Add l1om.
	(check_cpu_arch_compatible): New.
	(set_cpu_arch): Use it.
	(i386_arch): New.
	(i386_mach): Return bfd_mach_l1om for Intel L1OM.
	(md_show_usage): Display l1om.
	(i386_target_format): Return ELF_TARGET_L1OM_FORMAT if
	cpu_arch_isa_flags.bitfield.cpul1om is set.

	* config/tc-i386.h (TARGET_ARCH): Use (i386_arch ()).
	(i386_arch): New.
	(ELF_TARGET_L1OM_FORMAT): Likewise.

	* doc/c-i386.texi: Document l1om.

gas/testsuite/

2009-07-25  H.J. Lu  <hongjiu.lu@intel.com>

	* gas/i386/l1om.d: New.
	* gas/i386/l1om-inval.l: Likewise.
	* gas/i386/l1om-inval.s: Likewise.

	* gas/i386/i386.exp: Run l1om-inval and l1om.

include/elf/

2009-07-25  H.J. Lu  <hongjiu.lu@intel.com>

	* common.h (EM_L1OM): New.

ld/

2009-07-25  H.J. Lu  <hongjiu.lu@intel.com>

	* configure.tgt (targ64_extra_emuls): Add elf_l1om if elf_x86_64
	is supported.  Add elf_l1om_fbsd if elf_x86_64_fbsd is supported.
	(targ_extra_emuls): Likewise.

	* Makefile.am (ALL_64_EMULATIONS): Add eelf_l1om.o and
	eelf_l1om_fbsd.o
	(eelf_l1om.c): New.
	(eelf_l1om_fbsd.c): Likewise.
	* Makefile.in: Regenerated.

	* emulparams/elf_l1om.sh: New.
	* emulparams/elf_l1om_fbsd.sh: Likewise.

ld/testsuite/

2009-07-25  H.J. Lu  <hongjiu.lu@intel.com>

	* ld-x86-64/abs-l1om.d: New.
	* ld-x86-64/protected2-l1om.d: Likewise.
	* ld-x86-64/protected3-l1om.d: Likewise.

	* ld-x86-64/x86-64.exp: Run abs-l1om, protected2-l1om and
	protected3-l1om.

opcodes/

2009-07-25  H.J. Lu  <hongjiu.lu@intel.com>

	* configure.in: Handle bfd_l1om_arch.
	* disassemble.c (disassembler): Likewise.

	* configure: Regenerated.

	* i386-dis.c (print_insn): Handle bfd_mach_l1om and
	bfd_mach_l1om_intel_syntax.  Use 8 bytes per line for Intel L1OM.

	* i386-gen.c (cpu_flag_init): Set CPU_UNKNOWN_FLAGS to ~CpuL1OM.
	Add CPU_L1OM_FLAGS.
	(cpu_flags): Add CpuL1OM.
	(set_bitfield): Take an argument to set the value field.
	(process_i386_cpu_flag): Support ~CpuXXX and ~(CpuXXX|CpuYYY).
	(process_i386_opcode_modifier): Updated.
	(process_i386_operand_type): Likewise.
	* i386-init.h: Regenerated.
	* i386-tbl.h: Likewise.

	* i386-opc.h (CpuL1OM): New.
	(CpuXsave): Updated.
	(i386_cpu_flags): Add cpul1om.
2009-07-25 14:58:58 +00:00
Alan Modra
b9a850fe64 daily update 2009-07-25 00:00:09 +00:00
Trevor Smigiel
8fdcc58daa include/elf/
* spu.h (R_SPU_ADD_PIC): New.
bfd/
        * reloc.c (BFD_RELOC_SPU_ADD_PIC): Define.
        * bfd-in2.h: Regenerate.
        * libbfd.h: Regenerate.
        * elf32-spu.c (elf_howto_table): Add entries SPU_ADD_PIC.
        (spu_elf_bfd_to_reloc_type): Handle SPU_ADD_PIC.
        (spu_elf_relocate_section): Patch instructions marked by SPU_ADD_PIC.
gas/
        * config/tc-spu.c (md_apply_fix): Handle SPU_ADD_PIC.
        * config/tc-spu.h (tc_fix_adjustable): Don't adjust for SPU_ADD_PIC.
        (TC_FORCE_RELOCATION): Emit relocs for SPU_ADD_PIC.
ld/testsuite/
        * ld-spu/pic.d: New.
        * ld-spu/pic.s: New.
        * ld-spu/picdef.s: New.
2009-07-24 19:51:27 +00:00
Alan Modra
ecefb662c2 daily update 2009-07-24 00:00:08 +00:00
H.J. Lu
9b769489c6 bfd/
2009-07-23  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/10434
	* elf64-x86-64.c (elf64_x86_64_check_relocs): Check executable
	instead of shared for R_X86_64_TPOFF32.
	(elf64_x86_64_relocate_section): Likewise.

ld/testsuite/

2009-07-23  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/10434
	* ld-x86-64/tlsle1.d: New.
	* ld-x86-64/tlsle1.s: Likewise.

	* ld-x86-64/x86-64.exp: Run tlsle1.
2009-07-23 21:22:20 +00:00
Nick Clifton
3e7a7d11f1 * config/obj-elf.c (obj_elf_type): Add code to support a type of
gnu_unique_object.
        * doc/as.texinfo: Document new feature of .type directive.
        * NEWS: Mention support for gnu_unique_object symbol type.

        * common.h (STB_GNU_UNIQUE): Define.

        * NEWS: Mention the linker's support for symbols with a binding of
        STB_GNU_UNIQUE.

        * gas/elf/type.s: Add unique global symbol definition.
        * gas/elf/type.e: Add expected readelf output for global unique
        symbol.

        * elfcpp.h (enum STB): Add STB_GNU_UNIQUE.

        * readelf.c (get_symbol_binding): For Linux targeted files return
        UNIQUE for symbols with the STB_GNU_UNIQUE binding.
        * doc/binutils.texi: Document the meaning of the 'u' symbol
        binding in the output of nm and objdump --syms.

        * elf-bfd.h (struct elf_link_hash_entry): Add unique_global field.
        * elf.c (swap_out_syms): Set binding to STB_GNU_UNIQUE for symbols
        with the BSF_GNU_UNIQUE flag bit set.
        * elfcode.h (elf_slurp_symbol_table): Set the BSF_GNU_UNIQUE flag
        for symbols with STB_GNU_UNIQUE binding.
        * elflink.c (_bfd_elf_merge_symbol): Set unique_global for symbols
        with the STB_GNU_UNIQUE binding.
        (elf_link_add_object_symbols): Set the BSF_GNU_UNIQUE flag for
        symbols with STB_GNU_UNIQUE binding.  Set STB_GNU_UNIQUE for
        symbols with the unique_global field set.
        (elf_link_output_extsym): Set unique_global field for symbols with
        the STB_GNU_UNIQUE binding.
        * syms.c (struct bfd_symbol): Define BSF_GNU_UNIQUE flag bit.
        (bfd_print_symbol_vandf): Print a 'u' character for BSF_GNU_UNIQUE
        symbols.
        (bfd_decode_symclass): Return a 'u' character for BSF_GNU_UNIQUE
        symbols.
        * bfd-in2.h: Regenerate.
2009-07-23 13:00:30 +00:00
Alan Modra
dbd964eb7c daily update 2009-07-23 00:00:05 +00:00
H.J. Lu
5f35ea9c04 2009-07-22 H.J. Lu <hongjiu.lu@intel.com>
* elflink.c (elf_link_output_extsym): Revert the last change.
2009-07-22 23:55:54 +00:00
H.J. Lu
b63cc625a1 2009-07-22 H.J. Lu <hongjiu.lu@intel.com>
PR ld/10433
	 * elflink.c (elf_link_output_extsym): Special case ifunc syms
	 when ref_regular, not def_regular.
2009-07-22 21:30:30 +00:00
Alan Modra
fd685944ea daily update 2009-07-22 00:00:04 +00:00
H.J. Lu
2955ec4c12 bfd/
2009-07-21  H.J. Lu  <hongjiu.lu@intel.com>

	 PR ld/10426
	 * elflink.c (elf_link_add_object_symbols): Turn an IFUNC symbol
	 from a DSO into a normal FUNC symbol.
	 (elf_link_output_extsym): Turn an undefined IFUNC symbol into
	 a normal FUNC symbol.

ld/testsuite/

2009-07-21  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/10426
	* ld-ifunc/ifunc.exp: Check test-1 and libtest-2.so.  Updated.

	* ld-ifunc/test-1.c: New.
	* ld-ifunc/test-2.c: Likewise.
2009-07-21 21:37:26 +00:00
Alan Modra
6a0d81b26f daily update 2009-07-21 00:00:08 +00:00
Alan Modra
0f25197a35 daily update 2009-07-20 00:00:07 +00:00
Alan Modra
651f5b5ba3 daily update 2009-07-19 00:00:04 +00:00
Alan Modra
b7a8a98932 daily update 2009-07-18 00:00:05 +00:00
Nick Clifton
6d30f5b2dc * elfxx-mips.c (LOAD_INTERLOCKS_P): New define.
(_bfd_mips_elf_size_dynamic_sections): For CPUs without load
        interlocking, the last PLT entry needs a nop in the branch delay slot.
        (_bfd_mips_elf_finish_dynamic_symbol): For CPUs with load itnerlocking,
        output the last two PLT entries in reverse order.

        * ld-mips-elf/pic-and-nonpic-3b.dd,
        ld-mips-elf/pic-and-nonpic-5b.dd,
        ld-mips-elf/pic-and-nonpic-6-o32.dd: Updated to use new PLT entries.
2009-07-17 09:46:00 +00:00
Alan Modra
98472ae205 daily update 2009-07-17 00:00:05 +00:00
H.J. Lu
1f85278f17 bfd/
2009-07-16  H.J. Lu  <hongjiu.lu@intel.com>

	* elf32-i386.c (elf_i386_relocate_section): Don't get local
	STT_GNU_IFUNC symbol for relocatable link.
	* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.

ld/testsuite/

2009-07-16  H.J. Lu  <hongjiu.lu@intel.com>

	* ld-ifunc/ifunc-5r-local-i386.d: New.
	* ld-ifunc/ifunc-5r-local-x86-64.d: Likewise.
2009-07-16 14:23:12 +00:00
Alan Modra
9fd2ab21d7 daily update 2009-07-16 00:00:05 +00:00
Alan Modra
d30cf375e1 daily update 2009-07-15 00:00:05 +00:00
Alan Modra
650b89be7e daily update 2009-07-14 00:00:05 +00:00
Alan Modra
d990c8ab76 daily update 2009-07-13 00:00:05 +00:00
Alan Modra
5a12aa1e46 daily update 2009-07-12 00:00:05 +00:00
Alan Modra
43dd447d91 daily update 2009-07-11 00:00:05 +00:00
H.J. Lu
f07749bbae 2009-07-10 H.J. Lu <hongjiu.lu@intel.com>
* bfdio.c (bfd_iovec): Add comments for bmmap.
	* bfd-in2.h: Regenerated.
2009-07-10 18:38:27 +00:00
H.J. Lu
8455dd2cf7 bfd/
2009-07-10  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerated.

binutils/

2009-07-10  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerated.

gas/

2009-07-10  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerated.
2009-07-10 18:27:01 +00:00
Doug Kwan
cedfb17907 2009-07-10 Doug Kwan <dougkwan@google.com>
* elf32-arm.c (stub_hash_newfunc): Initialize fields
	target_addend and orig_insn.
2009-07-10 16:56:15 +00:00
Tom Tromey
fa8f86ff3b bfd
* Makefile.am (dwarf2.lo): Use dwarf2.h, not elf/dwarf2.h.
	(elf-eh-frame.lo): Likewise.
	(elf32-bfin.lo): Likewise.
	(elf32-frv.lo): Likewise.
	(elf32-xc16x.lo): Likewise.
	* Makefile.in: Rebuild.
	* dwarf2.c: Included dwarf.h, not elf/dwarf2.h.
	* elf-eh-frame.c: Likewise.
	* elf32-bfin.c: Likewise.
	* elf32-frv.c: Likewise.
	* elf32-xc16x.c: Likewise.
binutils
	* Makefile.am (dwarf.o): Refer to dwarf2.h, not elf/dwarf2.h.
	* Makefile.in: Rebuild.
	* dwarf.c: Include dwarf2.h, not elf/dwarf2.h.
gas
	* Makefile.am (DEPTC_alpha_ecoff): Refer to dwarf2.h, not
	elf/dwarf2.h.
	(DEPTC_alpha_elf): Likewise.
	(DEPTC_alpha_evax): Likewise.
	(DEPTC_arm_elf): Likewise.
	(DEPTC_hppa_elf): Likewise.
	(DEPTC_i386_aout): Likewise.
	(DEPTC_i386_coff): Likewise.
	(DEPTC_i386_elf): Likewise.
	(DEPTC_m68k_aout): Likewise.
	(DEPTC_m68k_coff): Likewise.
	(DEPTC_m68k_elf): Likewise.
	(DEPTC_mips_coff): Likewise.
	(DEPTC_mips_ecoff): Likewise.
	(DEPTC_mips_elf): Likewise.
	(DEPTC_ppc_coff): Likewise.
	(DEPTC_ppc_elf): Likewise.
	(DEPTC_s390_elf): Likewise.
	(DEPTC_sh_coff): Likewise.
	(DEPTC_sh_elf): Likewise.
	(DEPTC_sh64_elf): Likewise.
	(DEPTC_sparc_aout): Likewise.
	(DEPTC_sparc_coff): Likewise.
	(DEPTC_sparc_elf): Likewise.
	(as.o): Likewise.
	(dwarf2dbg.o): Likewise.
	(dw2gencfi.o): Likewise.
	(ehopt.o): Likewise.
	(read.o): Likewise.
	* Makefile.in: Rebuild.
	* dw2gencfi.h: Include dwarf2.h, not elf/dwarf2.h.
	* dwarf2dbg.c: Likewise.
	* ehopt.c: Likewise.
gdb
	* dwarf2-frame.c: Include dwarf2.h, not elf/dwarf2.h.
	* dwarf2expr.c: Likewise.
	* dwarf2loc.c: Likewise.
	* dwarf2read.c: Likewise.
	* sh-tdep.c: Likewise.
	* xtensa-tdep.c: Likewise.
include
	* dwarf2.h: New file, moved from elf/.
include/elf

	* dwarf2.h: Move to `..'.
2009-07-10 15:27:04 +00:00
Julian Brown
33c6a8fcd6 * elf32-arm.c (arm_build_one_stub): Use the hash entry of the
symbol a stub entry is derived from, not the entry for the stub
	itself, in call to elf32_arm_final_link_relocate.
2009-07-10 14:57:00 +00:00
H.J. Lu
1d77084592 bfd/
2009-07-10  H.J. Lu  <hongjiu.lu@intel.com>

	* elf.c (_bfd_elf_get_synthetic_symtab): Remove leading zeros
	when reporting  addends.


ld/testsuite/

2009-07-10  H.J. Lu  <hongjiu.lu@intel.com>

	* ld-ifunc/ifunc-1-local-x86.d: Updated.
	* ld-ifunc/ifunc-1-x86.d: Likewise.Likewise.
	* ld-ifunc/ifunc-2-local-x86-64.d: Likewise.Likewise.
	* ld-ifunc/ifunc-2-x86-64.d: Likewise.
	* ld-ifunc/ifunc-3a-x86.d: Likewise.Likewise.
2009-07-10 14:03:03 +00:00
Alan Modra
52cfded73c * elf32-spu.c (spu_elf_size_stubs): Do set up soft-icache manager
data even when no stubs.
	(spu_elf_place_overlay_data, spu_elf_build_stubs): Adjust.
2009-07-10 14:00:38 +00:00
Alan Modra
e054468f6c STT_GNU_IFUNC support for PowerPC. 2009-07-10 12:19:58 +00:00
Alan Modra
041de40dc8 * elf.c (_bfd_elf_get_synthetic_symtab): Report addends. 2009-07-10 10:33:19 +00:00
Alan Modra
7ae26bc141 * elf-bfd.h (struct elf_link_hash_entry): Clarify ref_regular
and ref_regular_nonweak comment.
	* elflink.c (elf_link_output_extsym): Special case ifunc syms
	when def_regular, not ref_regular.
	(elf_link_add_object_symbols): Don't set needs_plt on ifunc syms,..
	* elf32-i386.c (elf_i386_check_relocs): ..set it here instead..
	* elf64-x86-64.c (elf64_x86_64_check_relocs): ..and here.
2009-07-10 10:04:20 +00:00
Alan Modra
af7b385cb9 daily update 2009-07-10 00:00:05 +00:00
Alan Modra
9c4d0c1fb8 * elf32-spu.c (mark_functions_via_relocs): Init broken_cycle field
of malloc'd struct call_info.
	(pasted_function): Likewise, priority too.
2009-07-09 10:58:06 +00:00
Alan Modra
d66883802f daily update 2009-07-09 00:00:04 +00:00