summaryrefslogtreecommitdiff
path: root/ld
Commit message (Collapse)AuthorAgeFilesLines
* Don't align text/data/bss sections for ELFH.J. Lu2013-05-3117-49/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | binutils/testsuite/ * binutils-all/i386/compressed-1b.d: Updated for text/data/bss section alignment change. * binutils-all/i386/compressed-1c.d: Likewise. * binutils-all/x86-64/compressed-1b.d: Likewise. * binutils-all/x86-64/compressed-1c.d: Likewise. gas/ * config/tc-i386.c (md_begin): Don't align text/data/bss sections for ELF. gas/testsuite/ * gas/i386/size-3.d: Updated for text/data/bss section alignment change. * gas/i386/x86-64-size-1.d: Likewise. * gas/i386/x86-64-unwind.d: Likewise. * gas/i386/ilp32/x86-64-size-1.d: Likewise. * gas/i386/ilp32/x86-64-size-5.d: Likewise. * gas/i386/ilp32/x86-64-unwind.d: Likewise. ld/testsuite/ * ld-i386/pr12718.d: Updated for text/data/bss section alignment change. * ld-i386/tlsbindesc.dd: Likewise. * ld-i386/tlsbindesc.rd: Likewise. * ld-i386/tlsnopic.dd: Likewise. * ld-i386/tlspic.dd: Likewise. * ld-x86-64/ilp32-4.d: Likewise. * ld-x86-64/pr12718.d: Likewise. * ld-x86-64/split-by-file.rd: Likewise. * ld-x86-64/tlsbin.dd: Likewise. * ld-x86-64/tlsbin.rd: Likewise. * ld-x86-64/tlsbindesc.dd: Likewise. * ld-x86-64/tlsbindesc.rd: Likewise. * ld-x86-64/tlsdesc.dd: Likewise. * ld-x86-64/tlsdesc.rd: Likewise. * ld-x86-64/tlspic.dd: Likewise. * ld-x86-64/tlspic.rd: Likewise.
* gas/Maciej W. Rozycki2013-05-294-0/+38
| | | | | | | | | | | | | | | | | | | * write.c (resolve_reloc_expr_symbols): On REL targets don't convert relocs who have no relocatable field either. Rephrase the conditional so that the PC-relative check is only applied for REL targets. gas/testsuite/ * gas/mips/jalr3.d: New test. * gas/mips/jalr3-n32.d: New test. * gas/mips/jalr3-n64.d: New test. * gas/mips/jalr3.s: New test source. * gas/mips/mips.exp: Run the new tests. ld/testsuite/ * ld-mips-elf/jalr3.dd: New test. * ld-mips-elf/jalr3.ld: New test linker script. * ld-mips-elf/mips-elf.exp: Run the new test.
* PR ld/12982Alan Modra2013-05-212-1/+7
| | | | * ld-plugin/pr12982.d: Fail if RWE GNU_STACK present.
* * ld-powerpc/export-class.exp (supports_ppc64): Delete.Alan Modra2013-05-213-31/+29
| | | | | | (powerpc_export_class_test): Add "endian" param. (abis): Add little-endian targets and test. * ld-powerpc/powerpc-64-export-class.xd: Update for little-endian.
* XCOFF/AIX: Remove SEC_ALLOC flags for unmapped sections.Joel Brobecker2013-05-104-3/+9
| | | | | | | | | | | | | | | | The .except, .loader and .typchk are not mapped to memory, so do not set their SEC_ALLOC flag. bfd/ChangeLog: * coffcode.h (styp_to_sec_flags) [RS6000COFF_C]: Add handling of STYP_EXCEPT, STYP_LOADER and STYP_TYPCHK sections. ld/testsuite/ChangeLog: * ld-powerpc/aix-core-sec-1.hd, ld-powerpc/aix-core-sec-2.hd, ld-powerpc/aix-core-sec-3.hd: Adjust expected section flags for section .loader.
* gold/Maciej W. Rozycki2013-05-0311-1/+105
| | | | | | | | | | | | | | | | | | | | | PR ld/15365 * layout.cc (Layout::finalize): Make __ehdr_start STV_HIDDEN. ld/ PR ld/15365 * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Restrict __ehdr_start's export class to no less than STV_HIDDEN. ld/testsuite/ PR ld/15365 * ld-elf/ehdr_start.d: Expect __ehdr_start to be STB_LOCAL. * ld-mips-elf/ehdr_start-1.nd: New test. * ld-mips-elf/ehdr_start-2.nd: New test. * ld-mips-elf/ehdr_start-1.ld: New test linker script. * ld-mips-elf/ehdr_start-2.ld: New test linker script. * ld-mips-elf/ehdr_start-new.s: New test source. * ld-mips-elf/ehdr_start-o32.s: New test source. * ld-mips-elf/mips-elf.exp: Run the new tests.
* * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation):Maciej W. Rozycki2013-05-032-5/+12
| | | | Only call lang_for_each_statement if an ELF hash table is used.
* * ld-elf/provide-hidden-s.nd: New test.Maciej W. Rozycki2013-05-0316-0/+274
| | | | | | | | | | | | | | | | | * ld-elf/provide-hidden-abs.nd: New test. * ld-elf/provide-hidden-def.nd: New test. * ld-elf/provide-hidden-dyn.nd: New test. * ld-elf/provide-hidden-sec.nd: New test. * ld-elf/provide-hidden-dynabs.nd: New test. * ld-elf/provide-hidden-dynsec.nd: New test. * ld-elf/provide-hidden-s.ld: New test linker script. * ld-elf/provide-hidden-1.ld: New test linker script. * ld-elf/provide-hidden-2.ld: New test linker script. * ld-elf/provide-hidden-1.s: New test source. * ld-elf/provide-hidden-2.s: New test source. * ld-elf/provide-hidden-3.s: New test source. * ld-elf/provide-hidden-4.s: New test source. * ld-elf/provide-hidden.exp: New test script.
* * archures.c: Add some more MSP430 machine numbers.Nick Clifton2013-05-0219-53/+212
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * config.bfd (msp430): Define targ_selvecs. * configure.in: Add bfd_elf32_msp430_ti_vec. * cpu-msp430.c: Add some more MSP430 machine numbers. * elf32-msp430.c Add support for MSP430X relocations. Add support for TI compiler generated relocations. Add support for sym_diff relocations. Add support for relaxing out of range short branches into long branches. Add support for MSP430 attribute section. * reloc.c: Add MSP430X relocations. * targets.c: Add bfd_elf32_msp430_ti_vec. * bfd-in2.h: Regenerate. * configure: Regenerate. * libbfd.h: Regenerate. * readelf.c: Add support for MSP430X architecture. * readelf.exp: Expect -wi test to fail for the MSP430. * config/tc-msp430.c: Add support for the MSP430X architecture. Add code to insert a NOP instruction after any instruction that might change the interrupt state. Add support for the LARGE memory model. Add code to initialise the .MSP430.attributes section. * config/tc-msp430.h: Add support for the MSP430X architecture. * doc/c-msp430.texi: Document the new -mL and -mN command line options. * NEWS: Mention support for the MSP430X architecture. * gas/all/gas.exp: Skip the DIFF1 test for the MSP430. Expect the FORWARD test to pass for the MSP430. Skip the REDEF tests for the MSP430. Expect the 930509A test to fail for the MSP430. * gas/all/sleb128-4.d: Skip for the MSP430. * gas/elf/elf.exp: Set target_machine to msp430 for the MSP430. Skip the EHOPT0 test for the MSP430. Skip the REDEF and EQU-RELOC tests for the MSP430. * gas/elf/section2.e-msp430: New file. * gas/lns/lns-big-delta.d: Remove expectation of 20-bit addresses. * gas/lns/lns.exp: Use alternate LNS COMMON test for the MSP430. * gas/msp430/msp430x.s: New test. * gas/msp430/msp430x.d: Expected disassembly. * gas/msp430/msp430.exp: Run new test. * gas/msp430/opcode.d: Update expected disassembly. * msp430.h: Add MSP430X relocs. Add some more MSP430 machine numbers. Add values used by .MSP430.attributes section. * msp430.h: Add patterns for MSP430X instructions. * Makefile.am: Add emsp430X.c * Makefine.in: Regenerate. * configure.tgt (msp430): Add msp430X emulation. * ldmain.c (multiple_definition): Only disable relaxation if it was enabled by the user. * ldmain.h (RELAXATION_ENABLED_BY_USER): New macro. * emulparams/msp430all.sh: Add support for MSP430X. * emultempl/generic.em: (before_parse): Enable relaxation for the MSP430. * scripttempl/msp430.sc: Reorganize sections. Add .rodata section. * scripttempl/msp430_3.sc: Likewise. * NEWS: Mention support for MSP430X. * ld-elf/flags1.d: Expect this test to pass on the MSP430. * ld-elf/init-fini-arrays.d: Expect this test to fail on the MSP430. * ld-elf/merge.d: Expect this test to pass on the MSP430. * ld-elf/sec64k.exp: Skip these tests for the MSP430. * ld-gc/pr13683.d: Expect this test to fail on the MSP430. * ld-srec/srec.exp: Expect these tests to fail on the MSP430. * ld-undefined/undefined.exp: Expect the UNDEFINED LINE test to fail on the MSP430. * msp430-dis.c: Add support for MSP430X instructions.
* bfd/Maciej W. Rozycki2013-05-012-2/+8
| | | | | | | | | | | | | | | | | | * config.bfd: Replace alpha*-*-linuxecoff* pattern with alpha*-*-linux*ecoff*. binutils/testsuite/ * lib/binutils-common.exp (is_elf_format): Also exclude *-*-linux*ecoff*. gas/ * configure.tgt: Replace alpha*-*-linuxecoff* pattern with alpha*-*-linux*ecoff*. ld/ * configure.tgt: Replace alpha*-*-linuxecoff* pattern with alpha*-*-linux*ecoff*. Update the `sed' pattern used to convert from alpha*-*-linux-* to alpha*-*-linux*ecoff*.
* * lib/ld-lib.exp (check_shared_lib_support): Also excludeMaciej W. Rozycki2013-05-012-0/+6
| | | | mips*-*-elf.
* * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation):Maciej W. Rozycki2013-05-012-1/+6
| | | | Use is_elf_hash_table rather than a handcoded condition.
* * lib/ld-lib.exp (check_shared_lib_support): Match cris*-*-elf asHans-Peter Nilsson2013-04-302-1/+6
| | | | a negative pattern instead of cris*-*-*.
* line omitted from previous delta.Nick Clifton2013-04-301-0/+2
|
* ld/testsuite/ld-arm: Fix ifunc-17 failure with arm-eabi.willnewton2013-04-305-19/+26
| | | | | | | | | | | ld/testsuite/ChangeLog: 2013-04-30 Will Newton <will.newton@linaro.org> * ld-arm/arm-elf.exp: Use linker script for IFUNC test 17. * ld-arm/ifunc-17.dd: Update offsets for linker script. * ld-arm/ifunc-17.gd: Likewise. * ld-arm/ifunc-17.rd: Likewise.
* * ld.texinfo (SORT_BY_ALIGNMENT): Fix and clarify typo - sectionsNick Clifton2013-04-302-3/+8
| | | | are sorted by descending order of alignment.
* * elflink.c (_bfd_elf_gc_mark_extra_sections): Remove mark fromNick Clifton2013-04-292-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fragmented .debug_line sections associated with unmarked code sections. * dwarf.c (read_debug_line_header): New function. Reads in a header in a .debug_line section. (display_debug_lines_raw): Use new function. Handle fragmentary .debug_line sections. (display_debug_lines_decoded): Likewise. * readelf.c (process_section_headers): Handle fragmenatry .debug_line sections. (display_debug_section): Likewise. * as.c (Options): Add -gdwarf-sections. (parse_args): Likewise. * as.h (flag_dwarf_sections): Declare. * dwarf2dbg.c (emit_fixed_inc_line_addr): Skip section changes. (process_entries): When -gdwarf-sections is enabled generate fragmentary .debug_line sections. (out_debug_line): Set the section for the .debug_line section end symbol. * doc/as.texinfo: Document -gdwarf-sections. * NEWS: Mention -gdwarf-sections. * gas/elf/dwarf2-3.d: Fix expected readelf output. * scripttempl/DWARF.sc: Add support for .debug_line.* and .debug_line_end.
* bfd/efl32-arm.c: Fix handling of IRELATIVE relocs.willnewton2013-04-2910-6/+87
| | | | | | | | | | | | | | | | | | | | | | | bfd/ChangeLog: 2013-04-24 Will Newton <will.newton@linaro.org> * elf32-arm.c (elf32_arm_populate_plt_entry): Call elf32_arm_add_dynreloc when emitting R_ARM_IRELATIVE relocs. ld/testsuite/ChangeLog: 2013-04-24 Will Newton <will.newton@linaro.org> * ld-arm/arm-elf.exp: Add IFUNC test 17. * ld-arm/ifunc-17.dd: New file. * ld-arm/ifunc-17.gd: Likewise. * ld-arm/ifunc-17.rd: Likewise. * ld-arm/ifunc-17.s: Likweise. * ld-arm/ifunc-1.rd: Reorder relocs to match linker output. * ld-arm/ifunc-2.rd: Likewise. * ld-arm/ifunc-5.rd: Likewise. * ld-arm/ifunc-6.rd: Likewise.
* ld-plugin/lto.exp: Disable ld/12942 test for gcc < 4.7.0.willnewton2013-04-292-19/+35
| | | | | | | | | | | The test for ld/12942 fails with gcc versions before 4.7.0. This patch disables this test with these versions of gcc. ld/testsuite/ChangeLog: 2013-04-29 Will Newton <will.newton@linaro.org> * ld-plugin/lto.exp: Disable ld/12942 test for gcc < 4.7.0.
* * emultempl/pe.em [cygwin]: Do not merge rdata with v2Nick Clifton2013-04-292-6/+13
| | | | psuedo-relocs.
* ld/Thomas Schwinge2013-04-2829-28/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * scripttempl/armbpabi.sc: Replace "source" usage with ".". * scripttempl/avr.sc: Likewise. * scripttempl/elf.sc: Likewise. * scripttempl/elf32cr16.sc: Likewise. * scripttempl/elf32crx.sc: Likewise. * scripttempl/elf32msp430.sc: Likewise. * scripttempl/elf32msp430_3.sc: Likewise. * scripttempl/elf32sh-symbian.sc: Likewise. * scripttempl/elf64hppa.sc: Likewise. * scripttempl/elf_chaos.sc: Likewise. * scripttempl/elfd10v.sc: Likewise. * scripttempl/elfd30v.sc: Likewise. * scripttempl/elfi370.sc: Likewise. * scripttempl/elfm68hc11.sc: Likewise. * scripttempl/elfm68hc12.sc: Likewise. * scripttempl/elfxgate.sc: Likewise. * scripttempl/elfxtensa.sc: Likewise. * scripttempl/epiphany_4x4.sc: Likewise. * scripttempl/i386beos.sc: Likewise. * scripttempl/i386go32.sc: Likewise. * scripttempl/ia64vms.sc: Likewise. * scripttempl/ip2k.sc: Likewise. * scripttempl/iq2000.sc: Likewise. * scripttempl/mep.sc: Likewise. * scripttempl/mmo.sc: Likewise. * scripttempl/v850.sc: Likewise. * scripttempl/v850_rh850.sc: Likewise. * scripttempl/xstormy16.sc: Likewise.
* * scripttempl/avr.sc: Add ALIGN directive after *(.progmem*).Nick Clifton2013-04-262-0/+6
|
* * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): TestAlan Modra2013-04-262-6/+15
| | | | | unresolved_syms_in_shared_libs rather than !executable to determine whether to load DT_NEEDED libraries.
* bfd/Alan Modra2013-04-256-37/+58
| | | | | | | | | | | | | | | | | * config.bfd: Add powerpc64le-linux. gas/ * configure.in: Allow little-endian linux. * configure: Regenerate. gold/ * configure.tgt: Add powerpcle and powerpc64le. ld/ * Makefile.am (ALL_EMULATION_SOURCES): Add eelf32lppclinux.c. (eelf32lppclinux.c): New rule. * Makefile.in: Regenerate. * configure.tgt: Merge powerpc-linux and other powerpc-elf targets with corresponding little-endian targets. * emulparams/elf32lppc.sh: Update comment. * emulparams/elf32lppclinux.sh: New.
* Enable x32 for x86_64-*-elf*H.J. Lu2013-04-242-1/+10
| | | | | | | | | | | | | | | | | | | | | | | This patch enables x32 for x86_64-*-elf* for embedded target and disables rex tests since it uses '/' as prefix separator which is `\' for x86_64-*-elf*. bfd/ * config.bfd (targ_selvecs): Add bfd_elf32_x86_64_vec for x86_64-*-elf*. gas/testsuite/ * gas/i386/rex.d: Skip x86_64-*-elf*. * gas/i386/ilp32/rex.d: Likewise. ld/ * configure.tgt (targ_extra_emuls): Adds elf32_x86_64 for x86_64-*-elf*. (targ_extra_libpath): Likewise. (tdir_elf_i386): Replace x86_64 with i386 for x86_64-*-elf*.
* ld/Yufeng Zhang2013-04-244-10/+24
| | | | | | | | | | | | * emulparams/aarch64elf.sh: Define ELFSIZE=64. * emulparams/aarch64linux.sh: Ditto. * emultempl/aarch64elf.em (aarch64_elf_before_allocation): Replace elf64 with elf${ELFSIZE}. (elf64_aarch64_add_stub_section): Likewise. (build_section_lists): Likewise. (gld${EMULATION_NAME}_after_allocation): Likewise. (gld${EMULATION_NAME}_finish): Likewise. (aarch64_elf_create_output_section_statements): Likewise.
* PR ld/15389Nick Clifton2013-04-242-0/+6
| | | | * scripttempl/avr.sc: Add .note.gnu.build-id section.
* bfd/Alan Modra2013-04-2211-13/+30
| | | | | | | | | | | | | | | | | | | | | * elf64-ppc.c (ppc64_elf_check_relocs): Don't call create_linkage_sections here.. (ppc64_elf_init_stub_bfd): ..do so here. Return status. (create_linkage_sections): Move earlier in file. (ppc64_elf_setup_section_lists): Remove now useless htab->brlt test. * elf64-ppc.h (ppc64_elf_init_stub_bfd): Update proto. ld/ * emultempl/ppc64elf.em (ppc_create_output_section_statements): Check return from ppc64_elf_init_stub_bfd. ld/testsuite/ * ld-powerpc/tlsexe.d: Adjust. * ld-powerpc/tlsexe.r: Adjust. * ld-powerpc/tlsexetoc.d: Adjust. * ld-powerpc/tlsexetoc.r: Adjust. * ld-powerpc/tlsso.d: Adjust. * ld-powerpc/tlsso.r: Adjust. * ld-powerpc/tlstocso.d: Adjust. * ld-powerpc/tlstocso.r: Adjust.
* * Makefile.am (emmo.c): Add a dependency upon scripttempl/DWARF.sc.Nick Clifton2013-04-163-2/+3
|
* Check regular reference without non-GOT referenceH.J. Lu2013-04-154-0/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | non_got_ref may not be set when building shared library. We need to set non_got_ref if there are any non-PIC relocations. But we only did this when there were no PLT/GOT relocations. It failed when there is a PLT relocation. This checkin moves the non_got_ref check out. bfd/ 2013-04-15 H.J. Lu <hongjiu.lu@intel.com> PR ld/15371 * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Check regular reference without non-GOT reference when building shared library. ld/testsuite/ 2013-04-15 H.J. Lu <hongjiu.lu@intel.com> PR ld/15371 * ld-ifunc/ifunc-20-i386.d: New file. * ld-ifunc/ifunc-20-x86-64.d: Likewise. * ld-ifunc/ifunc-20.s: Likewise. diff --git a/bfd/elf-ifunc.c b/bfd/elf-ifunc.c index e56427d..7e7ec36 100644 --- a/bfd/elf-ifunc.c +++ b/bfd/elf-ifunc.c @@ -187,23 +187,20 @@ _bfd_elf_allocate_ifunc_dyn_relocs (struct bfd_link_info *info, htab = elf_hash_table (info); + /* When building shared library, we need to handle the case where it is + marked with regular reference, but not non-GOT reference since the + non-GOT reference bit may not be set here. */ + if (info->shared && !h->non_got_ref && h->ref_regular) + for (p = *head; p != NULL; p = p->next) + if (p->count) + { + h->non_got_ref = 1; + goto keep; + } + /* Support garbage collection against STT_GNU_IFUNC symbols. */ if (h->plt.refcount <= 0 && h->got.refcount <= 0) { - /* When building shared library, we need to handle the case - where it is marked with regular reference, but not non-GOT - reference. It may happen if we didn't see STT_GNU_IFUNC - symbol at the time when checking relocations. */ - if (info->shared - && !h->non_got_ref - && h->ref_regular) - for (p = *head; p != NULL; p = p->next) - if (p->count) - { - h->non_got_ref = 1; - goto keep; - } - h->got = htab->init_got_offset; h->plt = htab->init_plt_offset; *head = NULL; diff --git a/ld/testsuite/ld-ifunc/ifunc-20-i386.d b/ld/testsuite/ld-ifunc/ifunc-20-i386.d new file mode 100644 index 0000000..9373fcf --- /dev/null +++ b/ld/testsuite/ld-ifunc/ifunc-20-i386.d @@ -0,0 +1,13 @@ +#source: ifunc-20.s +#ld: -shared -m elf_i386 -z nocombreloc +#as: --32 +#readelf: -r --wide +#target: x86_64-*-* i?86-*-* + +Relocation section '.rel.ifunc' at offset 0x[0-9a-f]+ contains 1 entries: +[ ]+Offset[ ]+Info[ ]+Type[ ]+.* +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_386_32[ ]+ifunc\(\)[ ]+ifunc + +Relocation section '.rel.plt' at offset 0x[0-9a-f]+ contains 1 entries: +[ ]+Offset[ ]+Info[ ]+Type[ ]+.* +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_386_JUMP_SLOT[ ]+ifunc\(\)[ ]+ifunc diff --git a/ld/testsuite/ld-ifunc/ifunc-20-x86-64.d b/ld/testsuite/ld-ifunc/ifunc-20-x86-64.d new file mode 100644 index 0000000..39492d4 --- /dev/null +++ b/ld/testsuite/ld-ifunc/ifunc-20-x86-64.d @@ -0,0 +1,13 @@ +#source: ifunc-20.s +#ld: -shared -m elf_x86_64 -z nocombreloc +#as: --64 +#readelf: -r --wide +#target: x86_64-*-* + +Relocation section '.rela.ifunc' at offset 0x[0-9a-f]+ contains 1 entries: +[ ]+Offset[ ]+Info[ ]+Type[ ]+.* +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_X86_64_64[ ]+ifunc\(\)[ ]+ifunc \+ 0 + +Relocation section '.rela.plt' at offset 0x[0-9a-f]+ contains 1 entries: +[ ]+Offset[ ]+Info[ ]+Type[ ]+.* +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_X86_64_JUMP_SLOT[ ]+ifunc\(\)[ ]+ifunc \+ 0 diff --git a/ld/testsuite/ld-ifunc/ifunc-20.s b/ld/testsuite/ld-ifunc/ifunc-20.s new file mode 100644 index 0000000..9d45455 --- /dev/null +++ b/ld/testsuite/ld-ifunc/ifunc-20.s @@ -0,0 +1,16 @@ + .section .data.rel,"aw",@progbits + .globl ifunc_ptrt + .type ifunc_ptr, @object +ifunc_ptr: + .dc.a ifunc + .text + .type ifunc, @gnu_indirect_function + .globl ifunc +ifunc: + ret + .size ifunc, .-ifunc + .type bar, @function + .globl bar +bar: + call ifunc@PLT + .size bar, .-bar
* * Makefile.am (ELF_DEPS): Add a dependency uponNick Clifton2013-04-153-4/+9
| | | | | | scripttempl/DWARF.sc. (ELF_GEN_DEPS): Likewise. * Makefile.in: Regenerate.
* * scripttempl/armbpabi.sc: Replace DWARF sections with anNick Clifton2013-04-1530-887/+187
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | inclusion of DWARF.sc. * scripttempl/avr.sc: Likewise. * scripttempl/elf.sc: Likewise. * scripttempl/elf32cr16.sc: Likewise. * scripttempl/elf32crx.sc: Likewise. * scripttempl/elf32msp430.sc: Likewise. * scripttempl/elf32msp430_3.sc: Likewise. * scripttempl/elf32sh-symbian.sc: Likewise. * scripttempl/elf64hppa.sc: Likewise. * scripttempl/elf_chaos.sc: Likewise. * scripttempl/elfd10v.sc: Likewise. * scripttempl/elfd30v.sc: Likewise. * scripttempl/elfi370.sc: Likewise. * scripttempl/elfm68hc11.sc: Likewise. * scripttempl/elfm68hc12.sc: Likewise. * scripttempl/elfxgate.sc: Likewise. * scripttempl/elfxtensa.sc: Likewise. * scripttempl/epiphany_4x4.sc: Likewise. * scripttempl/i386beos.sc: Likewise. * scripttempl/i386go32.sc: Likewise. * scripttempl/ia64vms.sc: Likewise. * scripttempl/ip2k.sc: Likewise. * scripttempl/iq2000.sc: Likewise. * scripttempl/mep.sc: Likewise. * scripttempl/mmo.sc: Likewise. * scripttempl/v850.sc: Likewise. * scripttempl/v850_rh850.sc: Likewise. * scripttempl/xstormy16.sc: Likewise. * scripttempl/DWARF.sc: New.
* 2013-04-10 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>mshawcroft2013-04-1010-0/+138
| | | | | | | | | | | | * ld-aarch64/gc-plt1.s: New file. * ld-aarch64/gc-plt2.s: Likewise. * ld-aarch64/gc-plt-hidden.s: Likewise. * ld-aarch64/gc-plt-main.s: Likewise. * ld-aarch64/gc-relocs-257.s: Likewise. * ld-aarch64/gc-plt-relocs.d: Update expected objdump. * ld-aarch64/gc-relocs-257.d: Likewise. * ld-aarch64/gc-relocs-257-dyn.d: Likewise. * ld-aarch64/aarch64-elf.exp: Add test.
* Handle big-endian for some aarch64 testsRamana Radhakrishnan2013-04-083-2/+7
| | | | | | | 2013-04-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> * ld-aarch64/gc-tls-relocs.d: Handle big endian format. * ld-aarch64/gc-got-relocs.d: Likewise.
* * ld-elf/shared.exp: Update regexp on --no-add-needed andAlan Modra2013-04-042-2/+7
| | | | --no-copy-dt-needed-entries tests.
* * ldlang.c (load_symbols): Report "error adding symbols" onAlan Modra2013-04-044-5/+13
| | | | | | | bfd_link_add_symbols failure. * emultempl/elf32.em (gld${EMULATION_NAME}_try_needed): Likewise. * emultempl/sunos.em (gld${EMULATION_NAME}_after_open): Likewise. (gld${EMULATION_NAME}_try_needed): Likewise.
* * elf64-aarch64.c (elf64_aarch64_gc_sweep_hook): UseNick Clifton2013-04-0311-1/+225
| | | | | | | | | | | | | | | | elf64_aarch64_locals to get local GOT reference counts. * ld-aarch64/gc-relocs-tlsle.s: New gc section test. * ld-aarch64/gc-relocs-tlsle.s: Likewise * ld-aarch64/gc-relocs-tlsgd.s: Likewise * ld-aarch64/gc-relocs-tlsdesc.s: Likewise * ld-aarch64/gc-relocs-312.s: Likewise * ld-aarch64/gc-relocs-311.s: Likewise * ld-aarch64/gc-relocs-309.s: Likewise * ld-aarch64/gc-start.s: Likewise * ld-aarch64/gc-got-relocs.d: Update expected objdump * ld-aarch64/gc-tls-relocs.d: Likewise * ld-aarch64/aarch64-elf.exp: add test
* PR ld/15227Alan Modra2013-04-033-5/+11
| | | | | | | * ld-plugin/lto.exp (PR ld/12942 (3)): Remove file name and line number from regexp. (PR ld/15146 (2)): Similarly. * ld-plugin/pr12942a.cc (main): Use __builtin_abort.
* PR ld/15323Alan Modra2013-03-302-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bfd/ * elf-m10300.c (mn10300_elf_check_relocs): Set non_ir_ref for global symbols referenced by relocs. * elf32-arm.c (elf32_arm_check_relocs): Likewise. * elf32-bfin.c (bfin_check_relocs): Likewise. * elf32-cr16.c (cr16_elf_check_relocs): Likewise. * elf32-cris.c (cris_elf_check_relocs): Likewise. * elf32-d10v.c (elf32_d10v_check_relocs): Likewise. * elf32-dlx.c (elf32_dlx_check_relocs): Likewise. * elf32-fr30.c (fr30_elf_check_relocs): Likewise. * elf32-frv.c (elf32_frv_check_relocs): Likewise. * elf32-hppa.c (elf32_hppa_check_relocs): Likewise. * elf32-i370.c (i370_elf_check_relocs): Likewise. * elf32-iq2000.c (iq2000_elf_check_relocs): Likewise. * elf32-lm32.c (lm32_elf_check_relocs): Likewise. * elf32-m32c.c (m32c_elf_check_relocs): Likewise. * elf32-m32r.c (m32r_elf_check_relocs): Likewise. * elf32-m68hc1x.c (elf32_m68hc11_check_relocs): Likewise. * elf32-m68k.c (elf_m68k_check_relocs): Likewise. * elf32-mcore.c (mcore_elf_check_relocs): Likewise. * elf32-metag.c (elf_metag_check_relocs): Likewise. * elf32-microblaze.c (microblaze_elf_check_relocs): Likewise. * elf32-moxie.c (moxie_elf_check_relocs): Likewise. * elf32-msp430.c (elf32_msp430_check_relocs): Likewise. * elf32-mt.c (mt_elf_check_relocs): Likewise. * elf32-nios2.c (nios2_elf32_check_relocs): Likewise. * elf32-openrisc.c (openrisc_elf_check_relocs): Likewise. * elf32-ppc.c (ppc_elf_check_relocs): Likewise. * elf32-rl78.c (rl78_elf_check_relocs): Likewise. * elf32-s390.c (elf_s390_check_relocs): Likewise. * elf32-score.c (s3_bfd_score_elf_check_relocs): Likewise. * elf32-score7.c (s7_bfd_score_elf_check_relocs): Likewise. * elf32-sh.c (sh_elf_check_relocs): Likewise. * elf32-tic6x.c (elf32_tic6x_check_relocs): Likewise. * elf32-tilepro.c (tilepro_elf_check_relocs): Likewise. * elf32-v850.c (v850_elf_check_relocs): Likewise. * elf32-vax.c (elf_vax_check_relocs): Likewise. * elf32-xstormy16.c (xstormy16_elf_check_relocs): Likewise. * elf32-xtensa.c (elf_xtensa_check_relocs): Likewise. * elf64-aarch64.c (elf64_aarch64_check_relocs): Likewise. * elf64-alpha.c (elf64_alpha_check_relocs): Likewise. * elf64-hppa.c (elf64_hppa_check_relocs): Likewise. * elf64-ia64-vms.c (elf64_ia64_check_relocs): Likewise. * elf64-mmix.c (mmix_elf_check_relocs): Likewise. * elf64-ppc.c (ppc64_elf_check_relocs): Likewise. * elf64-s390.c (elf_s390_check_relocs): Likewise. * elf64-sh64.c (sh_elf64_check_relocs): Likewise. * elfnn-ia64.c (elfNN_ia64_check_relocs): Likewise. * elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Likewise. * elfxx-tilegx.c (tilegx_elf_check_relocs): Likewise. * elfxx-mips.c (_bfd_mips_elf_check_relocs): Likewise. Don't test indirect/warning links for NULL. ld/testsuite/ * ld-plugin/lto.exp (pr15323a.c): Compile without -flto rather than using -r to effectively strip out lto info.
* Set non_ir_ref if a symbol is referenced by a non-shared objectH.J. Lu2013-03-305-1/+35
| | | | | | | | | | | | | | | | | | | bfd/ PR ld/15323 * elf32-i386.c (elf_i386_check_relocs): Set non_ir_ref if a symbol is referenced by a non-shared object. * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise. ld/testsuite/ PR ld/15323 * ld-plugin/lto.exp (lto_link_tests): Add pr15323a-r.o. (lto_run_tests): Add a test for PR ld/15323. * ld-plugin/pr15323.out: New file. * ld-plugin/pr15323a.c: Likewise. * ld-plugin/pr15323b.c: Likewise.
* PR ld/13812Nick Clifton2013-03-272-2/+10
| | | | * scripttempl/avr.sc: Place trampolines before .progmem section.
* * ld.texinfo (--disable-runtime-pseudo-reloc): Adjust default.Kai Tietz2013-03-252-1/+5
|
* * ld-elf/init0.s: Add alloc attribute to .section directive.Nick Clifton2013-03-2211-10/+23
| | | | | | | | | | | | * ld-elf/fini1.s: Likewise. * ld-elf/fini2.s: Likewise. * ld-elf/fini3.s: Likewise. * ld-elf/finin.s: Likewise. * ld-elf/init0.s: Likewise. * ld-elf/init1.s: Likewise. * ld-elf/init2.s: Likewise. * ld-elf/init3.s: Likewise. * ld-elf/initn.s: Likewise.
* * elf32-h8300 (h8_relax_section): Add new relaxation of movNick Clifton2013-03-219-6/+219
| | | | | | | | | | | | | | | | | | | | | | | | | | @(disp:32,ERx) to mov @(disp:16,ERx). (R_H8_DISP32A16): New reloc. Comments added and corrected. * reloc.c (BFD_RELOC_H8_DISP32A16): New reloc. * bfd-in2.h: Regenerate. * libbfd.h: Regenerate. * ld.texinfo (H8/300): Add description of relaxation of mov @(disp:32,ERx) to mov @(disp:16,ERx). * ld-h8300/h8300.exp: Add new relax-7 test on ELF. * ld-h8300/relax-2.s: Add other direction and .w/.l variants of mov insns. * ld-h8300/relax-2.d: Update expected disassembly. * ld-h8300/relax-7a.s: New: tests for mov @(disp:32,ERx) -> mov @(disp:16,ERx). * ld-h8300/relax-7b.s: New: Likewise. * ld-h8300/relax-7.d: New: expected disassembly. * config/tc-h8300.c (do_a_fix_imm): Add relaxation of mov @(disp:32,ERx) to mov @(disp:16,ERx) insns by new reloc R_H8_DISP32A16. * config/tc-h8300.h: Remove duplicated defines.
* * pe-dll.c (process_def_file_and_drectve): Don't handle VCKai Tietz2013-03-212-2/+10
| | | | generated C++-symbols as stdcall/fastcall.
* Enable --gc-sections test cases for aarch64*-*-*mshawcroft2013-03-209-8/+19
|
* ld/testsuite/ChangeLog:willnewton2013-03-207-7/+17
| | | | | | | | | | | | 2013-03-20 Will Newton <will.newton@linaro.org> * ld-elfvers/vers.exp (objdump_symstuff): Sort objdump output based on the symbol name rather than address. * ld-elfvers/vers1.sym: Reorder contents to match changes to vers.exp. * ld-elfvers/vers15.sym: Likewise. * ld-elfvers/vers18.sym: Likewise. * ld-elfvers/vers21.sym: Likewise. * ld-elfvers/vers9.sym: Likewise.
* bfd/Alan Modra2013-03-205-0/+27
| | | | | | | | * elflink.c (_bfd_elf_make_dynamic_reloc_section): Override sh_type according to is_rela. ld/testsuite/ * ld-elf/rel.c, ld-elf/relmain.c, ld-elf/relmain.out: New test. * ld-elf/shared.exp: Build and run it.
* * ld-elfvers/vers.exp: Add -Wl,--no-as-needed to all testsAlan Modra2013-03-203-16/+24
| | | | | | linking against shared libraries. * ld-elfweak/elfweak.exp: Likewise. Enable for x86_64-linux. Build main1.o using $picflag.
* PR ld/12549Alan Modra2013-03-184-6/+16
| | | | | | | | | | bfd/ * elflink.c (elf_link_add_object_symbols): Exclude weak refs when considering whether an --as-needed library is needed. ld/ * ld.texinfo (--as-needed): Update. ld/testsuite/ * ld-elf/pr14862.out: Expect no output.