aboutsummaryrefslogtreecommitdiff
path: root/ld
AgeCommit message (Collapse)AuthorFilesLines
2013-09-20 * libtool.m4 (_LT_ENABLE_LOCK <ld -m flags>): Remove non-canonicalAlan Modra2-5/+15
ppc host match. Support little-endian powerpc linux hosts. Regenerate binutils configure files.
2013-09-182013-09-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>Kyrylo Tkachov2-4/+9
* ld-aarch64/eh-frame.d: Update expected output to allow for 64-bit addresses.
2013-09-18binutils/Tristan Gingold2-0/+6
2013-09-18 Tristan Gingold <gingold@adacore.com> * NEWS: Add marker for 2.24. gas/ 2013-09-18 Tristan Gingold <gingold@adacore.com> * NEWS: Add marker for 2.24. ld/ 2013-09-18 Tristan Gingold <gingold@adacore.com> * NEWS: Add marker for 2.24.
2013-09-17 PR ld/15957Nick Clifton2-6/+19
* deffilep.y (def_file_add_directive): Avoid readin past end of buffer.
2013-09-12 * dwarf.c (dwarf_vmatoa): Rename to dwarf_vmatoa_1 and add aNick Clifton10-262/+275
precision parameter. (dwarf_vmatoa): New wrapper for dwarf_vmatoa_1. (print_dwarf_vma): Use dwarf_vmatoa_1. (SAFE_BYTE_GET): Add check that VAL is big enough to contain AMOUNT bytes. (process_debug_info): Use an unsigned int for the offset size. (process_debug_pubnames): Likewise. (display_debug_aranges): Likewise. (struct Frame_Chunk): Use dwarf_vma type for pc_begin and pc_range fields. (frame_display_row): Use print_dwarf_vma to display dwarf_vma values. (display_debug_frames): Likewise. * binutils-all/x86-64/compressed-1a.d: Update expected output to allow for 64-bit addresses. * ld-elf/eh1.d: Update expected output to allow for 64-bit addresses. * ld-elf/eh2.d: Likewise. * ld-elf/eh3.d: Likewise. * ld-elf/eh4.d: Likewise. * ld-elf/eh5.d: Likewise. * ld-elf/eh6.d: Likewise. * ld-mips-elf/eh-frame1-n64.d: Likewise. * ld-mips-elf/eh-frame2-n64.d: Likewise. * ld-mips-elf/eh-frame3.d: Likewise. * gas/cfi/cfi-alpha-1.d: Update expected output to allow for 64-bit addresses. * gas/cfi/cfi-alpha-3.d: Likewise. * gas/cfi/cfi-arm-1.d: Likewise. * gas/cfi/cfi-common-1.d: Likewise. * gas/cfi/cfi-common-2.d: Likewise. * gas/cfi/cfi-common-3.d: Likewise. * gas/cfi/cfi-common-4.d: Likewise. * gas/cfi/cfi-common-5.d: Likewise. * gas/cfi/cfi-common-6.d: Likewise. * gas/cfi/cfi-common-7.d: Likewise. * gas/cfi/cfi-hppa-1.d: Likewise. * gas/cfi/cfi-i386-2.d: Likewise. * gas/cfi/cfi-i386.d: Likewise. * gas/cfi/cfi-m68k.d: Likewise. * gas/cfi/cfi-mips-1.d: Likewise. * gas/cfi/cfi-ppc-1.d: Likewise. * gas/cfi/cfi-s390-1.d: Likewise. * gas/cfi/cfi-s390x-1.d: Likewise. * gas/cfi/cfi-sh-1.d: Likewise. * gas/cfi/cfi-sparc-1.d: Likewise. * gas/cfi/cfi-sparc64-1.d: Likewise. * gas/cfi/cfi-x86_64.d: Likewise.
2013-09-04ld/testsuite/Yufeng Zhang2-1/+5
2013-09-04 Vidya Praveen <vidyapraveen@arm.com> * ld-arm/export-class.exp: Fix the condition.
2013-08-29 * elf64-x86-64.c (elf_x86_64_check_tls_transition): AllowJakub Jelinek12-12/+435
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-28 PR ld/15896Nick Clifton2-2/+7
* ld.texinfo: Fix uses of MB abbreviation.
2013-08-26bfd/Roland McGrath12-9/+30
* 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-26bfd/Roland McGrath6-5/+22
* 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-24 * ld-elf/comm-data.exp: Use check_shared_lib_support rather thanMaciej W. Rozycki9-21/+96
explicit patterns for test target qualification. Define extra tool flags for *-*-hpux* and tic6x-*-* targets. Link with a linker script. Use alternative patterns for targets that do not eliminate copy relocs, currently mn10300-*-* and vax-*-*. * ld-elf/comm-data2.s: Handle HPUX's `.comm' syntax. * ld-elf/comm-data2.ld: New test linker script. * ld-elf/comm-data2.xd: Match section's VMA too. Ignore ASCII data dump. * ld-elf/comm-data2r.rd: New test pattern. * ld-elf/comm-data2r.sd: New test pattern. * ld-elf/comm-data2r.xd: New test pattern. * ld-mips-elf/comm-data.exp: Use check_shared_lib_support rather than an explicit pattern for test target qualification. Link with a linker script.
2013-08-24 * ld-arm/export-class.exp: Handle non-EABI targets.Maciej W. Rozycki2-3/+13
2013-08-23ld/testsuite/Roland McGrath6-10/+18
* ld-x86-64/ilp32-4-nacl.d: Update for 2013-05-31 gas alignment change. * ld/testsuite/ld-x86-64/tlsbin-nacl.rd: Likewise. * ld/testsuite/ld-x86-64/tlsbindesc-nacl.rd: Likewise. * ld/testsuite/ld-x86-64/tlsdesc-nacl.rd: Likewise. * ld/testsuite/ld-x86-64/tlspic-nacl.rd: Likewise.
2013-08-23ld/Roland McGrath2-1/+6
* emulparams/elf_nacl.sh (nacl_rodata_addr): Don't add in SIZEOF_HEADERS here; elf.sc does it already.
2013-08-23Fix typo.Nick Clifton1-6/+6
2013-08-23 PR binutils/15834Nick Clifton2-1/+6
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 PR ld/15839Nick Clifton2-9/+15
* scripttempl/avr.sc: Do not include gc'able sections into general sections during relocatable links.
2013-08-22 * emultempl/pe.em: Add --disable-large-address-aware option.Nick Clifton3-1/+22
* ld.texinfo (--disable-large-address-aware): Add documentation.
2013-08-22 * ld-powerpc/powerpc.exp: Substitute for le in options_regsub(ld).Alan Modra17-71/+93
Correct ppc64elftests option replacement. (supports_ppc64): Match elf64lppc too. * ld-powerpc/relbrlt.d: Update for little-endian. * ld-powerpc/symtocbase.d: Likewise. * ld-powerpc/tls.t: Likewise. * ld-powerpc/tlsexetoc.g: Likewise. * ld-powerpc/tlsso.d: Likewise. * ld-powerpc/tlsso.g: Likewise. * ld-powerpc/tlstoc.t: Likewise. * ld-powerpc/tlstocso.d: Likewise. * ld-powerpc/tlstocso.g: Likewise. * ld-powerpc/tlstocso.t: Likewise. * ld-powerpc/tocopt.d: Likewise. * ld-powerpc/tocopt2.d: Likewise. * ld-powerpc/tocopt3.d: Likewise. * ld-powerpc/tocopt4.d: Likewise. * ld-powerpc/tocopt5.d: Likewise.
2013-08-15 * ldexp.c: Add LOG2CEIL() builtin function to linker script languageNick Clifton10-4/+96
* ldgram.y: Likewise * ldlex.l: Likewise * NEWS: Mention the new feature. * ld.texinfo: Document the new feature. * ld-scripts/log2.exp: New: Run the new log2 test. * ld-scripts/log2.s: Source for the new test. * ld-scripts/log2.t: Linker script for new test.
2013-08-14 PR ld/15787Nick Clifton12-25/+61
* 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-09 * elf32-rl78.c (rl78_elf_merge_private_bfd_data): Complain if G10Nick Clifton2-0/+6
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-07-31 PR ld/15787Nick Clifton16-43/+164
* 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-27 * ld-vax-elf/export-class-call.dd: New test.Maciej W. Rozycki15-0/+262
* ld-vax-elf/export-class-call.rd: New test. * ld-vax-elf/export-class-call.xd: New test. * ld-vax-elf/export-class-data.dd: New test. * ld-vax-elf/export-class-data.rd: New test. * ld-vax-elf/export-class-data.xd: New test. * ld-vax-elf/export-class.ld: New test linker script. * ld-vax-elf/export-class-call.s: New test source. * ld-vax-elf/export-class-data.s: New test source. * ld-vax-elf/export-class-def.s: New test source. * ld-vax-elf/vax-elf.exp: Run the new tests. * ld-vax-elf/vax-export-class.rd: New test. * ld-vax-elf/vax-export-class.xd: New test. * ld-vax-elf/export-class.exp: New test script.
2013-07-27 bfd/Maciej W. Rozycki7-0/+78
* 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-24Check .gnu.warning section in shared libraryH.J. Lu4-5/+18
PR ld/15762 * ld-elf/shared.exp (build_tests): Check .gnu.warning section in the libbarw.so library. * ld-elf/libbarw.rd: New. * lib/ld-lib.exp (run_cc_link_tests): Support checking on output with warning message.
2013-07-23oops - omitted from previous deltaNick Clifton1-0/+3
2013-07-22oops - omitted fromn previous deltaNick Clifton4-0/+12
2013-07-22 * ld-scripts/script.exp: Use run_dump_test instead ofNick Clifton2-13/+12
ld_simple_link to check the error message. * ld-scripts/align-with-input.d: New file. * ld-scripts/region-alias-1.d: Likewise. * ld-scripts/region-alias-2.d: Likewise. * ld-scripts/region-alias-3.d: Likewise. * ld-scripts/region-alias-4.d: Likewise.
2013-07-19oops - omitted from previous deltaNick Clifton1-0/+12
2013-07-19 * ldgram.y: Add ALIGN_WITH_INPUT output section attribute.Nick Clifton12-32/+79
* ldlang.c: Likewise. * ldlang.h: Likewise. * ldlex.l: Likewise. * mri.c: Likewise. * ld.texinfo: Document new feature. * NEWS: Mention new feature. * ld-scripts/script.exp: Run align with input test. * ld-scripts/align-with-input.t: New file. * ld-scripts/rgn-at8.d: Likewise. * ld-scripts/rgn-at8.t: Likewise.
2013-07-18 * elf32-arm.c (arm_type_of_stub): Don't use ST_BRANCH_TO_ARM forNick Clifton3-2/+7
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 * elf32-arm.c (elf32_arm_stub_long_branch_arm_nacl): New variable.Nick Clifton7-177/+293
(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-12 include/elf/Maciej W. Rozycki8-0/+51
* 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-08 * scripttempl/elf.sc: Handle function names and otherJeff Law2-1/+6
text after .text.unlikely too.
2013-07-082013-07-08 Tristan Gingold <gingold@adacore.com>Tristan Gingold2-6/+11
* scripttempl/ia64vms.sc: Add support of per data and per function sections.
2013-07-052013-07-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>Andreas Krebbel5-0/+49
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-03[PATCH, COMMITTED] [AArch64] Replace the :got_prel19: address modifier with ↵Marcus Shawcroft3-3/+7
:got:
2013-07-02[AArch64] Fix creation of .got and placement of _GLOBAL_OFFSET_TABLE_Marcus Shawcroft8-17/+27
2013-07-02[AArch64] Adjust testcases for move of &_DYNAMIC to got[0].Marcus Shawcroft9-15/+15
2013-07-01Adjust ld-x86-64/tlsg.sdH.J. Lu2-1/+5
* ld-x86-64/tlsg.sd: Adjusted.
2013-07-01bfd/Alan Modra2-4/+8
* 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-06-28Handle R_X86_64_DTPOFF64H.J. Lu3-1/+8
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-26[AArch64, ILP32] Really add ld/emulparams/aarch64elf32.sh that was missedYufeng Zhang2-0/+40
from the previous commit ld/ * emulparams/aarch64elf32.sh: New file.
2013-06-26[AArch64, ILP32] 6/6 Add big-endian targetsYufeng Zhang5-4/+26
ld/ * Makefile.am (ALL_64_EMULATION_SOURCES): Add eaarch64elf32b.c. (eaarch64elf32b.c): New dependency and rule. * Makefile.in: Re-generated. * configure.tgt (aarch64-*-elf): Add aarch64elf32b. (aarch64_be-*-elf, aarch64_be-*-linux*, aarch64-*-linux*): Likewise. * emulparams/aarch64elf32b.sh: New file.
2013-06-26[AArch64, ILP32] 2/6 Parametrize elfnn-aarch64.c and add basic support in ldYufeng Zhang4-4/+24
and gas. bfd/ * Makefile.am (BFD64_BACKENDS): Add elf32-aarch64.lo. (BUILD_CFILES): Add elf32-aarch64.c. (elf32-aarch64.c): New rule for generating from elfnn-aarch64.c. * Makefile.in: Re-generated. * archures.c (bfd_mach_aarch64_ilp32): New define. * bfd-in.h (bfd_elf32_aarch64_init_maps): New declaration. (bfd_elf32_aarch64_set_options): Ditto. (elf32_aarch64_setup_section_lists): Ditto. (elf32_aarch64_next_input_section): Ditto. (elf32_aarch64_size_stubs): Ditto. (elf32_aarch64_build_stubs): Ditto. * bfd-in2.h: Re-generated. * config.bfd (aarch64-*-elf): Add bfd_elf32_littleaarch64_vec and bfd_elf32_bigaarch64_vec. (aarch64-*-linux*): Likewise. (aarch64_be-*-elf): Likewise. (aarch64_be-*-linux*): Likewise. * configure.in (bfd_elf32_bigaarch64_vec) (bfd_elf32_littleaarch64_vec): New. * configure: Re-generated. * cpu-aarch64.c (compatible): Don't allow mixing ilp32 objects with lp64 ones. (bfd_aarch64_arch_ilp32): New. (bfd_aarch64_arch): Link to bfd_aarch64_arch_ilp32. * elfnn-aarch64.c (ARCH_SIZE): New define. (AARCH64_R, AARCH64_R_STR, LOG_FILE_ALIGN): New defines. (GOT_ENTRY_SIZE): Re-define as (ARCH_SIZE / 8). (elf64_aarch64_*): Rename to elfNN_aarch64_*. (ELF64_R_*): Rename to ELFNN_R_*. Plus other paramaterization. * targets.c (bfd_elf32_bigaarch64_vec, bfd_elf32_littleaarch64_vec): New declarations. (_bfd_target_vector): Add bfd_elf32_bigaarch64_vec and bfd_elf32_littleaarch64_vec. gas/ * config/tc-aarch64.c (ilp32_p): New static variable. (elf64_aarch64_target_format): Return the target according to the value of 'ilp32_p'. (md_begin): Determine 'mach' according to the value of 'ilp32_p'. (aarch64_opts): Add support for options '-milp32' and '-mlp64'. (aarch64_dwarf2_addr_size): New function. * config/tc-aarch64.h (aarch64_dwarf2_addr_size): New declaration. (DWARF2_ADDR_SIZE): New define. ld/ * Makefile.am (ALL_64_EMULATION_SOURCES): Add eaarch64elf32.c. (eaarch64elf32.c): New dependency and rule. * Makefile.in: Re-generated. * configure.tgt (aarch64-*-elf): Add aarch64elf32. (aarch64_be-*-elf, aarch64_be-*-linux*, aarch64-*-linux*): Likewise. * emulparams/aarch64elf32.sh: New file.
2013-06-25 bfd/Maciej W. Rozycki4-0/+111
* elfxx-mips.h (_bfd_mips_elf_insn32): New prototype. * elfxx-mips.c (mips_elf_link_hash_table): Add insn32 member. (STUB_MOVE32_MICROMIPS, STUB_JALR32_MICROMIPS): New macros. (MICROMIPS_INSN32_FUNCTION_STUB_NORMAL_SIZE): Likewise. (MICROMIPS_INSN32_FUNCTION_STUB_BIG_SIZE): Likewise. (micromips_insn32_o32_exec_plt0_entry): New variable. (micromips_insn32_o32_exec_plt_entry): Likewise. (_bfd_mips_elf_adjust_dynamic_symbol): Handle insn32 mode. (mips_elf_estimate_stub_size): Likewise. (_bfd_mips_elf_size_dynamic_sections): Likewise. (_bfd_mips_elf_finish_dynamic_symbol): Likewise. (mips_finish_exec_plt): Likewise. (_bfd_mips_elf_relax_section): Likewise. (_bfd_mips_elf_insn32): New function. (_bfd_mips_elf_get_synthetic_symtab): Handle insn32 PLT. gas/ * config/tc-mips.c (mips_set_options): Add insn32 member. (mips_opts): Initialize it. (NOP_INSN, NOP_INSN_SIZE): Handle insn32 mode. (options): Add OPTION_INSN32 and OPTION_NO_INSN32 enum values. (md_longopts): Add "minsn32" and "mno-insn32" options. (is_size_valid): Handle insn32 mode. (md_assemble): Pass instruction string down to macro. (brk_fmt): Add second dimension and insn32 mode initializers. (mfhl_fmt): Likewise. (BRK_FMT, MFHL_FMT): Handle insn32 mode. (macro_build) <'c'>: Handle microMIPS 32-bit BREAK encoding. (macro_build_jalr, move_register): Handle insn32 mode. (macro_build_branch_rs): Likewise. (macro): Handle insn32 mode. <M_JRADDIUSP>, <M_JRC>, <M_MOVEP>: New cases. (mips_ip): Handle insn32 mode. (md_parse_option): Handle OPTION_INSN32 and OPTION_NO_INSN32. (s_mipsset): Handle "insn32" and "noinsn32" pseudo-ops. (mips_handle_align): Handle insn32 mode. (md_show_usage): Add -minsn32 and -mno-insn32. * doc/as.texinfo (Target MIPS options): Add -minsn32 and -mno-insn32 options. (-minsn32, -mno-insn32): New options. * doc/c-mips.texi (MIPS Opts): Add -minsn32 and -mno-insn32 options. (MIPS assembly options): New node. Document .set insn32 and .set noinsn32. (MIPS-Dependent): List the new node. gas/testsuite/ * gas/mips/micromips-insn32.d: New test. * gas/mips/micromips-noinsn32.d: Likewise. * gas/mips/micromips.l: Rename to... * gas/mips/micromips-warn.l: ... this. * gas/mips/micromips.d: Update accordingly. * gas/mips/micromips-trap.d: Likewise. * gas/mips/micromips.l: New list test. * gas/mips/micromips.s: Add conditionals. * gas/mips/mips.exp: Run the new tests. include/opcode/ * mips.h: Add M_JRADDIUSP, M_JRC and M_MOVEP anonymous enum values. ld/ * emultempl/mipself.em (insn32): New variable. (mips_create_output_section_statements): Handle insn32 mode. (PARSE_AND_LIST_PROLOGUE): New macro. (PARSE_AND_LIST_LONGOPTS): Likewise. (PARSE_AND_LIST_OPTIONS): Likewise. * gen-doc.texi: Set MIPS. * ld.texinfo: Likewise. (Options specific to MIPS targets): New section. (ld and MIPS family): New node. (Top, Machine Dependent): List the new node. opcodes/ * micromips-opc.c (micromips_opcodes): Add "jraddiusp", "jrc" and "movep" macros.
2013-06-24 bfd/Maciej W. Rozycki16-29/+69
* elfxx-mips.h (_bfd_mips_elf_get_synthetic_symtab): New prototype. * elf32-mips.c (elf_backend_plt_sym_val): Remove macro. (bfd_elf32_get_synthetic_symtab): New macro. * elfxx-mips.c (plt_entry): New structure. (mips_elf_link_hash_entry): Add use_plt_entry member. (mips_elf_link_hash_table): Rename plt_entry_size member to plt_mips_entry_size. Add plt_comp_entry_size, plt_mips_offset, plt_comp_offset, plt_got_index entries and plt_header_is_comp members. (STUB_LW_MICROMIPS, STUB_MOVE_MICROMIPS): New macros. (STUB_LUI_MICROMIPS, STUB_JALR_MICROMIPS): Likewise. (STUB_ORI_MICROMIPS, STUB_LI16U_MICROMIPS): Likewise. (STUB_LI16S_MICROMIPS): Likewise. (MICROMIPS_FUNCTION_STUB_NORMAL_SIZE): Likewise. (MICROMIPS_FUNCTION_STUB_BIG_SIZE): Likewise. (micromips_o32_exec_plt0_entry): New variable. (mips16_o32_exec_plt_entry): Likewise. (micromips_o32_exec_plt_entry): Likewise. (mips_elf_link_hash_newfunc): Initialize use_plt_entry. (mips_elf_output_extsym): Update to use gotplt_union's plist member rather than offset. (mips_elf_gotplt_index): Likewise. Remove the VxWorks restriction. Use MIPS_ELF_GOT_SIZE to calculate GOT address. (mips_elf_count_got_symbols): Update to use gotplt_union's plist member rather than offset. (mips_elf_calculate_relocation): Handle MIPS16/microMIPS PLT entries. (_bfd_mips_elf_create_dynamic_sections): Don't set PLT sizes here. (mips_elf_make_plt_record): New function. (_bfd_mips_elf_check_relocs): Update comment. Record occurences of JAL relocations that might need a PLT entry. (_bfd_mips_elf_adjust_dynamic_symbol): Update to use gotplt_union's plist member rather than offset. Set individual PLT entry sizes here. Handle MIPS16/microMIPS PLT entries. Don't set the symbol's value in the symbol table for PLT references here. Don't set the PLT or PLT GOT section sizes here. (mips_elf_estimate_stub_size): Handle microMIPS stubs. (mips_elf_allocate_lazy_stub): Likewise. (mips_elf_lay_out_lazy_stubs): Likewise. Define a _MIPS_STUBS_ magic symbol. (mips_elf_set_plt_sym_value): New function. (_bfd_mips_elf_size_dynamic_sections): Set PLT header size and PLT and PLT GOT section sizes here. Set the symbol values in the symbol table for PLT references here. Handle microMIPS annotation of the _PROCEDURE_LINKAGE_TABLE_ magic symbol. (_bfd_mips_elf_finish_dynamic_symbol): Update to use gotplt_union's plist member rather than offset. Handle MIPS16/microMIPS PLT entries. Handle microMIPS stubs. (_bfd_mips_vxworks_finish_dynamic_symbol): Update to use gotplt_union's plist member rather than offset. Use MIPS_ELF_GOT_SIZE to calculate GOT address. (mips_finish_exec_plt): Handle microMIPS PLT. Return status. (_bfd_mips_elf_finish_dynamic_sections): Handle result from mips_finish_exec_plt. (_bfd_mips_elf_link_hash_table_create): Update to use gotplt_union's plist member rather than offset. (_bfd_mips_elf_get_synthetic_symtab): New function. include/elf/ * mips.h (ELF_ST_IS_MIPS_PLT): Respect STO_MIPS16 setting. (ELF_ST_SET_MIPS_PLT): Likewise. gdb/ * mips-tdep.c (mips_elf_make_msymbol_special): Handle MIPS16 and microMIPS synthetic symbols. ld/ * emulparams/elf32btsmip.sh: Arrange for .got.plt to be placed as close to .plt as possible. * scripttempl/elf.sc: Handle $INITIAL_READWRITE_SECTIONS and $PLT_NEXT_DATA variables. ld/testsuite/ * ld-mips-elf/jalx-2.dd: Update for microMIPS PLT support. * ld-mips-elf/pic-and-nonpic-3a.dd: Update for the _MIPS_STUBS_ magic symbol. * ld-mips-elf/pic-and-nonpic-3b.dd: Likewise. * ld-mips-elf/pic-and-nonpic-6-n32.dd: Likewise. * ld-mips-elf/pic-and-nonpic-6-n64.dd: Likewise. * ld-mips-elf/pic-and-nonpic-6-o32.dd: Likewise. * ld-mips-elf/stub-dynsym-1-10000.d: Likewise. * ld-mips-elf/stub-dynsym-1-2fe80.d: Likewise. * ld-mips-elf/stub-dynsym-1-7fff.d: Likewise. * ld-mips-elf/stub-dynsym-1-8000.d: Likewise. * ld-mips-elf/stub-dynsym-1-fff0.d: Likewise. * ld-mips-elf/tlslib-o32.d: Likewise. opcodes/ * mips-dis.c (is_mips16_plt_tail): New function. (print_insn_mips16): Handle MIPS16 PLT entry's GOT slot address word. (is_compressed_mode_p): Handle MIPS16/microMIPS PLT entries.
2013-06-23bfd/Richard Sandiford3-44/+50
* Makefile.am (BFD32_BACKENDS, BFD32_BACKENDS_CFILES): Move MIPS ELF files to... (BFD64_BACKENDS, BFD64_BACKENDS_CFILES): ...here. * Makefile.in: Regenerate. * config.bfd: Enclose all MIPS ELF targets in #ifdef BFD64. Set want64 to true for them at the end. * targets.c (_bfd_target_vector): Protect MIPS ELF targets with #ifdef BFD64. gas/ * config/tc-mips.c: Assert that offsetT and valueT are at least 8 bytes in size. (GPR_SMIN, GPR_SMAX): New macros. (macro, mips_ip): Remove code for 4-byte valueT and offsetT. ld/ * Makefile.am (ALL_EMULATION_SOURCES): Move MIPS ELF emulations to... (ALL_64_EMULATION_SOURCES): ...here. * Makefile.in: Regenerate.
2013-06-22 * configure.ac (mips*-*-bsd*, mips*-*-ultrix*, mips*-*-osf*)Richard Sandiford17-184/+28
(mips*-*-ecoff*, mips*-*-pe*, mips*-*-irix* [v4 and earlier]) (mips*-*-lnews*, mips*-*-riscos*): Add gas and ld to noconfigdirs. * configure: Regenerate. gas/ * NEWS: Note removal of ECOFF support. * doc/as.texinfo (--emulation): Update for the removal of MIPS ECOFF. * Makefile.am (TARG_ENV_HFILES): Remove config/te-lnews.h. (MULTI_CFILES): Remove config/e-mipsecoff.c. * Makefile.in: Regenerate. * configure.in: Remove MIPS ECOFF references. (mips-sony-bsd*, mips-*-bsd*, mips-*-lnews*-ecoff, mips-*-*-ecoff): Delete cases. (mips-*-irix5*-*, mips*-*-linux*-*, mips*-*-freebsd*) (mips*-*-kfreebsd*-gnu, mips-*-*-elf): Fold into... (mips-*-*): ...this single case. (mipsbecoff, mipslecoff, mipsecoff): Remove emulations. Expect MIPS emulations to be e-mipself*. * configure: Regenerate. * configure.tgt (mips-sony-bsd*, mips-*-ultrix*, mips-*-osf*) (mips-*-ecoff*, mips-*-pe*, mips-*-irix*, ips-*-lnews*, mips-*-riscos*) (mips-*-sysv*): Remove coff and ecoff cases. * as.c (mipsbecoff, mipslecoff, mipsecoff): Remove. * ecoff.c: Remove reference to MIPS ECOFF. * config/e-mipsecoff.c, config/te-lnews.h: Delete files. * config/tc-mips.c (ECOFF_LITTLE_FORMAT): Delete. (RDATA_SECTION_NAME, mips_target_form): Remove COFF and ECOFF cases. (mips_hi_fixup): Tweak comment. (append_insn): Require a howto. (mips_after_parse_args): Remove OBJ_MAYBE_ECOFF code. gas/testsuite/ * gas/all/gas.exp: Remove reference to mips-ecoff. * gas/mips/branch-misc-1.d, gas/mips/branch-misc-2.d, gas/mips/branch-misc-2-64.d, gas/mips/branch-misc-2pic.d, gas/mips/branch-misc-2pic-64.d, gas/mips/branch-swap.d: Remove skips for mips-*-ecoff. ld/ * NEWS: Document the removal of MIPS ECOFF targets. * ld.texinfo (--gpsize=@var{value}): Use MIPS ELF rather than MIPS ECOFF as an example of a target that supports small data. * ldmain.c (g_switch_value): Likewise. * configure.tgt (mips*-*-pe, mips*-dec-ultrix*, mips*-dec-osf*) (mips*-sgi-irix* [v4 and earlier], mips*el-*-ecoff*, mips*-*-ecoff*) (mips*-*-bsd*, mips*-*-lnews*): Remove cases. * Makefile.am (ALL_EMULATION_SOURCES): Remove emipsbig.c, emipsbsd.c, emipsidt.c, emipsidtl.c, emipslit.c, emipslnews.c and emipspe.c. (emipsbig.c, emipsbsd.c, emipsidt.c, emipsidtl.c, emipslit.c) (emipslnews.c, emipspe.c): Delete rules. * Makefile.in: Regenerate. * emulparams/mipsbig.sh, emulparams/mipsbsd.sh, emulparams/mipsidt.sh, emulparams/mipsidtl.sh, emulparams/mipslit.sh, emulparams/mipslnews.sh, emulparams/mipspe.sh, emultempl/mipsecoff.em: Delete. * emultempl/m68kcoff.em: Update comment to say that MIPS ECOFF support has now been removed. * emultempl/pe.em: Remove TARGET_IS_mipspe checks.