aboutsummaryrefslogtreecommitdiff
path: root/ld
AgeCommit message (Collapse)AuthorFilesLines
2014-01-15Silence uninitialized warning on ehdr_start_saveH.J. Lu2-1/+7
Older GCC, like 4.1/4.2, will issue an uninitialized warning on ehdr_start_save. This patch silences by using struct bfd_link_hash_entry ehdr_start_save = ehdr_start_save; * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Silence uninitialized warning on ehdr_start_save with older GCC.
2014-01-15non-PIC references to __ehdr_start in pie and sharedAlan Modra7-0/+44
Rather than hacking every backend to not discard dynamic relocations against an undefined hidden __ehdr_start, make it appear to be defined early. We want __ehdr_start hidden before size_dynamic_sections so that it isn't put in .dynsym, but we do need the dynamic relocations for a PIE or shared library with a non-PIC reference. Defining it early is wrong if we don't actually define the symbol later to its proper value. (In some cases we want to leave the symbol undefined, for example, when the ELF header isn't loaded, and we don't have this infomation available in before_allocation.) ld/ * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Define __ehdr_start before size_dynamic_sections and restore afterwards. ld/testsuite/ * ld-elf/ehdr_start-shared.d: New. * ld-elf/ehdr_start-userdef.d: xfail frv. * ld-elf/ehdr_start-weak.d: Likewise. * ld-elf/ehdr_start.d: Likewise.
2014-01-14 * lib/ld-lib.exp (default_ld_link): Remove support for ldflags.Vidya Praveen2-9/+6
(default_ld_simple_link): Likewise.
2014-01-10Don't adjust LOAD segment to match GNU_RELRO segmentAlan Modra5-15/+27
Instead, fix Jakub's original code setting up the PR_GNU_RELRO header from the PT_LOAD header. PR ld/14207 PR ld/16322 PR binutils/16323 bfd/ * elf.c (assign_file_positions_for_load_sections): Revert last change. (assign_file_positions_for_non_load_sections): When setting up PT_GNU_RELRO header, don't require a corresponding PT_LOAD header that completely covers the relro region. ld/ * ldlang.c (lang_size_sections): Remove unneeded RELRO base adjust. Tidy comments. * ld.texinfo (DATA_SEGMENT_RELRO_END): Correct description. ld/testsuite/ * ld-x86-64/pr14207.d: Adjust
2014-01-10 * emulparams/crislinux.sh (COMMONPAGESIZE): Define.Hans-Peter Nilsson2-0/+5
2014-01-09Fix copyright yearH.J. Lu1-1/+1
2014-01-09Check if GNU_RELRO segment is is generatedH.J. Lu2-1/+30
Fail if GNU_RELRO segment isn't generated, but should. * ld-elf/binutils.exp (binutils_test): Check if GNU_RELRO segment is generated.
2014-01-09Add and use check_lto_shared_availableH.J. Lu3-2/+45
2014-01-09 Vidya Praveen <vidyapraveen@arm.com> * lib/ld-lib.exp (check_lto_shared_available): New check. * ld-plugin/lto.exp: Use check_lto_shared_available.
2014-01-08Adjust LOAD segment to generate GNU_RELRO segmentH.J. Lu6-5/+51
This patch fixes 2 GNU_RELRO segment bugs: 1. lang_size_sections didn't properly align base to the maximum alignment power of sections between DATA_SEGMENT_ALIGN and DATA_SEGMENT_RELRO_END. 2. ld failed to adjust LOAD segment to generate GNU_RELRO segment when LOAD segment doesn't fit GNU_RELRO segment. This is https://sourceware.org/bugzilla/show_bug.cgi?id=14207 We "fixed" ld by not generating GNU_RELRO segment. This patch adjusts LOAD segment to generate GNU_RELRO segment. It fixes PR ld/16322 and at the same time it also fixes PR binutils/16323 since now we can adjust LOAD segment if it is too small. bfd/ PR ld/14207 PR ld/16322 PR binutils/16323 * elf.c (_bfd_elf_map_sections_to_segments): Don't check section size for PT_GNU_RELRO segment. (assign_file_positions_for_load_sections): If PT_LOAD segment doesn't fit PT_GNU_RELRO segment, adjust its p_filesz and p_memsz. ld/ PR ld/14207 PR ld/16322 PR binutils/16323 * ldlang.c (lang_size_sections): Properly align RELRO base. ld/testsuite/ PR ld/14207 PR ld/16322 PR binutils/16323 * ld-elf/pr16322.d: New file. * ld-elf/pr16322.s: Likewise. * ld-x86-64/pr14207.d: Expect PT_GNU_RELRO segment.
2014-01-08Update copyright year to 2014H.J. Lu2-2/+6
binutils/ * version.c (print_version): Update copyright year to 2014. gas/ * as.c (parse_args): Update copyright year to 2014. gold/ * version.cc (print_version): Update copyright year to 2014. ld/ * ldver.c (ldversion): Update copyright year to 2014. opcodes/ * i386-gen.c (process_copyright): Update copyright year to 2014.
2014-01-08New Year - binutils ChangeLog rotationH.J. Lu4-2523/+2551
2013-12-20Define IREL_IN_PLT for elf_k1om.sh and elf_l1om.shH.J. Lu3-0/+7
* emulparams/elf_k1om.sh (IREL_IN_PLT): Define. * emulparams/elf_l1om.sh (IREL_IN_PLT): Likewise.
2013-12-20Covert leading spaces to tabH.J. Lu1-1/+1
2013-12-19Set SHF_INFO_LINK bit for SHT_REL/SHT_RELA sectionsH.J. Lu4-0/+26
It is a good pratice to set the SHF_INFO_LINK bit when the sh_info field represents a section header index. bfd/ PR binutils/16317 * elf.c (assign_section_numbers): Set the SHF_INFO_LINK bit for SHT_REL/SHT_RELA sections when setting the sh_info field. binutils/testsuite/ PR binutils/16317 * binutils-all/readelf.s: Updated. * binutils-all/readelf.s-64: Likewise. ld/testsuite/ PR binutils/16317 * ld-elf/linkinfo1.s: New file. * ld-elf/linkinfo1a.d: Likewise. * ld-elf/linkinfo1b.d: Likewise.
2013-12-18ld/testsuiteYufeng Zhang2-3/+19
2013-12-18 Vidya Praveen <vidyapraveen@arm.com> * lib/ld-lib.exp (check_lto_available): Support cflags, ldflags and test by compiling for an executable rather than shared library.
2013-12-13 * lib/ld-lib.exp (default_ld_link): Use ldflags from board descriptionVidya Praveen2-0/+19
file. (default_ld_simple_link): Likewise. (default_ld_compile): Use cflags from board description file.
2013-12-13Add support for Andes NDS32:Kuan-Lin Chen37-3/+1630
BFD: * Makefile.am (BFD32_BACKENDS, BFD32_BACKENDS_CFILES): Add nds32 files. * Makefile.in: Regenerate. * archures.c (bfd_nds32_arch): Add nds32 target. * bfd-in2.h: Regenerate. * config.bfd (nds32*le-*-linux): Add bfd_elf32_nds32lelin_vec and bfd_elf32_nds32belin_vec. (nds32*be-*-linux*): Likewise. (nds32*le-*-*): Add bfd_elf32_nds32le_vec and bfd_elf32_nds32be_vec. (nds32*be-*-*): Likewise. * configure.in (bfd_elf32_nds32be_vec): Add elf32-nds32.lo. (bfd_elf32_nds32le_vec): Likewise. (bfd_elf32_nds32belin_vec): Likewise. (bfd_elf32_nds32lelin_vec): Likewise. * configure: Regenerate. * cpu-nds32.c: New file for nds32. * elf-bfd.h: Add NDS32_ELF_DATA. * elf32-nds32.c: New file for nds32. * elf32-nds32.h: New file for nds32. * libbfd.h: Regenerate. * reloc.c: Add relocations for nds32. * targets.c (bfd_elf32_nds32be_vec): New declaration for nds32. (bfd_elf32_nds32le_vec): Likewise. (bfd_elf32_nds32belin_vec): Likewise. (bfd_elf32_nds32lelin_vec): Likewise. BINUTILS: * readelf.c: Include elf/nds32.h (guess_is_rela): Add case for EM_NDS32. (dump_relocations): Add case for EM_NDS32. (decode_NDS32_machine_flags): New. (get_machine_flags): Add case for EM_NDS32. (is_32bit_abs_reloc): Likewise. (is_16bit_abs_reloc): Likewise. (process_nds32_specific): New. (process_arch_specific): Add case for EM_NDS32. * NEWS: Announce Andes nds32 support. * MAINTAINERS: Add nds32 maintainers. TESTSUITE: * binutils-all/objdump.exp: Add NDS32 cpu. * binutils-all/readelf.r: Skip extra reloc created by NDS32. GAS: * Makefile.am (TARGET_CPU_CFILES): Add config/tc-nds32.c. (TARGET_CPU_HFILES): Add config/tc-nds32.h. * Makefile.in: Regenerate. * configure.in (nds32): Add nds32 target extension config support. * configure.tgt : Add case for nds32-*-elf* and nds32-*-linux*. * configure: Regenerate. * config/tc-nds32.c: New file for nds32. * config/tc-nds32.h: New file for nds32. * doc/Makefile.am (CPU_DOCS): Add c-nds32.texi. * doc/Makefile.in: Regenerate. * doc/as.texinfo: Add nds32 options. * doc/all.texi: Set NDS32. * doc/c-nds32.texi: New file dor nds32 document. * NEWS: Announce Andes nds32 support. TESTSUITE: * gas/all/gas.exp: Add expected failures for NDS32. * gas/elf/elf.exp: Likewise. * gas/lns/lns.exp: Use alternate test. * gas/macros/irp.d: Skip for NDS32. * gas/macros/macros.exp: Skip some tests for the NDS32. * gas/macros/rept.d: Skip for NDS32. * gas/macros/test3.d: Skip for NDS32. * gas/nds32: New directory. * gas/nds32/alu-1.s: New test. * gas/nds32/alu-1.d: Likewise. * gas/nds32/alu-2.s: Likewise. * gas/nds32/alu-2.d: Likewise. * gas/nds32/br-1.d: Likewise. * gas/nds32/br-1.s: Likewise. * gas/nds32/br-2.d: Likewise. * gas/nds32/br-2.s: Likewise. * gas/nds32/ji-jr.d: Likewise. * gas/nds32/ji-jr.s: Likewise. * gas/nds32/ls.d: Likewise. * gas/nds32/ls.s: Likewise. * gas/nds32/lsi.d: Likewise. * gas/nds32/lsi.s: Likewise. * gas/nds32/to-16bit-v1.d: Likewise. * gas/nds32/to-16bit-v1.s: Likewise. * gas/nds32/to-16bit-v2.d: Likewise. * gas/nds32/to-16bit-v2.s: Likewise. * gas/nds32/to-16bit-v3.d: Likewise. * gas/nds32/to-16bit-v3.s: Likewise. * gas/nds32/nds32.exp: New test driver. LD: * Makefile.am (ALL_EMULATION_SOURCES): Add nds32 target. * Makefile.in: Regenerate. * configure.tgt: Add case for nds32*le-*-elf*, nds32*be-*-elf*, nds32*le-*-linux-gnu*, and nds32*be-*-linux-gnu*. * emulparams/nds32belf.sh: New file for nds32. * emulparams/nds32belf_linux.sh: Likewise. * emulparams/nds32belf16m.sh: Likewise. * emulparams/nds32elf.sh: Likewise. * emulparams/nds32elf_linux.sh: Likewise. * emulparams/nds32elf16m.sh: Likewise. * emultempl/nds32elf.em: Likewise. * scripttempl/nds32elf.sc}: Likewise. * gen-doc.texi: Set NDS32. * ld.texinfo: Set NDS32. * NEWS: Announce Andes nds32 support. TESTSUITE: * lib/ld-lib.exp: Add NDS32 to list of targets that do not support shared library generation. * ld-nds32: New directory. * ld-nds32/branch.d: New test. * ld-nds32/branch.ld: New test. * ld-nds32/branch.s: New test. * ld-nds32/diff.d: New test. * ld-nds32/diff.ld: New test. * ld-nds32/diff.s: New test. * ld-nds32/gp.d: New test. * ld-nds32/gp.ld: New test. * ld-nds32/gp.s: New test. * ld-nds32/imm.d: New test. * ld-nds32/imm.ld: New test. * ld-nds32/imm.s: New test. * ld-nds32/imm_symbol.s: New test. * ld-nds32/relax_jmp.d: New test. * ld-nds32/relax_jmp.ld: New test. * ld-nds32/relax_jmp.s: New test. * ld-nds32/relax_load_store.d: New test. * ld-nds32/relax_load_store.ld: New test. * ld-nds32/relax_load_store.s: New test. * ld-nds32/nds32.exp: New file. OPCODES: * Makefile.am (TARGET_LIBOPCODES_CFILES): Add nds32-asm.c and nds32-dis.c. * Makefile.in: Regenerate. * configure.in: Add case for bfd_nds32_arch. * configure: Regenerate. * disassemble.c (ARCH_nds32): Define. * nds32-asm.c: New file for nds32. * nds32-asm.h: New file for nds32. * nds32-dis.c: New file for nds32. * nds32-opc.h: New file for nds32. INCLUDE: * dis-asm.h (print_insn_nds32): Add nds32 target. * elf/nds32.h: New file for nds32. * opcode/nds32.h: New file for nds32.
2013-12-12Add "#..."H.J. Lu2-0/+5
* ld-elf/ehdr_start-userdef.d: Add "#...".
2013-12-12Set ET_EXEC for -pie -Ttext-segment=H.J. Lu4-0/+34
bfd/ * elf.c (assign_file_positions_except_relocs): Set e_type in ELF header to ET_EXEC for -pie -Ttext-segment=. 2013-12-10 H.J. Lu <hongjiu.lu@intel.com> * ld-pie/vaddr-0.d: New file. * ld-pie/vaddr-1.d: Likewise. * ld-pie/vaddr.s: Likewise.
2013-12-11ld/testsuite/ld-aarch64: Fixup IFUNC tests to work on all targetsWill Newton3-16/+17
Make the ifunc-21 and ifunc-22 tests more generic to support aarch64_be and ELF targets. ld/testsuite/ChangeLog: 2013-12-11 Will Newton <will.newton@linaro.org> * ld-aarch64/ifunc-21.d: Make test more generic to support aarch64_be and ELF targets. * ld-aarch64/ifunc-22.d: Likewise.
2013-12-11Remove shared object from -Ttext-segmentH.J. Lu2-2/+6
* ld.texinfo: Remove shared object from -Ttext-segment.
2013-12-11Add a test for --as-needed with symbol versioningH.J. Lu6-0/+39
* ld-elf/shared.exp (build_tests): Add libneeded2a.so, libneeded2b.so, libneeded2c.o and needed2. * ld-elf/needed2.ver: New file. * ld-elf/needed2a.c: Likewise. * ld-elf/needed2b.c: Likewise. * ld-elf/needed2c.c: Likewise.
2013-12-10Use $(INSTALL_PROGRAM_ENV) consistently.Roland McGrath3-12/+18
binutils/ * Makefile.am (install-exec-local): Prefix libtool invocation with $(INSTALL_PROGRAM_ENV). * Makefile.in: Regenerate. gas/ * Makefile.am (install-exec-bindir): Prefix libtool invocation with $(INSTALL_PROGRAM_ENV). (install-exec-tooldir): Likewise. * Makefile.in: Regenerate. gold/ * Makefile.am (install-exec-local): Prefix $(INSTALL_PROGRAM) uses with $(INSTALL_PROGRAM_ENV). * Makefile.in: Regenerate. ld/ * Makefile.am (install-exec-local): Prefix libtool invocation with $(INSTALL_PROGRAM_ENV). * Makefile.in: Regenerate.
2013-12-07strip off +x bits on non-executable/script filesMike Frysinger40-0/+44
These files are source files and have no business being +x. We couldn't easily fix it in CVS (you need login+write access to the raw rcs files), but we can fix this w/git. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-11-27[ld/testsuite/]Kyrylo Tkachov3-5/+10
2013-11-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com> * ld-plugin/lto.exp: Add -ffat-lto-objects. * lib/ld-lib.exp (check_lto_available): Likewise.
2013-11-27binutils/testsuite/Richard Sandiford2-2/+9
2013-11-27 Matthew Fortune <matthew.fortune@imgtec.com> * binutils-all/objcopy.exp: Consider mips-mti-elf the same as mips-sde-elf * binutils-all/readelf.exp: Likewise gas/testsuite/ 2013-11-27 Matthew Fortune <matthew.fortune@imgtec.com> * gas/mips/mips.exp: Consider mips-mti-elf the same as mips-sde-elf ld/testsuite/ 2013-11-27 Matthew Fortune <matthew.fortune@imgtec.com> * ld-mips-elf/mips-elf.exp: Consider mips-mti-elf the same as mips-sde-elf
2013-11-26Fix a typoH.J. Lu1-1/+1
2013-11-26Add HOSTING_SLIBS and use it for -pieH.J. Lu9-5/+34
ld/ PR ld/16259 * Makefile.am (HOSTING_SLIBS): New. * configure.host (HOSTING_SLIBS): New. Used for PIE. * configure.in (HOSTING_SLIBS): New AC_SUBST. * Makefile.in: Regenerated. * configure: Likewise. ld/testsuite/ PR ld/16259 * config/default.exp (get_target_emul): Also set HOSTING_SLIBS. * lib/ld-lib.exp (default_ld_link): Use HOSTING_SLIBS for -pie.
2013-11-26bfd/elfnn-aarch64.c: Handle static links with ifunc correctly.Will Newton4-0/+32
The code for handling GOT references to ifunc symbols in static links was missing. bfd/ChangeLog: 2013-11-26 Will Newton <will.newton@linaro.org> * elfnn-aarch64.c (elfNN_aarch64_finish_dynamic_symbol): Handle STT_GNU_IFUNC symbols correctly in static links. ld/testsuite/ChangeLog: 2013-11-26 Will Newton <will.newton@linaro.org> * ld-aarch64/aarch64-elf.exp: Add ifunc-22. * ld-aarch64/ifunc-22.d: New file. * ld-aarch64/ifunc-22.s: Likewise.
2013-11-26bfd/elfnn-aarch64.c: Fix miscalculation of GOTPLT offset for ifunc syms.Will Newton4-0/+51
The .got.plt header size was not being correctly taken into account when calculating the offset for relocations against ifunc symbols. bfd/ChangeLog: 2013-11-26 Will Newton <will.newton@linaro.org> * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Ensure PLT_INDEX is calculated using correct header size. ld/testsuite/ChangeLog: 2013-11-26 Will Newton <will.newton@linaro.org> * ld-aarch64/aarch64-elf.exp: Add ifunc-21 test. * ld-aarch64/ifunc-21.d: New file. * ld-aarch64/ifunc-21.s: Likewise.
2013-11-22 * windres.c (define_resource): Use zero for timestamp, makingCory Fields5-13/+41
output deterministic. time.h include is no longer needed. * resres.c (res_append_resource): Likewise. * pe-dll.c (fill_edata): Only use a real timestamp if --insert-timestamp was used. * emultempl/pe.em: Add the --insert-timestamp option. * emultempl/pep.em: Likewise for 64bit. * ld.texinfo: Document the --insert-timestamp option. * libcoff-in.h: Add insert_timestamp flag to the pe_data struct. * libcoff.h: Regenerate. * peXXigen.c (_bfd_XXi_only_swap_filehdr_out): Only use a real timestamp if --insert-timestamp was used.
2013-11-22 * scripttempl/avr.sc: Set .data section's LMA to next availableSenthil Kumar Selvaraj2-2/+7
address in text region.
2013-11-21ld/ChangeLog:Andrew Pinski7-3/+88
* Makefile.am (ALL_64_EMULATION_SOURCES): Add eaarch64linux32.c and eaarch64linux32b.c (eaarch64linux32.c): New target. (eaarch64linux32b.c): Likewise. * Makefile.in: Regenerate. * configure.tgt (aarch64_be-*-linux*): Add aarch64linux32 and aarch64linux32b to targ_extra_libpath. (aarch64-*-linux*): Likewise. * emulparams/aarch64elf32.sh (SEPARATE_GOTPLT): Change to 12 (3 words). * emulparams/aarch64linux32.sh: New file. * emulparams/aarch64linux32b.sh: New file.
2013-11-21ld/ChangeLog:Andrew Pinski2-2/+10
* configure.tgt (aarch64_be-*-linux*): Split out the linux targets into targ_extra_libpath. (aarch64-*-linux*): Likewise.
2013-11-21 PR ld/16192Nick Clifton2-3/+8
* pe-dll.c (pe_create_runtime_relocator_reference): Zero the newly allocated idata5 block.
2013-11-21Add bnd-branch-1 testusers/hjl/mpx/masterH.J. Lu4-0/+36
* ld-x86-64/mpx.exp: Run bnd-branch-1. * ld-x86-64/bnd-branch-1.d: New file. * ld-x86-64/bnd-branch-1.s: Likewise.
2013-11-20Add mpx1static, mpx2 and mpx2static testsH.J. Lu8-0/+62
* ld-x86-64/mpx.exp (build_tests): Add libmpx2a.a, libmpx2b.a and libmpx2c.a. (run_tests): Add mpx1static, mpx2 and mpx2static. * ld-x86-64/mpx2.out: Likewise. * ld-x86-64/mpx2a.c: Likewise. * ld-x86-64/mpx2a.rd: Likewise. * ld-x86-64/mpx2b.c: Likewise. * ld-x86-64/mpx2c.c: Likewise. * ld-x86-64/mpx2c.rd: Likewise.
2013-11-20 * scripttempl/elf32msp430.sc (.data): Set the based on the nextNick Clifton3-5/+14
free location in the text memory region, not a computation based upon the size of the text section. Orphaned sections or other linker scripts might insert new sections between the .text section and the .data section. * scripttempl/elf32msp430_3.sc (.data): Likewise.
2013-11-19Fix references to __ehdr_start when it cannot be definedRoland McGrath10-5/+86
ld/ * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Don't use bfd_elf_record_link_assignment to mark __ehdr_start hidden. Instead, just do it directly here, and only if it was referenced but not defined. ld/testsuite/ * ld-elf/ehdr_start-userdef.t: New file. * ld-elf/ehdr_start-userdef.d: New file. * ld-elf/ehdr_start-strongref.s: New file. * ld-elf/ehdr_start-missing.t: New file. * ld-elf/ehdr_start-missing.d: New file. * ld-elf/ehdr_start-weak.d: New file. * ld-mips-elf/ehdr_start-2.nd: Expect __ehdr_start to be global.
2013-11-18Separate emulations for nios2-elf and nios2-linux.Chung-Lin Tang5-0/+34
2013-11-18 Chung-Lin Tang <cltang@codesourcery.com> * emulparams/nios2linux.sh: New emulation file. * configure.tgt: Add nios2*-*-linux* emulation case. * Makefile.am (enios2linux.c): New emulation entry. * Makefile.in: Regenerate.
2013-11-17Add R_X86_64_PC32_BND and R_X86_64_PLT32_BNDH.J. Lu8-0/+102
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-14ld/ARM: Fix script-type testsuite failure.Will Newton2-1/+4
Commit 34a79995c4cc34f6f41e2a4b2df477db31b31f0c changed how STT_FILE symbols were emitted but this testcase got missed in the cleanup. ld/testsuite/ChangeLog: 2013-11-14 Will Newton <will.newton@linaro.org> * ld-arm/script-type.sym: Remove redundant STT_FILE symbol.
2013-11-07Set CPU type in BFD backend for x86_64-nacl* and i?86-nacl* targetsRoland McGrath6-6/+15
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-05Pass ignored unresolved relocations to ld backendH.J. Lu5-0/+59
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-04Edit ELFv2 global entry prologue to non-PICAlan Modra2-2/+6
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-04Allow for extra st_other readelf output in ld testsuiteAlan Modra3-3/+10
On PowerPC64 ELFv2 readelf emits [<localentry>: 8] describing extra symbol st_other bits. * ld-elfvers/vers24.rd: Allow extra readelf output after symbol visibility. * ld-ifunc/ifunc.exp: Likewise.
2013-11-04ld crossref test fixAlan Modra2-2/+16
* ld-scripts/crossref.exp: Don't allow changes made to CFLAGS for this test to bleed into following tests. Don't set -mcall-aixdesc for powerpc64le.
2013-11-02Assorted x86 testsuite fixes.Alan Modra2-3/+7
I think HJ has already fixed the binutils and ld tests with his 2013-09-27 readelf change, but this allows them to pass with wider address output as per Nick's 2013-09-12 readelf change. binutils/testsuite/ * binutils-all/x86-64/compressed-1a.d: Allow wide display of addresses. gas/testsuite/ * gas/cfi/cfi-x86_64.d: Match when lacking end of section padding. ld/testsuite/ * ld-pe/cfi.d: Allow wide display of addresses.
2013-11-01x86_64-*-nacl*: Adjust test cases for PLT nop fix.Roland McGrath3-3/+8
ld/testsuite/ * ld-x86-64/plt-nacl.pd: Update expected disassembly for PLT nop fix. * ld-x86-64/tlsdesc-nacl.pd: Likewise.
2013-10-30Add PowerPC64 ELFv2 tests.Alan Modra5-0/+163
* ld-powerpc/elfv2.s, * ld-powerpc/elfv2so.d, * ld-powerpc/elfv2exe.d: New tests. * ld-powerpc/powerpc.exp: Run them.