aboutsummaryrefslogtreecommitdiff
path: root/ld
AgeCommit message (Collapse)AuthorFilesLines
2016-05-10Use getters/setters to access ARM branch typeThomas Preud'homme2-1/+7
2016-05-10 Thomas Preud'homme <thomas.preudhomme@arm.com> bfd/ * elf32-arm.c (elf32_arm_size_stubs): Use new macros ARM_GET_SYM_BRANCH_TYPE and ARM_SET_SYM_BRANCH_TYPE to respectively get and set branch type of a symbol. (bfd_elf32_arm_process_before_allocation): Likewise. (elf32_arm_relocate_section): Likewise and fix identation along the way. (allocate_dynrelocs_for_symbol): Likewise. (elf32_arm_finish_dynamic_symbol): Likewise. (elf32_arm_swap_symbol_in): Likewise. (elf32_arm_swap_symbol_out): Likewise. gas/ * config/tc-arm.c (arm_adjust_symtab): Use ARM_SET_SYM_BRANCH_TYPE to set branch type of a symbol. gdb/ * arm-tdep.c (arm_elf_make_msymbol_special): Use ARM_GET_SYM_BRANCH_TYPE to get branch type of a symbol. include/ * arm.h (enum arm_st_branch_type): Add new ST_BRANCH_ENUM_SIZE enumerator. (NUM_ENUM_ARM_ST_BRANCH_TYPE_BITS): New macro. (ENUM_ARM_ST_BRANCH_TYPE_BITMASK): Likewise. (ARM_SYM_BRANCH_TYPE): Replace by ... (ARM_GET_SYM_BRANCH_TYPE): This and ... (ARM_SET_SYM_BRANCH_TYPE): This in two versions depending on whether BFD_ASSERT is defined or not. ld/ * emultempl/armelf.em (gld${EMULATION_NAME}_finish): Use ARM_GET_SYM_BRANCH_TYPE to get branch type of a symbol. opcodes/ * arm-dis.c (get_sym_code_type): Use ARM_GET_SYM_BRANCH_TYPE to get branch type of a symbol. (print_insn): Likewise.
2016-05-10Allow stubs without associated input section in ARM backendThomas Preud'homme2-6/+29
2016-05-10 Thomas Preud'homme <thomas.preudhomme@arm.com> bfd/ * bfd-in.h (elf32_arm_size_stubs): Add an output section parameter. * bfd-in2.h: Regenerated. * elf32-arm.c (struct elf32_arm_link_hash_table): Add an output section parameter to add_stub_section callback. (elf32_arm_create_or_find_stub_sec): Get output section from link_sec and pass it down to add_stub_section. (elf32_arm_add_stub): Set section to stub_sec if NULL before using it for error message. (elf32_arm_size_stubs): Add output section parameter to add_stub_section function pointer parameter. ld/ * emultempl/armelf.em (elf32_arm_add_stub_section): Add output_section parameter and rename input_section parameter to after_input_section. Append input stub section to the output section if after_input_section is NULL.
2016-05-10Add support for ARMv8-M Mainline with DSP extensionThomas Preud'homme4-0/+23
2016-05-10 Thomas Preud'homme <thomas.preudhomme@arm.com> bfd/ (elf32_arm_merge_eabi_attributes): Add merging logic for Tag_DSP_extension. binutils/ * readelf.c (display_arm_attribute): Add output for Tag_DSP_extension. (arm_attr_public_tags): Define DSP_extension attribute. gas/ * NEWS: Document ARMv8-M and ARMv8-M Security and DSP Extensions. * config/tc-arm.c (arm_ext_dsp): New feature for Thumb DSP instructions. (arm_extensions): Add dsp extension for ARMv8-M Mainline. (aeabi_set_public_attributes): Memorize the feature bits of the architecture selected for Tag_CPU_arch. Use it to set Tag_DSP_extension to 1 for ARMv8-M Mainline with DSP extension. (arm_convert_symbolic_attribute): Define Tag_DSP_extension. * testsuite/gas/arm/arch7em-bad.d: Rename to ... * testsuite/gas/arm/arch7em-bad-1.d: This. * testsuite/gas/arm/arch7em-bad-2.d: New file. * testsuite/gas/arm/arch7em-bad-3.d: Likewise. * testsuite/gas/arm/archv8m-main-dsp-1.d: Likewise. * testsuite/gas/arm/archv8m-main-dsp-2.d: Likewise. * testsuite/gas/arm/archv8m-main-dsp-3.d: Likewise. * testsuite/gas/arm/archv8m-main-dsp-4.d: Likewise. * testsuite/gas/arm/archv8m-main-dsp-5.d: Likewise. * testsuite/gas/arm/attr-march-armv8m.main.dsp.d: Likewise. include/ * elf/arm.h (Tag_DSP_extension): Define. ld/ * testsuite/ld-arm/arm-elf.exp (EABI attribute merging 10 (DSP)): New test. * testsuite/ld-arm/attr-merge-10b-dsp.s: New file. * testsuite/ld-arm/attr-merge-10-dsp.attr: Likewise.
2016-05-102016-05-10 Christophe Lyon <christophe.lyon@linaro.org>Christophe Lyon2-1/+5
* ld/testsuite/ld-elf/flags1.d (xfail): Remove *-*-nacl*".
2016-05-09[ARM/STM32L4XX] PR 20030: --fix-stm32l4xx-629360 fails to create vldm/vpop ↵Christophe Monat7-25/+155
veneers for double-precision registers bfd/ PR ld/20030 * elf32-arm.c (is_thumb2_vldm): Account for T1 (DP) encoding. (stm32l4xx_need_create_replacing_stub): Rename ambiguous nb_regs to nb_words. (create_instruction_vldmia): Add is_dp to disambiguate SP/DP encoding. (create_instruction_vldmdb): Likewise. (stm32l4xx_create_replacing_stub_vldm): is_dp detects DP encoding, uses it to re-encode. ld/ PR ld/20030 * testsuite/ld-arm/arm-elf.exp: Run new stm32l4xx-fix-vldm-dp tests. Fix misnamed stm32l4xx-fix-all. * testsuite/ld-arm/stm32l4xx-fix-vldm-dp.s: New tests for multiple loads with DP registers. * testsuite/ld-arm/stm32l4xx-fix-vldm-dp.d: New reference file. * testsuite/ld-arm/stm32l4xx-fix-vldm.s: Add missing comment. * testsuite/ld-arm/stm32l4xx-fix-all.s: Add tests for multiple loads with DP registers. * testsuite/ld-arm/stm32l4xx-fix-all.d: Update reference.
2016-05-09Update section merge test.Pitchumani Sivanupandi3-10/+15
* testsuite/ld-elf/flags1.d (readelf): Dump section header instead program headers. (xfail): Remove avr-*-*. Update regex to check the section flags. * testsuite/ld-elf/merge.d (xfail): Remove avr-*-*.
2016-05-09Regenerate configureAlan Modra1-8/+12
2016-05-09Fix ealphavms.c and eelf64_ia64_vms.c depsAlan Modra3-6/+15
* Makefile.am (ealphavms.c, eelf64_ia64_vms): Correct .em deps. * Makefile.in: Regenerate.
2016-05-09Correct script input section patternAlan Modra4-9/+15
We don't want this to match .rela.text or similar. * testsuite/ld-scripts/pr14962-2.t: Match .text, not *.text. * testsuite/ld-scripts/rgn-at5.t: Similarly, .sec not *.sec. * testsuite/ld-scripts/section-match-1.t: Likewise.
2016-05-06Strip global symbol defined in discarded sectionH.J. Lu9-0/+106
When a global symbol is defined in COMDAT group, we shouldn't leave an undefined symbol in symbol table when the symbol section is discarded unless there is a reference to the symbol outside of COMDAT group. bfd/ PR ld/17550 * elf-bfd.h (elf_link_hash_entry): Update comments for indx, documenting that indx == -3 if symbol is defined in a discarded section. * elflink.c (elf_link_add_object_symbols): Set indx to -3 if symbol is defined in a discarded section. (elf_link_output_extsym): Strip a global symbol defined in a discarded section. ld/ PR ld/17550 * testsuite/ld-elf/pr17550-1.s: New file. * testsuite/ld-elf/pr17550-2.s: Likewise. * testsuite/ld-elf/pr17550-3.s: Likewise. * testsuite/ld-elf/pr17550-4.s: Likewise. * testsuite/ld-elf/pr17550a.d: Likewise. * testsuite/ld-elf/pr17550b.d: Likewise. * testsuite/ld-elf/pr17550c.d: Likewise. * testsuite/ld-elf/pr17550d.d: Likewise.
2016-05-06 * ld/testsuite/ld-srec/srec.exp: Mark test as XFAIL for AVR.Senthil Kumar Selvaraj2-24/+34
2016-05-06Test load conversion with symbol versioning for x86H.J. Lu9-0/+96
* testsuite/ld-i386/i386.exp: Run load7. * testsuite/ld-i386/load7.d: New file. * testsuite/ld-i386/load7.map: Likewise. * testsuite/ld-i386/load7.s: Likewise. * testsuite/ld-x86-64/load2.d: Likewise. * testsuite/ld-x86-64/load2.map: Likewise. * testsuite/ld-x86-64/load2.s: Likewise. * testsuite/ld-x86-64/x86-64.exp: Run load2.
2016-05-05More setting CHECK_RELOCS_AFTER_OPEN_INPUT to yesH.J. Lu4-0/+11
* emulparams/elf_iamcu.sh (CHECK_RELOCS_AFTER_OPEN_INPUT): New. * emulparams/elf_k1om.sh (CHECK_RELOCS_AFTER_OPEN_INPUT): Likewise. * emulparams/elf_l1om.sh (CHECK_RELOCS_AFTER_OPEN_INPUT): Likewise.
2016-05-05Pass --no-relax to ld in ld-x86-64/pr18591.dH.J. Lu2-1/+5
Pass --no-relax to ld so that GOTPCREL relocation will be kept. * testsuite/ld-x86-64/pr18591.d: Pass --no-relax to ld.
2016-05-04Pass %E to einfo when bfd_section == NULLH.J. Lu2-1/+5
Report BFD error When bfd_section == NULL in init_os. * ldlang.c (init_os): Pass %E to einfo when bfd_section == NULL.
2016-05-04LD/testsuite: Add STB_GNU_UNIQUE cross-linker testMaciej W. Rozycki3-2/+19
Some targets are only really, or at least regularly, regression-tested in a crossed configuration. Currently we only have native compiled test cases for the STB_GNU_UNIQUE feature in the linker test suite. This is nice, covering run-time semantics even, but quite often not run at all. Consequently a regression may remain unnoticed for long. Add a simple test case then to provide basic linker coverage with no need for a compiler or a native toolchain. ld/ * testsuite/ld-unique/unique.d: New test. * testsuite/ld-unique/unique.exp: Run the new test. Adjust messages for compiled tests.
2016-05-04Fix some AVR test failures.Senthil Kumar Selvaraj6-8/+30
binutils* testsuite/lib/binutils-common.exp (is_elf_format): Add avr-*-*. ld * testsuite/ld-elf/pr18735.d: Allow other symbols. * testsuite/ld-elf/sec64k.exp: Skip 64ksec for avr. * testsuite/ld-gc/pr14265.d: Allow other symbols. * testsuite/ld-plugin/plugin.exp: Add PR ld/17973 to plugin_tests only if check_shared_lib_support is true. * testsuite/ld-selective/selective.exp: Add --section-start flag for avr.
2016-05-03PR 10549: MIPS/LD: Handle OSABI setting for STB_GNU_UNIQUEMaciej W. Rozycki2-1/+7
Add missing OSABI handling for MIPS/LD, complementing: commit f64b2e8d60f277b705c96d4b4e585f5f7c847cc4 Author: Nick Clifton <nickc@redhat.com> Date: Mon Apr 11 08:13:22 2011 +0000 Adjust test coverage accordingly. bfd/ PR 10549 * elfxx-mips.c (_bfd_mips_elf_add_symbol_hook): Handle STB_GNU_UNIQUE. ld/ PR 10549 * testsuite/ld-unique/unique.exp: Also run for `mips*-*-*'.
2016-05-03[AArch64] Also puts value in place for R_AARCH64_RELATIVEJiong Wang9-1/+89
When handling absolute relocations for global symbols bind within the shared object, AArch64 will generate one dynamic RELATIVE relocation, but won't apply the value for this absolution relocations at static linking stage. This is different from AArch64 gold linker and x86-64. This is not a bug as AArch64 is RELA, there is only guarantee that relocation addend is placed in the relocation entry. But some system softwares originally writen for x86-64 might assume AArch64 bfd linker gets the same behavior as x86-64, then they could take advantage of this buy skipping those RELATIVE dynamic relocations if the load address is the same as the static linking address. This patch makes AArch64 BFD linker applies absolution relocations at static linking stage for scenario described above. Meanwhile old AArch64 android loader has a bug (PR19163) which relies on current linker behavior as a workaround, so the same option --no-apply-dynamic-relocs added.
2016-05-03Skip ELF STT_COMMON linker tests if shared libraries are not supported.Senthil Kumar Selvaraj2-0/+13
* testsuite/ld-elfcomm/elfcomm.exp: Check for shared lib support before running STT_COMMON tests.
2016-04-29Download source only on remote hostH.J. Lu3-7/+32
There is no need to download source if we aren't on remote host. Otherwise, each ld test run on local host leaves behind a couple test files. * config/default.exp (NOPIE_CFLAGS): Download source only on remote host. (NOPIE_LDFLAGS): Likewise. * testsuite/lib/ld-lib.exp (check_lto_available): Likewise. (check_lto_fat_available): Likewise. (check_lto_shared_available): Likewise. (check_ifunc_available): Likewise. (check_ifunc_attribute_available): Likewise.
2016-04-27Limit ld-elf/compressed1b.d to Linux/GNU targetsH.J. Lu2-0/+5
Since not all ELF targets use the elf.em emulation to support ld option: --compress-debug-sections=zlib-gnu, limit compressed1b.d to Linux/GNU targets. * testsuite/ld-elf/compressed1b.d: Only run for Linux/GNU targets.
2016-04-27Skip debug sections when estimating distancesH.J. Lu2-4/+13
Skip debug sections when estimating distances between output sections since compressed_size is used to compress debug sections and debug sections aren't excluded from distances between output sections. bfd/ PR ld/20006 * elf64-x86-64.c (elf_x86_64_convert_load): Skip debug sections when estimating distances between output sections. ld/ PR ld/20006 * testsuite/ld-elfvsb/elfvsb.exp (COMPRESS_LDFLAG): New. (visibility_run): Pass COMPRESS_LDFLAG to visibility_test on ELF targets.
2016-04-27Pass --compress-debug-sections=none to ldH.J. Lu3-2/+8
Since ld may generate compressed debug sections by default, pass --compress-debug-sections=none to ld to avoid compressed debug sections. * ld-elf/compressed1b.d: Pass --compress-debug-sections=none to ld. * ld-elf/compressed1c.d: Likewise.
2016-04-27Fix powerpc64 ld testsuite failAlan Modra2-2/+7
PR target/19985 * configure.tgt: Don't use var+=.
2016-04-25Allow powerpc64le-linux-gnu toolchain to support big endian targets as well.Nick Clifton2-2/+11
PR target/19985 * configure.tgt: Include big endian PPC64 emulations with little endian PPC64 targets.
2016-04-25AVR: Allow the start address of the .text section to be set by --section-start.Senthil Kumar Selvaraj2-1/+5
* scripttempl/avrtiny.sc (.text): Do not set LMA to zero.
2016-04-21Always run LTO tests on Linux with GCC 4.9 or newerH.J. Lu1-0/+21
Check for LTO availability will hide LTO bugs in ld. Since GCC 4.9 adds -ffat-lto-objects, we always run LTO tests on Linux with GCC 4.9 or newer. * testsuite/lib/ld-lib.exp (check_lto_available): Return 1 on Linux with GCC 4.9 or newer. (check_lto_fat_available): Likewise. (check_lto_shared_available): Likewise.
2016-04-21Add support for non-ELF targets to check their relocs.Nick Clifton2-5/+12
bfd * aout-adobe.c: Use _bfd_generic_link_check_relocs. * aout-target.h: Likewise. * aout-tic30.c: Likewise. * binary.c: Likewise. * bout.c: Likewise. * coff-alpha.c: Likewise. * coff-rs6000.c: Likewise. * coff64-rs6000.c: Likewise. * coffcode.h: Likewise. * i386msdos.c: Likewise. * i386os9k.c: Likewise. * ieee.c: Likewise. * ihex.c: Likewise. * libbfd-in.h: Likewise. * libecoff.h: Likewise. * mach-o-target.c: Likewise. * mmo.c: Likewise. * nlm-target.h: Likewise. * oasys.c: Likewise. * pef.c: Likewise. * plugin.c: Likewise. * ppcboot.c: Likewise. * som.c: Likewise. * srec.c: Likewise. * tekhex.c: Likewise. * versados.c: Likewise. * vms-alpha.c: Likewise. * xsym.c: Likewise. * elfxx-target.h: Use _bfd_elf_link_check_relocs. * linker.c (bfd_link_check_relocs): New function. (_bfd_generic_link_check_relocs): New function. * targets.c (BFD_JUMP_TABLE_LINK): Add initialization of _bfd_link_check_relocs field. (struct bfd_target)L Add _bfd_link_check_relocs field. * bfd-in2.h: Regenerate. * libbfd.h: Regenerate. ld * ldlang.c (lang_check_relocs): Use bfd_link_check_relocs in prefernce to _bfd_elf_link_check_relocs. Drop test for ELF targets. Do not stop the checks when problems are encountered. include * bfdlink.h: Add prototype for bfd_link_check_relocs.
2016-04-21New NOCROSSREFS_TO testsAlan Modra6-10/+19
Fixes failures on hppa-linux and alpha-linux due to not merging .data.* and .sdata into .data. cross3.t modified too since it is the template for the NOCROSSREFS_TO scripts. * testsuite/ld-scripts/cross3.t: Add commonly used data and text section names to output section statements. * testsuite/ld-scripts/cross4.t: Likewise. * testsuite/ld-scripts/cross5.t: Likewise. * testsuite/ld-scripts/cross6.t: Likewise. * testsuite/ld-scripts/cross7.t: Likewise.
2016-04-20Move ELF relocation check after lang_gc_sectionsH.J. Lu3-14/+31
Move ELF relocation check after lang_gc_sections so that all the reference counting code for plt and got relocs can be removed. This only affects ELF targets which check relocations after opening all input file. * ldlang.c (lang_check_relocs): New function. (lang_process): Call lang_check_relocs after lang_gc_sections. * emultempl/elf32.em (gld${EMULATION_NAME}_before_parse): Don't call _bfd_elf_link_check_relocs here.
2016-04-20Check R_386_NONE/R_X86_64_NONE in eh6.dH.J. Lu2-1/+10
There is no need for run-time relocation when converting pointers in .eh_frame section to DW_EH_PE_pcrel encoding. R_386_NONE and R_X86_64_NONE are expected since the space for run-time relocation has been allocated. This is an optimization. PR ld/19972 * testsuite/ld-elf/eh6.d: Pass -rW to readelf and check for R_386_NONE or R_X86_64_NONE.
2016-04-20Add ld-x86-64/pic1 testH.J. Lu4-0/+12
* testsuite/ld-x86-64/pic1.d: New file. * testsuite/ld-x86-64/pic1.s: Likewise. * testsuite/ld-x86-64/x86-64.exp: Run pic1.
2016-04-20Add ld-x86-64/pie2 testH.J. Lu4-0/+18
* testsuite/ld-x86-64/pie2.d: New file. * testsuite/ld-x86-64/pie2.s: Likewise. * testsuite/ld-x86-64/x86-64.exp: Run pie2.
2016-04-20Check run-time R_X86_64_32 relocation overflowH.J. Lu5-0/+36
Since elf_x86_64_check_relocs is called after opening all input files, we can detect dynamic R_X86_64_32 relocation overflow there. bfd/ PR ld/19969 * elf64-x86-64.c (check_relocs_failed): New. (elf_x86_64_need_pic): Moved before elf_x86_64_check_relocs. Support relocation agaist local symbol. Set check_relocs_failed. (elf_x86_64_check_relocs): Use elf_x86_64_need_pic. Check R_X86_64_32 relocation overflow. (elf_x86_64_relocate_section): Skip if check_relocs failed. Update one elf_x86_64_need_pic and remove one elf_x86_64_need_pic. ld/ PR ld/19969 * testsuite/ld-x86-64/pr19969.d: New file. * testsuite/ld-x86-64/pr19969a.S: Likewise. * testsuite/ld-x86-64/pr19969b.S: Likewise. * testsuite/ld-x86-64/x86-64.exp: Run pr19969 tests.
2016-04-20Check ELF relocs after opening all input filesH.J. Lu10-0/+48
Delaying checking ELF relocations until opening all input files so that symbol information is final when relocations are checked. This is only enabled for x86 targets. bfd/ * elf-bfd.h (_bfd_elf_link_check_relocs): New. * elflink.c (_bfd_elf_link_check_relocs): New function. (elf_link_add_object_symbols): Call _bfd_elf_link_check_relocs if check_relocs_after_open_input is FALSE. include/ * bfdlink.h (bfd_link_info): Add check_relocs_after_open_input. ld/ * emulparams/elf32_x86_64.sh (CHECK_RELOCS_AFTER_OPEN_INPUT): New. * emulparams/elf_i386.sh (CHECK_RELOCS_AFTER_OPEN_INPUT): Likewise. * emulparams/elf_i386_be.sh (CHECK_RELOCS_AFTER_OPEN_INPUT): Likewise. * emulparams/elf_i386_chaos.sh (CHECK_RELOCS_AFTER_OPEN_INPUT): Likewise. * emulparams/elf_i386_ldso.sh (CHECK_RELOCS_AFTER_OPEN_INPUT): Likewise. * emulparams/elf_i386_vxworks.sh (CHECK_RELOCS_AFTER_OPEN_INPUT): Likewise. * emulparams/elf_x86_64.sh (CHECK_RELOCS_AFTER_OPEN_INPUT): Likewise. * emulparams/i386nto.sh (CHECK_RELOCS_AFTER_OPEN_INPUT): Likewise. * emultempl/elf32.em (gld${EMULATION_NAME}_before_parse): Set check_relocs_after_open_input to TRUE if CHECK_RELOCS_AFTER_OPEN_INPUT is yes. (gld${EMULATION_NAME}_after_open): Call _bfd_elf_link_check_relocs on all inputs if check_relocs_after_open_input is TRUE.
2016-04-20Replace .long with .dc.a on my_personality_v0H.J. Lu2-1/+6
We should use .dc.a instead of .long to take address of a symbol. * testsuite/ld-elf/eh6.s: Replace .long with .dc.a on my_personality_v0.
2016-04-20update many old style function definitionsTrevor Saunders2-1/+5
This includes regenerating a bunch of files in opcodes/ with trunk cgen. gprof/ChangeLog: 2016-04-20 Trevor Saunders <tbsaunde+binutils@tbsaunde.org> * basic_blocks.c: Update old style function definitions. * cg_arcs.c: Likewise. * cg_print.c: Likewise. * gen-c-prog.awk: Likewise. * gmon_io.c: Likewise. * hertz.c: Likewise. * hist.c: Likewise. * sym_ids.c: Likewise. bfd/ChangeLog: 2016-04-20 Trevor Saunders <tbsaunde+binutils@tbsaunde.org> * cache.c: Update old style function definitions. * elf32-m68k.c: Likewise. * elf64-mmix.c: Likewise. * stab-syms.c: Likewise. opcodes/ChangeLog: 2016-04-20 Trevor Saunders <tbsaunde+binutils@tbsaunde.org> * alpha-dis.c: Regenerate. * crx-dis.c: Likewise. * disassemble.c: Likewise. * epiphany-opc.c: Likewise. * fr30-opc.c: Likewise. * frv-opc.c: Likewise. * ip2k-opc.c: Likewise. * iq2000-opc.c: Likewise. * lm32-opc.c: Likewise. * lm32-opinst.c: Likewise. * m32c-opc.c: Likewise. * m32r-opc.c: Likewise. * m32r-opinst.c: Likewise. * mep-opc.c: Likewise. * mt-opc.c: Likewise. * or1k-opc.c: Likewise. * or1k-opinst.c: Likewise. * tic80-opc.c: Likewise. * xc16x-opc.c: Likewise. * xstormy16-opc.c: Likewise. ld/ChangeLog: 2016-04-20 Trevor Saunders <tbsaunde+binutils@tbsaunde.org> * emultempl/scoreelf.em: Likewise. binutils/ChangeLog: 2016-04-20 Trevor Saunders <tbsaunde+binutils@tbsaunde.org> * resres.c: Likewise. gas/ChangeLog: 2016-04-20 Trevor Saunders <tbsaunde+binutils@tbsaunde.org> * cgen.c: Likewise. * config/tc-bfin.c: Likewise. * config/tc-ia64.c: Likewise. * config/tc-mep.c: Likewise. * config/tc-metag.c: Likewise. * config/tc-nios2.c: Likewise. * config/tc-rl78.c: Likewise.
2016-04-19Add another testcase for PR ld/19719H.J. Lu4-0/+27
This test checks run-time relocation overflow with GOT relocation and 32-bit relocation against the same symbol. PR ld/19719 * testsuite/ld-x86-64/pr19719.d: New file. * testsuite/ld-x86-64/pr19719.s: Likewise. * testsuite/ld-x86-64/x86-64.exp: Run pr19719.
2016-04-18Add new NOCROSSREFS_TO linker script commandMatthew Fortune13-7/+180
NOCROSSREFS_TO is similar to the existing NOCROSSREFS command but only checks one direction of cross referencing. ld/ChangeLog * ld.texinfo: Document NOCROSSREFS_TO script command. * ldlang.h (struct lang_nocrossrefs): Add onlyfirst field. (lang_add_nocrossref_to): New prototype. * ldcref.c (check_local_sym_xref): Use onlyfirst to only look for symbols defined in the first section. (check_nocrossref): Likewise. * ldgram.y (NOCROSSREFS_TO): New script command. * ldlang.c (lang_add_nocrossref): Set onlyfirst to FALSE. (lang_add_nocrossref_to): New function. * ldlex.l (NOCROSSREFS_TO): New token. * NEWS: Mention NOCROSSREFS_TO. * testsuite/ld-scripts/cross4.t: New file. * testsuite/ld-scripts/cross5.t: Likewise. * testsuite/ld-scripts/cross6.t: Likewise. * testsuite/ld-scripts/cross7.t: Likewise. * testsuite/ld-scripts/crossref.exp: Run 4 new NOCROSSREFS_TO tests.
2016-04-15Regenerate Makefile.in/aclocal.m4 automake 1.11.6H.J. Lu3-83/+164
bfd/ * Makefile.in: Regenerated with automake 1.11.6. * aclocal.m4: Likewise. * doc/Makefile.in: Likewise. binutils/ * Makefile.in: Regenerated with automake 1.11.6. * aclocal.m4: Likewise. * doc/Makefile.in: Likewise. gas/ * Makefile.in: Regenerated with automake 1.11.6. * aclocal.m4: Likewise. * doc/Makefile.in: Likewise. gold/ * Makefile.in: Regenerated with automake 1.11.6. * aclocal.m4: Likewise. * testsuite/Makefile.in: Likewise. gprof/ * Makefile.in: Regenerated with automake 1.11.6. * aclocal.m4: Likewise. ld/ * Makefile.in: Regenerated with automake 1.11.6. * aclocal.m4: Likewise. opcodes/ * Makefile.in: Regenerated with automake 1.11.6. * aclocal.m4: Likewise.
2016-04-14arc/nps400 : New cmem instructions and associated relocationAndrew Burgess6-0/+69
Add support for arc/nps400 cmem instructions, these load and store instructions are hard-wired to access "0x57f00000 + 16-bit-offset". Supporting this relocation required some additions to the arc relocation handling in the bfd library, as well as the standard changes required to add a new relocation type. There's a test of the new instructions in the assembler, and a test of the relocation in the linker. bfd/ChangeLog: * reloc.c: Add BFD_RELOC_ARC_NPS_CMEM16 entry. * bfd-in2.h: Regenerate. * libbfd.h: Regenerate. * elf32-arc.c: Add 'opcode/arc.h' include. (struct arc_relocation_data): Add symbol_name. (arc_special_overflow_checks): New function. (arc_do_relocation): Use arc_special_overflow_checks, reindent as required, add an extra comment. (elf_arc_relocate_section): Setup symbol_name in reloc_data. gas/ChangeLog: * testsuite/gas/arc/nps400-3.d: New file. * testsuite/gas/arc/nps400-3.s: New file. include/ChangeLog: * elf/arc-reloc.def: Add ARC_NPS_CMEM16 reloc. * opcode/arc.h (NPS_CMEM_HIGH_VALUE): Define. ld/ChangeLog: * testsuite/ld-arc/arc.exp: New file. * testsuite/ld-arc/nps-1.s: New file. * testsuite/ld-arc/nps-1a.d: New file. * testsuite/ld-arc/nps-1b.d: New file. * testsuite/ld-arc/nps-1b.err: New file. opcodes/ChangeLog: * arc-nps400-tbl.h: Add xldb, xldw, xld, xstb, xstw, and xst instructions. * arc-opc.c (insert_nps_cmem_uimm16): New function. (extract_nps_cmem_uimm16): New function. (arc_operands): Add NPS_XLDST_UIMM16 operand.
2016-04-14Extend PE matching regexp in PR 19457 test to match cygwin and mingw targets.Nick Clifton2-0/+15
PR 19457 * testsuite/ld-scripts/script.exp (extract_symbol_test): Add exceptions for Mingw and Cygwin.
2016-04-13ld/testsuite: Initialise a variable to prevent tcl errorsAndrew Burgess2-0/+6
In some cases a variable could be left uninitialised and then an attempt made to read this variable, resulting in a tcl error. This commit initialises the variable in all cases. ld/ChangeLog: * testsuite/lib/ld-lib.exp (run_dump_test): Initialise check_ld(terminal).
2016-04-13Update x86-64 tests for --as-neededH.J. Lu2-12/+34
Since compiler may pass --as-needed to ld by default, link .o file before .so file in x86-64 tests. PR ld/19774 * testsuite/ld-x86-64/x86-64.exp: Link tmpdir/pr17689b.o before tmpdir/pr17689.so, fix gotpcrel1 test and add more --as-needed tests.
2016-04-11Properly handle dynamic reloc against normal symbolH.J. Lu9-0/+58
We shouldn't issue an error for read-only segment with dynamic IFUNC relocations when dynamic relocations are against normal symbols. bfd/ PR ld/19939 * elf-bfd.h (_bfd_elf_allocate_ifunc_dyn_relocs): Add a pointer to bfd_boolean. * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Updated. Set *readonly_dynrelocs_against_ifunc_p to TRUE if dynamic reloc applies to read-only section. * elf32-i386.c (elf_i386_link_hash_table): Add readonly_dynrelocs_against_ifunc. (elf_i386_allocate_dynrelocs): Updated. (elf_i386_size_dynamic_sections): Issue an error for read-only segment with dynamic IFUNC relocations only if readonly_dynrelocs_against_ifunc is TRUE. * elf64-x86-64.c (elf_x86_64_link_hash_table): Add readonly_dynrelocs_against_ifunc. (elf_x86_64_allocate_dynrelocs): Updated. (elf_x86_64_size_dynamic_sections): Issue an error for read-only segment with dynamic IFUNC relocations only if readonly_dynrelocs_against_ifunc is TRUE. * elfnn-aarch64.c (elfNN_aarch64_allocate_ifunc_dynrelocs): Updated. ld/ PR ld/19939 * testsuite/ld-i386/i386.exp: Run PR ld/19939 tests. * testsuite/ld-x86-64/x86-64.exp: Likewise. * testsuite/ld-i386/pr19939.s: New file. * testsuite/ld-i386/pr19939a.d: Likewise. * testsuite/ld-i386/pr19939b.d: Likewise. * testsuite/ld-x86-64/pr19939.s: Likewise. * testsuite/ld-x86-64/pr19939a.d: Likewise. * testsuite/ld-x86-64/pr19939b.d: Likewise.
2016-04-09Adjust default memory size and stack base address for SH simulator.Oleg Endo2-2/+6
ld/ChangeLog: * sh/interp.c (sim_memory_size): Default init to 30. (parse_and_set_memory_size): Adjust upper bound to 31. sim/ChangeLog: * sh/interp.c (sim_memory_size): Default init to 30. (parse_and_set_memory_size): Adjust upper bound to 31.
2016-04-08PR18452, ld allows overlapping sectionsAlan Modra2-19/+34
PR 18452 * ldlang.c (maybe_overlays): Delete. (lang_size_sections_1): Remove code setting maybe_overlays. (lang_check_section_addresses): Instead detect overlays by exact match of section VMAs here. Fix memory leak.
2016-04-08Show sizes in linker map in target machine address unitsDan Gisselquist2-4/+15
* ldlang.c (print_output_section_statement): Show minfo size in target machine address units. (print_reloc_statement): Likewise. (print_padding_statement): Likewise. (print_data_statement): Likewise. Ensure minimum print_dot increment of one address unit.
2016-04-07ld/arc: Make little endian default choice for linker scriptsAndrew Burgess2-3/+8
When building with --enable-targets=all the target string is not set to something that matches the pattern arc*-*, and so the script used to decide if we should build big or little endian linker script currently exits with an error. This commit makes little endian linker script be the default, which will be used when building for all targets, this matches the behaviour from before I made the endianness switchable, when we only ever built little endian linker scripts anyway. ld/ChangeLog: * emulparams/arc-endianness.sh: Make little endian default choice.