Thomas Schwinge
98dbe4a783
ld/testsuite/
...
* ld-i386/export-class.exp: Restore (and reword) comment about
excluded targets.
2013-01-08 10:24:46 +00:00
Roland McGrath
b3adb10f86
ld/testsuite/
...
* ld-elf/elf.exp (stack exec, stack size): Run for *-*-nacl* targets.
* ld-i386/export-class.exp: Run for i?86-*-nacl* targets.
2012-12-17 19:32:52 +00:00
Thomas Schwinge
9cc420b64c
ld/testsuite/
...
* ld-elf/elf.exp (stack exec, stack size): Run for any GNU target.
* ld-elf/maxpage3c.d: Run for any x86 GNU target.
* ld-elf/maxpage4.d: Likewise.
* ld-elf/maxpage5.d: Likewise.
* ld-i386/export-class.exp: Likewise.
2012-12-15 10:28:17 +00:00
H.J. Lu
3f65f59941
Don't optimize relocation against _DYNAMIC
...
bfd/
* elf32-i386.c (elf_i386_convert_mov_to_lea): Don't optimize
_DYNAMIC.
* elf64-x86-64.c (elf_x86_64_convert_mov_to_lea): Likewise.
ld/testsuite/
* ld-i386/i386.exp: Run mov1a, mov1b.
* ld-x86-64/x86-64.exp: Run mov1a, mov1b, mov1c, mov1d.
* ld-i386/mov1.s: New file.
* ld-i386/mov1a.d: Likewise.
* ld-i386/mov1b.d: Likewise.
* ld-x86-64/mov1.s: Likewise.
* ld-x86-64/mov1a.d: Likewise.
* ld-x86-64/mov1b.d: Likewise.
* ld-x86-64/mov1c.d: Likewise.
* ld-x86-64/mov1d.d: Likewise.
2012-09-01 02:50:14 +00:00
H.J. Lu
daa6760707
Convert mov to lea in size_dynamic_sections
...
bfd/
* elf32-i386.c (elf_i386_convert_mov_to_lea): New.
(elf_i386_size_dynamic_sections): Use it on input sections.
(elf_i386_relocate_section): Don't convert
"mov foo@GOT(%reg), %reg" to "lea foo@GOTOFF(%reg), %reg"
for local symbols here.
* elf64-x86-64.c (elf_x86_64_convert_mov_to_lea): New.
(elf_x86_64_size_dynamic_sections): Use it on input sections.
(elf_x86_64_relocate_section): Don't convert
"mov foo@GOTPCREL(%rip), %reg" to "lea foo@GOTOFF(%reg), %reg"
for local symbols.
ld/testsuite/
* ld-i386/i386.exp: Run lea1d, lea1f, lea1f.
* ld-x86-64/x86-64.exp: Run lea1g, lea1h, lea1i, lea1j, lea1k,
lea1l.
* ld-ifunc/ifunc-13-i386.d: Remove R_386_RELATIVE entry.
* ld-i386/lea1d.d: New file.
* ld-i386/lea1e.d: Likewise.
* ld-i386/lea1f.d: Likewise.
* ld-x86-64/lea1g.d: Likewise.
* ld-x86-64/lea1h.d: Likewise.
* ld-x86-64/lea1i.d: Likewise.
* ld-x86-64/lea1j.d: Likewise.
* ld-x86-64/lea1k.d: Likewise.
* ld-x86-64/lea1l.d: Likewise.
2012-08-31 20:41:41 +00:00
H.J. Lu
80d873266d
Convert mov to lea for loading local function address
...
bfd/
* elf32-i386.c (elf_i386_relocate_section): Convert
"mov foo@GOT(%reg), %reg" to "lea foo@GOTOFF(%reg), %reg"
for local symbols.
* elf64-x86-64.c (elf_x86_64_relocate_section): Convert
"mov foo@GOTPCREL(%rip), %reg" to "lea foo(%rip), %reg"
for local symbols.
ld/testsuite/
* ld-i386/i386.exp: Run lea1a, lea1b, lea1c.
* ld-x86-64/x86-64.exp: Run lea1a, lea1b, lea1c, lea1d, lea1e,
lea1f.
* ld-i386/lea1.s: New file.
* ld-i386/lea1a.d: Likewise.
* ld-i386/lea1b.d: Likewise.
* ld-i386/lea1c.d: Likewise.
* ld-x86-64/lea1.s: Likewise.
* ld-x86-64/lea1a.d: Likewise.
* ld-x86-64/lea1b.d: Likewise.
* ld-x86-64/lea1c.d: Likewise.
* ld-x86-64/lea1d.d: Likewise.
* ld-x86-64/lea1e.d: Likewise.
* ld-x86-64/lea1f.d: Likewise.
2012-08-31 04:26:17 +00:00
Maciej W. Rozycki
a521a3297b
* ld-elf/export-class.sd: New test.
...
* ld-elf/export-class.vd: New test.
* ld-elf/export-class-def.s: New test source.
* ld-elf/export-class-dep.s: New test source.
* ld-elf/export-class-lib.s: New test source.
* ld-elf/export-class-ref.s: New test source.
* ld-elf/export-class-lib.ver: New test version script.
* ld-elf/export-class.exp: New test script.
* ld-arm/arm-export-class.rd: New test.
* ld-arm/arm-export-class.xd: New test.
* ld-arm/export-class.exp: New test script.
* ld-i386/i386-export-class.rd: New test.
* ld-i386/i386-export-class.xd: New test.
* ld-i386/export-class.exp: New test script.
* ld-mips-elf/mips-32-export-class.rd: New test.
* ld-mips-elf/mips-32-export-class.xd: New test.
* ld-mips-elf/mips-64-export-class.rd: New test.
* ld-mips-elf/mips-64-export-class.xd: New test.
* ld-mips-elf/export-class.exp: New test script.
* ld-powerpc/powerpc-32-export-class.rd: New test.
* ld-powerpc/powerpc-32-export-class.xd: New test.
* ld-powerpc/powerpc-64-export-class.rd: New test.
* ld-powerpc/powerpc-64-export-class.xd: New test.
* ld-powerpc/export-class.exp: New test script.
* ld-x86-64/x86-64-64-export-class.rd: New test.
* ld-x86-64/x86-64-x32-export-class.rd: New test.
* ld-x86-64/export-class.exp: New test script.
2012-08-28 20:29:19 +00:00
Roland McGrath
35aeab69a0
ld/testsuite/
...
* ld/testsuite/ld-i386/tlsbin-nacl.rd: Update for symbol table changes.
* ld/testsuite/ld-i386/tlsbindesc-nacl.rd: Likewise.
* ld/testsuite/ld-i386/tlsdesc-nacl.rd: Likewise.
* ld/testsuite/ld-i386/tlsgdesc-nacl.rd: Likewise.
* ld/testsuite/ld-i386/tlsnopic-nacl.rd: Likewise.
* ld/testsuite/ld-i386/tlspic-nacl.rd: Likewise.
* 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/tlsgdesc-nacl.rd: Likewise.
* ld/testsuite/ld-x86-64/tlspic-nacl.rd: Likewise.
2012-07-02 18:20:31 +00:00
Alan Modra
d2667025dd
ld/
...
* ldlang.h (lang_output_section_statement_type): Add after_end field.
(lang_abs_symbol_at_beginning_of, lang_abs_symbol_at_end_of): Delete.
(section_for_dot): Declare.
* ldlang.c (lang_size_sections_1): Correct comment.
(current_section): Move earlier.
(current_assign, prefer_next_section): New static vars.
(lang_do_assignments_1): Add found_end param. Detect _end
assignment to set found_end. Set os->after_end. Set above statics.
(lang_do_assignments): Adjust lang_do_assignments_1 call. Init
vars.
(section_for_dot): New function.
(lang_set_startof): Don't make an absolute symbol.
(lang_abs_symbol_at_beginning_of, lang_abs_symbol_at_end_of): Delete.
* ldexp.c (new_rel_from_abs): Use section_for_dot.
* emultempl/lnk960.em (symbol_at_beginning_of): New function.
(symbol_at_end_of): Likewise.
(lnk960_after_allocation): Use them.
* scripttempl/elf.sc: Precede OTHER_GOT_SYMBOLS with . = .; and
likewise before __bss_start.
ld/testsuite/
Update far too many tests.
2012-06-15 15:13:41 +00:00
H.J. Lu
17d6eea5d5
Don't hardcode .got.plt into DATA_SEGMENT_RELRO_END evaluation
...
ld/
PR ld/14215
* ldexp.c (fold_name <SIZEOF, ALIGNOF>): Allow forward section
references.
* emulparams/elf32_x86_64.sh (SEPARATE_GOTPLT): Depend on size of
.got.plt.
* emulparams/elf32mb_linux.sh (SEPARATE_GOTPLT): Likewise.
* emulparams/elf32tilegx.sh (SEPARATE_GOTPLT): Likewise.
* emulparams/elf32tilepro.sh (SEPARATE_GOTPLT): Likewise.
* emulparams/elf64tilegx.sh (SEPARATE_GOTPLT): Likewise.
* emulparams/elf_i386.sh (SEPARATE_GOTPLT): Likewise.
* emulparams/elf_k1om.sh (SEPARATE_GOTPLT): Likewise.
* emulparams/elf_l1om.sh (SEPARATE_GOTPLT): Likewise.
* emulparams/elf_x86_64.sh (SEPARATE_GOTPLT): Likewise.
ld/testsuite/
PR ld/14215
* ld-i386/i386.exp: Run pr14215.
* ld-x86-64/x86-64.exp: Likewise.
* ld-i386/pr14215.d: New file.
* ld-i386/pr14215.s: Likewise.
* ld-x86-64/pr14215.d: Likewise.
* ld-x86-64/pr14215.s: Likewise.
2012-06-11 13:23:51 +00:00
Alan Modra
ffbc01ccf0
bfd/
...
* elflink.c (elf_link_input_bfd): Provide a file symbol for
each input file with local syms, if the input lacks such.
(bfd_elf_final_link): Add a file symbol to mark end of locals
for which we can associate with input files.
(struct elf_final_link_info): Add filesym_count field.
(struct elf_outext_info): Add need_second_pass and second_pass.
(elf_link_output_extsym): Detect symbols defined in the output
file, emit them on second pass over locals.
ld/testsuite/
Update to suit added STT_FILE symbols.
2012-06-06 10:50:18 +00:00
H.J. Lu
e4de50d447
Revert the change for PR ld/r13909
...
bfd/
PR ld/13909
* elf32-i386.c (elf_i386_create_dynamic_sections): Revert the
last change.
* elf64-x86-64.c (elf_x86_64_create_dynamic_sections): Likewise.
ld/testsuite/
2012-05-22 H.J. Lu <hongjiu.lu@intel.com>
PR ld/13909
* ld-i386/i386.exp: Revert the last change.
* ld-x86-64/x86-64.exp: Likewise.
* ld-i386/dummy.s: Removed.
* ld-i386/pr13909.d: Likewise.
* ld-x86-64/pr13909.d: Likewise.
2012-05-22 15:55:01 +00:00
H.J. Lu
5d4f7eb2f0
Create PLT eh_frame section if there is .eh_frame section
...
bfd/
PR ld/13909
* elf32-i386.c (elf_i386_create_dynamic_sections): Create PLT
eh_frame section if there is an input .eh_frame section.
* elf64-x86-64.c (elf_x86_64_create_dynamic_sections): Likewise.
ld/testsuite/
PR ld/13909
* ld-i386/i386.exp: Run pr13909.
* ld-x86-64/x86-64.exp: Likewise.
* ld-i386/dummy.s: New file.
* ld-i386/pr13909.d: Likewise.
* ld-x86-64/pr13909.d: Likewise.
2012-05-22 14:46:44 +00:00
H.J. Lu
2fe0fd0638
Always create PLT eh_frame section for i386/x86-64
...
bfd/
2012-05-22 H.J. Lu <hongjiu.lu@intel.com>
PR ld/14105
* elf32-i386.c (elf_i386_create_dynamic_sections): Always
create PLT eh_frame section with SEC_LINKER_CREATED.
* elf64-x86-64.c (elf_x86_64_create_dynamic_sections): Likewise.
ld/testsuite/
2012-05-20 H.J. Lu <hongjiu.lu@intel.com>
PR ld/14105
* ld-elf/eh4.d: Add PLT eh_frame.
* ld-i386/i386.exp: Run pr12570a and pr12570b.
* ld-x86-64/x86-64.exp: Likewise.
* ld-i386/pr12570a.d: New file.
* ld-i386/pr12570a.s: Likewise.
* ld-i386/pr12570b.s: Likewise.
* ld-i386/pr12570b.s: Likewise.
* ld-x86-64/pr12570a.d: Likewise.
* ld-x86-64/pr12570a.s: Likewise.
* ld-x86-64/pr12570b.d: Likewise.
* ld-x86-64/pr12570b.s: Likewise.
2012-05-22 14:05:21 +00:00
H.J. Lu
220cf8092f
Don't make _DYNAMIC/_GLOBAL_OFFSET_TABLE_ absolute
...
bfd/
* elf32-i386.c (elf_i386_finish_dynamic_symbol): Don't make
_DYNAMIC nor _GLOBAL_OFFSET_TABLE_ absolute.
* elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Likewise.
ld/testsuite/
* ld-i386/tlsdesc-nacl.rd: Update for dynamic sym changes.
* ld-i386/tlsdesc.rd: Likewise.
* ld-i386/tlsgdesc-nacl.rd: Likewise.
* ld-i386/tlsgdesc.rd: Likewise.
* ld-i386/tlsnopic-nacl.rd: Likewise.
* ld-i386/tlsnopic.rd: Likewise.
* ld-i386/tlspic-nacl.rd: Likewise.
* ld-i386/tlspic.rd: Likewise.
* ld-x86-64/tlsdesc-nacl.rd: Likewise.
* ld-x86-64/tlsdesc.rd: Likewise.
* ld-x86-64/tlsgdesc-nacl.rd: Likewise.
* ld-x86-64/tlsgdesc.rd: Likewise.
* ld-x86-64/tlspic-nacl.rd: Likewise.
* ld-x86-64/tlspic.rd: Likewise.
2012-05-18 22:26:18 +00:00
Roland McGrath
5a68afcf73
bfd/
...
2012-04-03 Roland McGrath <mcgrathr@google.com>
* elf-nacl.c: New file.
* elf-nacl.h: New file.
* elf32-i386.c (elf_backend_modify_segment_map): Define for
bfd_elf32_i386_nacl_vec.
(elf_backend_modify_program_headers): Likewise.
* elf64-x86-64.c (elf_backend_modify_segment_map): Define for
bfd_elf64_x86_64_nacl_vec and bfd_elf32_x86_64_nacl_vec.
(elf_backend_modify_program_headers): Likewise.
* Makefile.am (BFD32_BACKENDS, BFD64_BACKENDS): Add elf-nacl.lo here.
(BFD32_BACKENDS_CFILES, BFD64_BACKENDS_CFILES): Add elf-nacl.c here.
* Makefile.in: Regenerated.
* configure.in (bfd_elf64_x86_64_nacl_vec): Add elf-nacl.o to tb here.
(bfd_elf32_x86_64_nacl_vec): Likewise.
(bfd_elf64_x86_64_vec, bfd_elf32_x86_64_vec): Likewise.
(bfd_elf64_x86_64_freebsd_vec, bfd_elf64_x86_64_sol2_vec): Likewise.
(bfd_elf64_l1om_vec, bfd_elf64_l1om_freebsd_vec): Likewise.
(bfd_elf64_k1om_vec, bfd_elf64_k1om_freebsd_vec): Likewise.
(bfd_elf32_i386_nacl_vec): Likewise.
(bfd_elf32_i386_sol2_vec, bfd_elf32_i386_freebsd_vec): Likewise.
(bfd_elf32_i386_vxworks_vec, bfd_elf32_i386_vec): Likewise.
* configure: Regenerated.
binutils/testsuite/
2012-04-03 Roland McGrath <mcgrathr@google.com>
* lib/binutils-common.exp (is_elf_format): Consider *-*-nacl* to
be ELF too.
* binutils-all/elfedit-4.d: Add "#as: --64" option.
* binutils-all/i386/i386.exp: Accept nacl targets too.
* binutils-all/x86-64/x86-64.exp: Likewise.
gas/testsuite/
2012-04-03 Roland McGrath <mcgrathr@google.com>
* gas/i386/k1om.d: Add not-target match for *-*-nacl*.
* gas/i386/l1om.d: Likewise.
ld/
2012-04-03 Roland McGrath <mcgrathr@google.com>
* configure.tgt (i[3-7]86-*-nacl*, x86_64-*-nacl*): Handle them.
* emulparams/elf_nacl.sh: New file.
* emulparams/elf_i386_nacl.sh: New file.
* emulparams/elf32_x86_64_nacl.sh: New file.
* emulparams/elf_x86_64_nacl.sh: New file.
* Makefile.am (ALL_EMULATION_SOURCES): Add eelf_i386_nacl.c here.
(ALL_64_EMULATION_SOURCES): Add eelf32_x86_64_nacl.c and
eelf_x86_64_nacl.c here.
(eelf_i386_nacl.c, eelf32_x86_64_nacl.c, eelf_x86_64_nacl.c):
New targets.
* Makefile.in: Regenerated.
* scripttempl/elf.sc: Handle SEPARATE_CODE cases.
ld/testsuite/
2012-04-03 Roland McGrath <mcgrathr@google.com>
* ld-x86-64/ilp32-4-nacl.d: New file.
* ld-x86-64/x86-64.exp: Run it.
* ld-discard/discard.exp: Accept nacl targets too.
* ld-elf/binutils.exp: Likewise.
* ld-elf/comm-data.exp: Likewise.
* ld-elf/elf.exp: Likewise.
* ld-elf/tls_common.exp: Likewise.
* ld-elfvers/vers.exp: Likewise.
* ld-elfvsb/elfvsb.exp: Likewise.
* ld-elfweak/elfweak.exp: Likewise.
* ld-gc/gc.exp: Likewise.
* ld-ifunc/binutils.exp: Likewise.
* ld-ifunc/ifunc.exp: Likewise.
* ld-linkonce/linkonce.exp:Likewise.
* ld-pie/pie.exp: Likewise.
* ld-shared/shared.exp: Likewise.
* ld-undefined/weak-undef.exp: Likewise.
* ld-unique/unique.exp: Likewise.
* ld-x86-64/dwarfreloc.exp: Likewise.
* ld-x86-64/line.exp: Likewise.
* lib/ld-lib.exp (slurp_options): Support global array
options_regsub to apply substitutions to the contents
of options lines read from the file.
* ld-i386/emit-relocs.d: Renamed to ...
* ld-i386/emit-relocs.rd: ... this.
* ld-i386/i386.exp: Accept nacl targets too.
For them, use options_regsub to replace elf_i386 with
elf_i386_nacl in run_dump_test cases; apply the same
substitution in $i386tests; replace foo.rd expectations
files with foo-nacl.rd in $i386tests.
(i386tests): Change emit-relocs.d to emit-relocs.rd here.
* ld-i386/emit-relocs-nacl.rd: New file.
* ld-i386/plt-nacl.pd: New file.
* ld-i386/plt-pic-nacl.pd: New file.
* ld-i386/tlsbin-nacl.rd: New file.
* ld-i386/tlsbindesc-nacl.rd: New file.
* ld-i386/tlsdesc-nacl.rd: New file.
* ld-i386/tlsgdesc-nacl.rd: New file.
* ld-i386/tlsnopic-nacl.rd: New file.
* ld-i386/tlspic-nacl.rd: New file.
* ld-x86-64/x86-64.exp: Accept nacl targets too.
For them, use options_regsub to replace elf_x86_64 with
elf_x86_64_nacl in run_dump_test cases; apply the same
substitution in $x86_64tests; replace foo.rd expectations
files with foo-nacl.rd in $x86_64tests.
Add explicit -melf_x86_64 to ld options in tests that need it,
in case the default emulation is x32 (as it is for x86_64-nacl).
* ld/testsuite/ld-x86-64/plt-nacl.pd: New file.
* ld/testsuite/ld-x86-64/split-by-file-nacl.rd: New file.
* ld/testsuite/ld-x86-64/tlsbin-nacl.rd: New file.
* ld/testsuite/ld-x86-64/tlsbindesc-nacl.rd: New file.
* ld/testsuite/ld-x86-64/tlsdesc-nacl.pd: New file.
* ld/testsuite/ld-x86-64/tlsdesc-nacl.rd: New file.
* ld/testsuite/ld-x86-64/tlsgdesc-nacl.rd: New file.
* ld/testsuite/ld-x86-64/tlspic-nacl.rd: New file.
* ld-i386/hidden2.d: Loosen regexps to match any file format variant,
and not to depend on exact addresses, displacements, etc. where
they are irrelevant.
* ld-i386/pcrel16.d: Likewise.
* ld-i386/pcrel16abs.d: Likewise.
* ld-i386/pr12718.d: Likewise.
* ld-i386/pr12921.d: Likewise.
* ld-i386/reloc.d: Likewise.
* ld-i386/tlsbin.dd: Likewise.
* ld-i386/tlsbin.sd: Likewise.
* ld-i386/tlsbin.td: Likewise.
* ld-i386/tlsbindesc.dd: Likewise.
* ld-i386/tlsbindesc.sd: Likewise.
* ld-i386/tlsbindesc.td: Likewise.
* ld-i386/tlsdesc.dd: Likewise.
* ld-i386/tlsdesc.sd: Likewise.
* ld-i386/tlsdesc.td: Likewise.
* ld-i386/tlsg.sd: Likewise.
* ld-i386/tlsgdesc.dd: Likewise.
* ld-i386/tlsindntpoff.dd: Likewise.
* ld-i386/tlsnopic.dd: Likewise.
* ld-i386/tlsnopic.sd: Likewise.
* ld-i386/tlspic.dd: Likewise.
* ld-i386/tlspic.sd: Likewise.
* ld-i386/tlspic.td: Likewise.
* ld-i386/tlspie2.d: Likewise.
* ld-x86-64/hidden2.d: Likewise.
* ld-x86-64/pcrel16.d: Likewise.
* ld-x86-64/pr12718.d: Likewise.
* ld-x86-64/pr12921.d: Likewise.
* ld-x86-64/protected3.d: Likewise.
* ld-x86-64/tlsbin.dd: Likewise.
* ld-x86-64/tlsbin.sd: Likewise.
* ld-x86-64/tlsbin.td: Likewise.
* ld-x86-64/tlsbindesc.dd: Likewise.
* ld-x86-64/tlsbindesc.sd: Likewise.
* ld-x86-64/tlsbindesc.td: Likewise.
* ld-x86-64/tlsdesc.dd: Likewise.
* ld-x86-64/tlsdesc.sd: Likewise.
* ld-x86-64/tlsdesc.td: Likewise.
* ld-x86-64/tlsg.sd: Likewise.
* ld-x86-64/tlsgd5.dd: Likewise.
* ld-x86-64/tlsgd6.dd: Likewise.
* ld-x86-64/tlsgdesc.dd: Likewise.
* ld-x86-64/tlspic.dd: Likewise.
* ld-x86-64/tlspic.sd: Likewise.
* ld-x86-64/tlspic.td: Likewise.
* ld-x86-64/ilp32-8.d: Match any file format variant.
Use a -Ttext and adjust expected results, to handle variant layouts.
* ld-x86-64/ilp32-9.d: Likewise.
* ld-i386/alloc.t: Remove superfluous OUTPUT_FORMAT statement.
* ld-i386/pr12627.t: Likewise.
* ld-x86-64/abs-l1om.d: Add target: constraint.
* ld-x86-64/protected2-l1om.d: Likewise.
* ld-x86-64/protected3-l1om.d: Likewise.
* ld-x86-64/ilp32-4.d: Likewise.
* ld-x86-64/plt.s: New file.
* ld-x86-64/pltlib.s: New file.
* ld-x86-64/plt.pd: New file.
* ld-x86-64/x86-64.exp (x86_64tests): Add them.
* ld-i386/plt.s: New file.
* ld-i386/pltlib.s: New file.
* ld-i386/plt.pd: New file.
* ld-i386/plt-pic.s: New file.
* ld-i386/plt-pic.pd: New file.
* ld-i386/i386.exp (i386tests): Add them.
2012-04-03 16:01:38 +00:00
H.J. Lu
bdb892b995
Handle relocation against protected function for -Bsymbolic
...
bfd/
2012-03-20 H.J. Lu <hongjiu.lu@intel.com>
PR ld/13880
* elf32-i386.c (elf_i386_relocate_section): Don't issue an error
for R_386_GOTOFF relocation against protected function if
SYMBOLIC_BIND is true.
* elf64-x86-64.c (elf_x86_64_relocate_section): Don't issue an
error for R_X86_64_GOTOFF64 relocation against protected function
when building executable or SYMBOLIC_BIND is true.
ld/testsuite/
2012-03-20 H.J. Lu <hongjiu.lu@intel.com>
PR ld/13880
* ld-i386/i386.exp: Run protected4 and protected5.
* ld-x86-64/x86-64.exp: Likewise.
* ld-i386/protected4.d: New.
* ld-i386/protected4.s: Likewise.
* ld-i386/protected5.d: Likewise.
* ld-i386/protected5.s: Likewise.
* ld-x86-64/protected4.d: Likewise.
* ld-x86-64/protected4.s: Likewise.
* ld-x86-64/protected5.d: Likewise.
* ld-x86-64/protected5.s: Likewise.
2012-03-20 18:16:38 +00:00
H.J. Lu
56b8aada47
Restore R_386_IRELATIVE and R_X86_64_IRELATIVE
...
bfd/
2012-03-09 H.J. Lu <hongjiu.lu@intel.com>
PR ld/13817
* bfd/elf32-i386.c (elf_i386_relocate_section): Restore
R_386_IRELATIVE.
* * elf64-x86-64.c (elf_x86_64_relocate_section): Restore
R_X86_64_IRELATIVE.
ld/testsuite/
2012-03-09 H.J. Lu <hongjiu.lu@intel.com>
PR ld/13817
* ld-i386/pr13302.d: Updated.
* ld-x86-64/pr13082-5b.d: Likewise.
* ld-x86-64/pr13082-6a.d: Likewise.
* ld-x86-64/pr13082-6b.d: Likewise.
2012-03-09 16:28:38 +00:00
H.J. Lu
923f257ffd
Don't use multi byte nop instructions for i386
...
bfd/
2012-02-09 H.J. Lu <hongjiu.lu@intel.com>
PR ld/13675
* cpu-i386.c (bfd_arch_i386_fill): Updated to support multi byte
nop instructions.
(bfd_arch_i386_short_nop_fill): New.
(bfd_arch_i386_long_nop_fill): Likewise.
Use bfd_arch_i386_short_nop_fill in 32bit bfd_arch_info
initializers. Use bfd_arch_i386_long_nop_fill on 64bit
bfd_arch_info initializers.
* cpu-k1om.c (bfd_arch_i386_fill): Renamed to ...
(bfd_arch_i386_short_nop_fill): This.
Update bfd_arch_info initializers.
* cpu-l1om.c: Likewise.
ld/testsuite/
2012-02-09 H.J. Lu <hongjiu.lu@intel.com>
PR ld/13675
* ld-i386/tlsnopic.dd: Update no-op padding.
* ld-i386/tlspic.dd: Likewise.
2012-02-09 22:51:58 +00:00
H.J. Lu
b7761f1106
Support arch-dependent fill
...
bfd/
2012-01-31 H.J. Lu <hongjiu.lu@intel.com>
PR ld/13616
* archures.c (bfd_arch_info): Add fill.
(bfd_default_arch_struct): Add bfd_arch_default_fill.
(bfd_arch_default_fill): New.
* configure.in: Set bfd version to 2.22.52.
* configure: Regenerated.
* cpu-alpha.c: Add bfd_arch_default_fill to bfd_arch_info
initializer.
* cpu-arc.c: Likewise.
* cpu-arm.c: Likewise.
* cpu-avr.c: Likewise.
* cpu-bfin.c: Likewise.
* cpu-cr16.c: Likewise.
* cpu-cr16c.c: Likewise.
* cpu-cris.c: Likewise.
* cpu-crx.c: Likewise.
* cpu-d10v.c: Likewise.
* cpu-d30v.c: Likewise.
* cpu-dlx.c: Likewise.
* cpu-epiphany.c: Likewise.
* cpu-fr30.c: Likewise.
* cpu-frv.c: Likewise.
* cpu-h8300.c: Likewise.
* cpu-h8500.c: Likewise.
* cpu-hppa.c: Likewise.
* cpu-i370.c: Likewise.
* cpu-i860.c: Likewise.
* cpu-i960.c: Likewise.
* cpu-ia64.c: Likewise.
* cpu-ip2k.c: Likewise.
* cpu-iq2000.c: Likewise.
* cpu-lm32.c: Likewise.
* cpu-m10200.c: Likewise.
* cpu-m10300.c: Likewise.
* cpu-m32c.c: Likewise.
* cpu-m32r.c: Likewise.
* cpu-m68hc11.c: Likewise.
* cpu-m68hc12.c: Likewise.
* cpu-m68k.c: Likewise.
* cpu-m88k.c: Likewise.
* cpu-mcore.c: Likewise.
* cpu-mep.c: Likewise.
* cpu-microblaze.c: Likewise.
* cpu-mips.c: Likewise.
* cpu-mmix.c: Likewise.
* cpu-moxie.c: Likewise.
* cpu-msp430.c: Likewise.
* cpu-mt.c: Likewise.
* cpu-ns32k.c: Likewise.
* cpu-openrisc.c: Likewise.
* cpu-or32.c: Likewise.
* cpu-pdp11.c: Likewise.
* cpu-pj.c: Likewise.
* cpu-plugin.c: Likewise.
* cpu-powerpc.c: Likewise.
* cpu-rl78.c: Likewise.
* cpu-rs6000.c: Likewise.
* cpu-rx.c: Likewise.
* cpu-s390.c: Likewise.
* cpu-score.c: Likewise.
* cpu-sh.c: Likewise.
* cpu-sparc.c: Likewise.
* cpu-spu.c: Likewise.
* cpu-tic30.c: Likewise.
* cpu-tic4x.c: Likewise.
* cpu-tic54x.c: Likewise.
* cpu-tic6x.c: Likewise.
* cpu-tic80.c: Likewise.
* cpu-tilegx.c: Likewise.
* cpu-tilepro.c: Likewise.
* cpu-v850.c: Likewise.
* cpu-vax.c: Likewise.
* cpu-w65.c: Likewise.
* cpu-we32k.c: Likewise.
* cpu-xc16x.c: Likewise.
* cpu-xstormy16.c: Likewise.
* cpu-xtensa.c: Likewise.
* cpu-z80.c: Likewise.
* cpu-z8k.c: Likewise.
* cpu-i386.c: Include "libiberty.h".
(bfd_arch_i386_fill): New.
Add bfd_arch_i386_fill to bfd_arch_info initializer.
* cpu-k1om.c: Add bfd_arch_i386_fill to bfd_arch_info initializer.
* cpu-l1om.c: Likewise.
* linker.c (default_data_link_order): Call abfd->arch_info->fill
if fill size is 0.
* bfd-in2.h: Regenerated.
include/
2012-01-31 H.J. Lu <hongjiu.lu@intel.com>
PR ld/13616
* bfdlink.h (bfd_link_order): Update comments on data size.
ld/
2012-01-31 H.J. Lu <hongjiu.lu@intel.com>
PR ld/13616
* emulparams/elf32_x86_64.sh: Remove NOP.
* emulparams/elf_i386.sh: Likewise.
* emulparams/elf_i386_be.sh: Likewise.
* emulparams/elf_i386_ldso.sh: Likewise.
* emulparams/elf_i386_vxworks.sh: Likewise.
* emulparams/elf_k1om.sh: Likewise.
* emulparams/elf_l1om.sh: Likewise.
* emulparams/elf_x86_64.sh: Likewise.
* ldlang.c (zero_fill): Initialized to 0.
* ldwrite.c (build_link_order): Set data size to linker odrder
size when they are the same.
* scripttempl/elf.sc: Don't specify fill if NOP is undefined.
ld/testsuite/
2012-01-31 H.J. Lu <hongjiu.lu@intel.com>
PR ld/13616
* ld-i386/tlsbindesc.dd: Update no-op padding.
* ld-i386/tlsnopic.dd: Likewise.
* ld-i386/tlspic.dd: Likewise.
* ld-x86-64/tlsbin.dd: Likewise.
* ld-x86-64/tlsbindesc.dd: Likewise.
* ld-x86-64/tlspic.dd: Likewise.
2012-01-31 17:54:39 +00:00
H.J. Lu
9892017203
Replace IRELATIVE relocations with RELATIVE in .rel.dyn.
...
bfd/
2011-10-21 H.J. Lu <hongjiu.lu@intel.com>
PR ld/13302
* elf32-i386.c (elf_i386_relocate_section): Replace
R_386_IRELATIVE with R_386_RELATIVE.
* elf64-x86-64.c (elf_x86_64_relocate_section): Replace
R_X86_64_IRELATIVE with R_X86_64_RELATIVE.
ld/testsuite/
2011-10-21 H.J. Lu <hongjiu.lu@intel.com>
PR ld/13302
* ld-i386/i386.exp: Run pr13302.
* ld-i386/pr13302.d: New.
* ld-i386/pr13302.s: Likewise.
* ld-x86-64/pr13082-5b.d: Updated.
* ld-x86-64/pr13082-6a.d: Likewise.
* ld-x86-64/pr13082-6b.d: Likewise.
2011-10-21 19:37:15 +00:00
Roland McGrath
3396237fb5
ld/testsuite/
...
2011-07-27 Roland McGrath <mcgrathr@google.com>
* ld-i386/vxworks1-lib.rd: Swap order of sections expected in output.
2011-07-27 20:58:14 +00:00
H.J. Lu
a81aeffc81
Add testcases for PR ld/12921.
...
2011-06-24 H.J. Lu <hongjiu.lu@intel.com>
PR ld/12921
* ld-i386/i386.exp: Run pr12921.
* ld-x86-64/x86-64.exp: Likewise.
* ld-i386/pr12921.d: New.
* ld-i386/pr12921.s: Likewise.
* ld-x86-64/pr12921.d: Likewise.
* ld-x86-64/pr12921.s: Likewise.
2011-06-24 14:03:15 +00:00
Jakub Jelinek
e41b3a1379
PR ld/12570
...
include/
* bfdlink.h (struct bfd_link_info): Add no_ld_generated_unwind_info
option.
ld/
* emultempl/elf32.em (OPTION_LD_GENERATED_UNWIND_INFO,
OPTION_NO_LD_GENERATED_UNWIND_INFO): Define.
(gld${EMULATION_NAME}_handle_option): Handle
--ld-generated-unwind-info and --no-ld-generated-unwind-info.
* ld.texinfo (--ld-generated-unwind-info,
--no-ld-generated-unwind-info): Document.
bfd/
* elf-eh-frame.c (_bfd_elf_parse_eh_frame): Allow no relocations
at all for linker created .eh_frame sections.
(_bfd_elf_discard_section_eh_frame): Handle linker created
.eh_frame sections with no relocations.
* elf64-x86-64.c: Include dwarf2.h.
(elf_x86_64_eh_frame_plt): New variable.
(PLT_CIE_LENGTH, PLT_FDE_LENGTH, PLT_FDE_START_OFFSET,
PLT_FDE_LEN_OFFSET): Define.
(struct elf_x86_64_link_hash_table): Add plt_eh_frame field.
(elf_x86_64_create_dynamic_sections): Create and fill in
.eh_frame section for .plt section.
(elf_x86_64_size_dynamic_sections): Write .plt section size
into .eh_frame FDE covering .plt section.
(elf_x86_64_finish_dynamic_sections): Write .plt section
start into .eh_frame FDE covering .plt section. Call
_bfd_elf_write_section_eh_frame on htab->plt_eh_frame section.
(elf_backend_plt_alignment): Define to 4.
* elf32-i386.c: Include dwarf2.h.
(elf_i386_eh_frame_plt): New variable.
(PLT_CIE_LENGTH, PLT_FDE_LENGTH, PLT_FDE_START_OFFSET,
PLT_FDE_LEN_OFFSET): Define.
(struct elf_i386_link_hash_table): Add plt_eh_frame field.
(elf_i386_create_dynamic_sections): Create and fill in
.eh_frame section for .plt section.
(elf_i386_size_dynamic_sections): Write .plt section size
into .eh_frame FDE covering .plt section.
(elf_i386_finish_dynamic_sections): Write .plt section
start into .eh_frame FDE covering .plt section. Call
_bfd_elf_write_section_eh_frame on htab->plt_eh_frame section.
(elf_backend_plt_alignment): Define to 4.
ld/testsuite/
* ld-x86-64/x86-64.exp: Link some testcases with
--no-ld-generated-unwind-info.
* ld-x86-64/tlsbin.rd: Add --no-ld-generated-unwind-info to ld
comment.
* ld-x86-64/tlsdesc.dd: Likewise.
* ld-x86-64/tlspic.dd: Likewise.
* ld-x86-64/tlsdesc.sd: Likewise.
* ld-x86-64/tlspic.rd: Likewise.
* ld-x86-64/tlsbindesc.rd: Likewise.
* ld-x86-64/tlsbindesc.sd: Likewise.
* ld-x86-64/tlsbin.td: Likewise.
* ld-x86-64/tlsdesc.pd: Likewise.
* ld-x86-64/tlsdesc.td: Likewise.
* ld-x86-64/tlsbindesc.dd: Likewise.
* ld-x86-64/tlsbin.dd: Likewise.
* ld-x86-64/tlsgdesc.rd: Likewise.
* ld-x86-64/tlspic.sd: Likewise.
* ld-x86-64/tlsbindesc.td: Likewise.
* ld-x86-64/tlspic.td: Likewise.
* ld-x86-64/tlsbin.sd: Likewise.
* ld-x86-64/ilp32-4.d: Likewise.
* ld-x86-64/tlsgdesc.dd: Add --no-ld-generated-unwind-info to ld
comment. Adjust.
* ld-x86-64/tlsdesc.rd: Likewise.
* ld-x86-64/tlsgd6.dd: Adjust.
* ld-x86-64/tlsgd5.dd: Likewise.
* ld-i386/i386.exp: Link some testcases with
--no-ld-generated-unwind-info.
* ld-i386/tlsbin.rd: Add --no-ld-generated-unwind-info to ld
comment..
* ld-i386/tlsdesc.dd: Likewise.
* ld-i386/tlspic.dd: Likewise.
* ld-i386/tlsdesc.sd: Likewise.
* ld-i386/tlsgdesc.dd: Likewise.
* ld-i386/tlsnopic.sd: Likewise.
* ld-i386/tlspic.rd: Likewise.
* ld-i386/tlsdesc.rd: Likewise.
* ld-i386/tlsbindesc.rd: Likewise.
* ld-i386/tlsbindesc.sd: Likewise.
* ld-i386/tlsbin.td: Likewise.
* ld-i386/tlsdesc.td: Likewise.
* ld-i386/tlsnopic.dd: Likewise.
* ld-i386/tlsbindesc.dd: Likewise.
* ld-i386/tlsbin.dd: Likewise.
* ld-i386/tlsgdesc.rd: Likewise.
* ld-i386/tlspic.sd: Likewise.
* ld-i386/tlsnopic.rd: Likewise.
* ld-i386/tlsbindesc.td: Likewise.
* ld-i386/tlspic.td: Likewise.
* ld-i386/tlsbin.sd: Likewise.
2011-06-20 13:18:52 +00:00
H.J. Lu
2abca860af
Add testcases for PR ld/12718.
...
2011-05-01 H.J. Lu <hongjiu.lu@intel.com>
PR ld/12718
* ld-i386/i386.exp: Run pr12718.
* ld-x86-64/x86-64.exp: Likewise.
* ld-i386/pr12718.d: New.
* ld-i386/pr12718.s: Likewise.
* ld-x86-64/pr12718.d: Likewise.
* ld-x86-64/pr12718.s: Likewise.
2011-05-01 13:38:22 +00:00
H.J. Lu
959b0961c9
Properly handle R_386_TLS_LDO_32 for PIE.
...
bfd/
2011-04-08 H.J. Lu <hongjiu.lu@intel.com>
PR ld/12654
* elf32-i386.c (elf_i386_relocate_section): Check !executable
instead of shared for R_386_TLS_LDO_32.
ld/testsuite/
2011-04-08 H.J. Lu <hongjiu.lu@intel.com>
PR ld/12654
* ld-i386/i386.exp: Run tlspie2.
* ld-i386/tlspie2.d: New.
* ld-i386/tlspie2.s: Likewise.
2011-04-08 16:14:49 +00:00
H.J. Lu
a3293649cd
Add a testcase for PR ld/12627.
...
2011-04-04 H.J. Lu <hongjiu.lu@intel.com>
PR ld/12627
* ld-i386/i386.exp: Run pr12627.
* ld-i386/pr12627.d: New.
* ld-i386/pr12627.s: Likewise.
* ld-i386/pr12627.t: Likewise.
2011-04-04 16:36:29 +00:00
Alan Modra
99753d9d70
* ld-elf/binutils.exp: Correct x86 gnu target match.
...
* ld-i386/i386.exp: Likewise.
* ld-ifunc/binutils.exp: Likewise.
* ld-ifunc/ifunc.exp: Likewise.
* ld-discard/discard.exp: Remove unnecessary line continuations.
* ld-elfvers/vers.exp: Likewise. Simplify linuxaout and linuxoldld
test.
* ld-elfweak/elfweak.exp: Likewise.
2010-11-18 06:57:57 +00:00
Thomas Schwinge
5940a93c84
Improve binutils testsuite coverage for GNU/Hurd.
...
binutils/testsuite/
* lib/utils-lib.exp (is_elf_format): Consider for *-*-gnu*, too.
* binutils-all/elfedit-2.d (target): Likewise.
* binutils-all/elfedit-3.d (target): Likewise.
* binutils-all/i386/i386.exp: Likewise.
* binutils-all/objcopy.exp: Likewise.
* binutils-all/strip-3.d (target): Likewise.
gas/testsuite/
* lib/gas-defs.exp (is_elf_format): Consider for *-*-gnu*, too.
* gas/elf/elf.exp: Likewise.
* gas/symver/symver.exp: Likewise.
ld/
* configure.host: Add stanza for *-*-gnu*.
ld/testsuite/
* lib/ld-lib.exp (is_elf_format): Consider for *-*-gnu*, too.
* ld-discard/discard.exp: Likewise.
* ld-elf/binutils.exp: Likewise.
* ld-elf/commonpage1.d (target): Likewise.
* ld-elf/compress1c.d (target): Likewise.
* ld-elf/discard1.d (target): Likewise.
* ld-elf/discard2.d (target): Likewise.
* ld-elf/discard3.d (target): Likewise.
* ld-elf/dynsym1.d (target): Likewise.
* ld-elf/eh6.d (target): Likewise.
* ld-elf/elf.exp: Likewise.
(array_tests): Move -static tests to...
(array_tests_static): ... here, and handle it accordingly.
* ld-elf/hash.d (target): Likewise.
* ld-elf/header.d (target): Likewise.
* ld-elf/loadaddr1.d (target): Likewise.
* ld-elf/loadaddr2.d (target): Likewise.
* ld-elf/loadaddr3a.d (target): Likewise.
* ld-elf/loadaddr3b.d (target): Likewise.
* ld-elf/local1.d (target): Likewise.
* ld-elf/maxpage1.d (target): Likewise.
* ld-elf/maxpage2.d (target): Likewise.
* ld-elf/maxpage3a.d (target): Likewise.
* ld-elf/multibss1.d (target): Likewise.
* ld-elf/noload-2.d (target): Likewise.
* ld-elf/seg.d (target): Likewise.
* ld-elf/textaddr1.d (target): Likewise.
* ld-elf/textaddr2.d (target): Likewise.
* ld-elf/textaddr3.d (target): Likewise.
* ld-elf/textaddr4.d (target): Likewise.
* ld-elf/textaddr5.d (target): Likewise.
* ld-elf/textaddr6.d (target): Likewise.
* ld-elf/textaddr7.d (target): Likewise.
* ld-elf/tls_common.exp: Likewise.
* ld-elf/unknown2.d (target): Likewise.
* ld-elfvers/vers.exp: Likewise.
* ld-elfvsb/elfvsb.exp: Likewise.
* ld-elfweak/elfweak.exp: Likewise.
(setup_xfail_gnu_hurd): New function. Use it where appropriate.
* ld-gc/abi-note.d (target): Likewise.
* ld-gc/gc.exp: Likewise.
* ld-gc/pr11218.d (target): Likewise.
* ld-gc/start.d (target): Likewise.
* ld-i386/i386.exp: Likewise.
* ld-ifunc/binutils.exp: Likewise.
* ld-ifunc/ifunc.exp: Likewise.
* ld-linkonce/linkonce.exp: Likewise.
* ld-linkonce/zeroehl32.d (target): Likewise.
* ld-pie/pie.exp: Likewise.
* ld-scripts/phdrs2.exp: Likewise.
* ld-scripts/rgn-at5.d (target): Likewise.
* ld-shared/shared.exp: Likewise.
* ld-undefined/entry-3.d (target): Likewise.
* ld-undefined/entry-4.d (target): Likewise.
* ld-undefined/weak-undef.exp: Likewise.
2010-11-08 06:43:40 +00:00
H.J. Lu
0629d0af5a
Add 2 tests for PR ld/11812.
...
2010-09-30 H.J. Lu <hongjiu.lu@intel.com>
PR ld/11812
* ld-i386/nogot2.d: New
* ld-i386/nogot2.s: Likewise.
* ld-x86-64/nogot2.d: Likewise.
* ld-x86-64/nogot2.s: Likewise.
* ld-i386/i386.exp: Run nogot2.
* ld-x86-64/x86-64.exp: Likewise.
2010-10-01 04:47:02 +00:00
H.J. Lu
a2ae814f42
Remove GOTOFF in ld-i386/nogot1.s.
...
2010-09-23 H.J. Lu <hongjiu.lu@intel.com>
PR ld/11812
* ld-i386/nogot1.s: Don't use GOTOFF.
2010-09-24 06:09:31 +00:00
H.J. Lu
56d4289c6c
Check if .got.plt section is discarded before using it.
...
bfd/
2010-08-13 H.J. Lu <hongjiu.lu@intel.com>
PR ld/11913
* elf32-i386.c (elf_i386_finish_dynamic_sections): Check if
.got.plt section is discarded.
* elf64-x86-64.c (elf64_x86_64_finish_dynamic_sections): Likewise.
ld/testsuite/
2010-08-13 H.J. Lu <hongjiu.lu@intel.com>
PR ld/11913
* ld-i386/discarded1.d: New.
* ld-i386/discarded1.s: Likewise.
* ld-i386/discarded1.t: Likewise.
* ld-x86-64/discarded1.d: Likewise.
* ld-x86-64/discarded1.s: Likewise.
* ld-x86-64/discarded1.t: Likewise.
* ld-i386/i386.exp: Run discarded1.
* ld-x86-64/x86-64.exp: Likewise.
2010-08-13 20:50:27 +00:00
H.J. Lu
25d17eb4cc
Add testcases for PR ld/11817.
...
2010-07-14 H.J. Lu <hongjiu.lu@intel.com>
PR ld/11817
* ld-i386/compressed1.s: New.
* ld-i386/compressed1.d: Likewise.
* ld-x86-64/compressed1.s: Likewise.
* ld-x86-64/compressed1.d: Likewise.
* ld-i386/i386.exp: Run compressed1.
* ld-x86-64/x86-64.exp: Likewise.
2010-07-15 00:42:23 +00:00
H.J. Lu
a7b16ceb92
Don't allocate .got.plt section if there are no GOT nor PLT entries.
...
bfd/
2010-07-13 H.J. Lu <hongjiu.lu@intel.com>
PR ld/11812
* elf32-i386.c (elf_i386_size_dynamic_sections): Don't
allocate .got.plt section if there are no GOT nor PLT
entries.
* elf64-x86-64.c (elf64_x86_64_size_dynamic_sections): Likewise.
ld/testsuite/
2010-07-13 H.J. Lu <hongjiu.lu@intel.com>
PR ld/11812
* ld-elf/exclude3b.d: Don't run on ia64-*-*. Replace .got with
.dynamic.
* ld-elf/exclude3d.d: New.
* ld-i386/nogot1.d: Likewise.
* ld-i386/nogot1.s: Likewise.
* ld-x86-64/nogot1.d: Likewise.
* ld-x86-64/nogot1.s: Likewise.
* ld-i386/i386.exp: Run nogot1.
* ld-x86-64/x86-64.exp: Likewise.
2010-07-14 00:30:57 +00:00
H.J. Lu
2f39597837
Don't hard code expected output.
...
2010-07-13 H.J. Lu <hongjiu.lu@intel.com>
* ld-i386/hidden2.d: Don't hard code expected output.
* ld-i386/protected3.d: Likewise.
* ld-x86-64/hidden2.d: Likewise.
* ld-x86-64/protected3.d: Likewise.
2010-07-13 17:42:29 +00:00
Alan Modra
3ac9b6c910
bfd/
...
* elf.c (assign_file_positions_for_load_sections): Revert 2008-05-29
change. Tidy. Don't error on sections not allocated in segment.
ld/testsuite/
* ld-elf/extract-symbol-1sec.d: Update lma.
* ld-i386/alloc.d: Expect a warning, not an error.
2010-04-22 01:51:01 +00:00
H.J. Lu
935bd1e079
bfd/
...
2009-09-24 H.J. Lu <hongjiu.lu@intel.com>
PR ld/10630
* elflink.c (elf_link_output_extsym): Turn off visibility on
local symbol.
(bfd_elf_final_link): Turn off visibility on dynamic local
symbol.
ld/testsuite/
2009-09-24 H.J. Lu <hongjiu.lu@intel.com>
PR ld/10630
* ld-alpha/tlsbin.rd: Remove HIDDEN/.hidden on local symbols.
* ld-alpha/tlsbinr.rd: Likewise.
* ld-alpha/tlspic.rd: Likewise.
* ld-cris/libdso-2.d: Likewise.
* ld-cris/locref1.d: Likewise.
* ld-cris/locref2.d: Likewise.
* ld-cris/tls-e-20a.d: Likewise.
* ld-cris/tls-e-20.d: Likewise.
* ld-cris/tls-e-80.d: Likewise.
* ld-cris/tls-gc-68.d: Likewise.
* ld-cris/tls-gc-69.d: Likewise.
* ld-cris/tls-gc-70.d: Likewise.
* ld-cris/tls-gc-75.d: Likewise.
* ld-cris/tls-gc-76.d: Likewise.
* ld-cris/tls-gc-79.d: Likewise.
* ld-cris/tls-gd-1h.d: Likewise.
* ld-cris/tls-gd-2h.d: Likewise.
* ld-cris/tls-ld-4.d: Likewise.
* ld-cris/tls-ld-5.d: Likewise.
* ld-cris/tls-ld-6.d: Likewise.
* ld-cris/tls-ld-7.d: Likewise.
* ld-cris/tls-ldgd-14.d: Likewise.
* ld-cris/tls-ldgd-15.d: Likewise.
* ld-cris/tls-local-63.d: Likewise.
* ld-cris/tls-local-64.d: Likewise.
* ld-elf/pr9676.rd: Likewise.
* ld-elf/pr9679.rd: Likewise.
* ld-elfvsb/hidden2.d: Likewise.
* ld-i386/tlsbindesc.rd: Likewise.
* ld-i386/tlsbin.rd: Likewise.
* ld-i386/tlsdesc.rd: Likewise.
* ld-i386/tlsgdesc.rd: Likewise.
* ld-i386/tlsnopic.rd: Likewise.
* ld-i386/tlspic.rd: Likewise.
* ld-ia64/tlsbin.rd: Likewise.
* ld-ia64/tlspic.rd: Likewise.
* ld-powerpc/tlsexe32.r: Likewise.
* ld-powerpc/tlsexe.r: Likewise.
* ld-powerpc/tlsexetoc.r: Likewise.
* ld-powerpc/tlsso32.r: Likewise.
* ld-powerpc/tlsso.r: Likewise.
* ld-powerpc/tlstocso.r: Likewise.
* ld-s390/tlsbin_64.rd: Likewise.
* ld-s390/tlsbin.rd: Likewise.
* ld-s390/tlspic_64.rd: Likewise.
* ld-s390/tlspic.rd: Likewise.
* ld-sparc/gotop32.rd: Likewise.
* ld-sparc/gotop64.rd: Likewise.
* ld-sparc/tlssunbin32.rd: Likewise.
* ld-sparc/tlssunbin64.rd: Likewise.
* ld-sparc/tlssunnopic32.rd: Likewise.
* ld-sparc/tlssunnopic64.rd: Likewise.
* ld-sparc/tlssunpic32.rd: Likewise.
* ld-sparc/tlssunpic64.rd: Likewise.
* ld-x86-64/tlsbindesc.rd: Likewise.
* ld-x86-64/tlsbin.rd: Likewise.
* ld-x86-64/tlsdesc.rd: Likewise.
* ld-x86-64/tlsgdesc.rd: Likewise.
* ld-x86-64/tlspic.rd: Likewise.
* ld-xtensa/tlsbin.rd: Likewise.
* ld-xtensa/tlspic.rd: Likewise.
* ld-elf/local1.d: New.
* ld-elf/local1.map: Likewise.
* ld-elf/local1.s: Likewise.
* ld-ia64/local1.d: Likewise.
* ld-ia64/local1.map: Likewise.
* ld-ia64/local1.s: Likewise.
2009-09-24 15:56:52 +00:00
Alan Modra
f9272224cd
Tolerate some whitespace differences in readelf output.
2009-09-23 03:12:28 +00:00
Alan Modra
aa820537ea
update copyright dates
2009-09-02 07:25:43 +00:00
Jan Kratochvil
e39e47bd25
bfd/
...
Fix go32 stub preservation by objcopy.
* coff-stgo32.c (adjust_filehdr_in_post): Use bfd_malloc.
(go32_stubbed_coff_bfd_copy_private_bfd_data): Optionally allocate OBFD
go32stub.
ld/testsuite/
Test go32 stub preservation by objcopy.
* ld-i386/i386.exp (go32 stub, go32 stub patch the source)
(go32 stub objcopy, go32 stub comparison after objcopy): New.
2009-08-10 21:38:36 +00:00
H.J. Lu
1d85728fd7
2009-08-02 H.J. Lu <hongjiu.lu@intel.com>
...
Jakub Jelinek <jakub@redhat.com>
PR ld/6443
* elf32-i386.c (elf_i386_tls_transition): Check executable
instead of shared for TLS when building PIE.
(elf_i386_check_relocs): Likewise.
(elf_i386_allocate_dynrelocs): Likewise.
(elf_i386_relocate_section): Likewise.
* elf64-x86-64.c (elf64_x86_64_tls_transition): Check executable
instead of shared for TLS when building PIE.
(elf64_x86_64_check_relocs): Likewise.
(elf64_x86_64_allocate_dynrelocs): Likewise.
(elf64_x86_64_relocate_section): Likewise.
ld/testsuite/
2009-08-02 H.J. Lu <hongjiu.lu@intel.com>
PR ld/6443
* ld-i386/i386.exp: Run tlspie1.
* ld-x86-64/x86-64.exp: tlspie1.
* ld-i386/tlspie1.d: New.
* ld-i386/tlspie1.s: Likewise.
* ld-x86-64/tlspie1.d: Likewise.
* ld-x86-64/tlspie1.s: Likewise.
2009-08-02 23:55:49 +00:00
H.J. Lu
4c5448074d
bfd/
...
2009-06-19 H.J. Lu <hongjiu.lu@intel.com>
* elf32-i386.c (elf_i386_tls_transition): Add a parameter,
r_symndx. Report local symbol name on error.
(elf_i386_check_relocs): Updated. Report local symbol name on
error.
(elf_i386_gc_sweep_hook): Updated.
(elf_i386_relocate_section): Likewise.
* elf64-x86-64.c (elf64_x86_64_tls_transition): Add a parameter,
r_symndx. Report local symbol name on error.
(elf64_x86_64_check_relocs): Updated. Report local symbol name
on error.
(elf64_x86_64_gc_sweep_hook): Updated.
(elf64_x86_64_relocate_section): Likewise.
ld/testsuite/
2009-06-19 H.J. Lu <hongjiu.lu@intel.com>
* ld-i386/i386.exp: Run tlsgd2.
* ld-i386/tlsgd2.d: New.
* ld-i386/tlsgd2.s: Likewise.
* ld-x86-64/tlsgd3.d: Updated.
2009-06-19 16:00:33 +00:00
Nathan Sidwell
27e086348d
* ld-i386/vxworks1-lib.dd: Adjust expected disassembly.
...
* ld-i386/vxworks1.dd: Adjust expected disassembly.
* ld-i386/vxworks1-lib.rd: Sections are swapped.
2009-04-28 12:46:10 +00:00
H.J. Lu
3a7cb64604
2009-04-08 H.J. Lu <hongjiu.lu@intel.com>
...
* ld-i386/abs.d: Add --32 for assembler and -melf_i386 for
linker.
2009-04-08 21:48:47 +00:00
Nick Clifton
0f88be7a13
Remove STT_IFUNC support.
2008-12-23 09:01:51 +00:00
H.J. Lu
ea397f5b07
gas/testsuite/
...
2008-12-18 H.J. Lu <hongjiu.lu@intel.com>
* gas/i386/intel.d: Remove trailing white spaces after nop.
* gas/i386/intelpic.d: Likewise.
* gas/i386/nops16-1.d: Likewise.
* gas/i386/nops-1-i686.d: Likewise.
* gas/i386/nops-3.d: Likewise.
* gas/i386/nops-3-i386.d: Likewise.
* gas/i386/nops-3-i686.d: Likewise.
* gas/i386/nops-4.d: Likewise.
* gas/i386/nops-4-i386.d: Likewise.
* gas/i386/nops-4-i686.d: Likewise.
* gas/i386/opcode.d: Likewise.
* gas/i386/opcode-suffix.d: Likewise.
* gas/i386/reloc.d: Likewise.
* gas/i386/tlsnopic.d: Likewise.
* gas/i386/x86-64-nops-1.d: Likewise.
* gas/i386/x86-64-nops-1-nocona.d: Likewise.
* gas/i386/x86-64-nops-2.d: Likewise.
* gas/i386/x86-64-nops-3.d: Likewise.
* gas/i386/x86-64-nops-4-core2.d: Likewise.
* gas/i386/x86-64-nops-4.d: Likewise.
* gas/i386/x86-64-nops-4-k8.d: Likewise.
* gas/i386/x86-64-opcode.d: Likewise.
ld/testsuite/
2008-12-18 H.J. Lu <hongjiu.lu@intel.com>
* ld-i386/tlsld1.dd: Remove trailing white spaces after nop.
opcodes/
2008-12-18 H.J. Lu <hongjiu.lu@intel.com>
* i386-dis.c (mnemonicendp): New.
(op): Likewise.
(print_insn): Use mnemonicendp.
(OP_3DNowSuffix): Likewise.
(CMP_Fixup): Likewise.
(CMPXCHG8B_Fixup): Likewise.
(CRC32_Fixup): Likewise.
(OP_DREX_FCMP): Likewise.
(OP_DREX_ICMP): Likewise.
(VZERO_Fixup): Likewise.
(VCMP_Fixup): Likewise.
(PCLMUL_Fixup): Likewise.
(VPERMIL2_Fixup): Likewise.
(MOVBE_Fixup): Likewise.
(putop): Update mnemonicendp.
(oappend): Use stpcpy.
(simd_cmp_op): Changed to struct op.
(vex_cmp_op): Likewise.
(pclmul_op): Likewise.
(vpermil2_op): Likewise.
2008-12-18 22:47:32 +00:00
Nick Clifton
137627db10
* ld-x86-64/ifunc.d: New test (of STT_IFUNC for x86_64).
...
* ld-x86-64/ifunc.s: Source file for new test.
* ld-x86-64/x86-64.exp: Run the new test.
* ld-i386/ifunc.d: Tidy up regexps for expected output.
2008-12-04 11:00:18 +00:00
Nick Clifton
e7c3341679
include/elf/
...
* common.h (STT_IFUNC): Define.
elfcpp/
* elfcpp.h (enum STT): Add STT_IFUNC.
bfd/
* syms.c (struct bfd_symbol): Add new flag BSF_INDIRECT_FUNCTION.
Remove redundant flag BFD_FORT_COMM_DEFAULT_VALUE. Renumber flags
to remove gaps.
(bfd_print_symbol_vandf): Return 'i' for BSF_INDIRECT_FUNCTION.
(bfd_decode_symclass): Likewise.
* elf.c (swap_out_syms): Translate BSF_INDIRECT_FUNCTION into
STT_IFUNC.
(elf_find_function): Treat STT_IFUNC in the same way as STT_FUNC.
(_bfd_elf_is_function_type): Likewise.
* elf32-arm.c (arm_elf_find_function): Likewise.
(elf32_arm_adjust_dynamic_symbol): Likewise.
(elf32_arm_swap_symbol_in): Likewise.
(elf32_arm_additional_program_headers): Likewise.
* elf32-i386.c (is_indirect_symbol): New function.
(elf_i386_check_relocs): Also generate dynamic relocs for
relocations against STT_IFUNC symbols.
(allocate_dynrelocs): Likewise.
(elf_i386_relocate_section): Likewise.
* elf64-x86-64.c (is_indirect_symbol): New function.
(elf64_x86_64_check_relocs): Also generate dynamic relocs for
relocations against STT_IFUNC symbols.
(allocate_dynrelocs): Likewise.
(elf64_x86_64_relocate_section): Likewise.
* elfcode.h (elf_slurp_symbol_table): Translate STT_IFUNC into
BSF_INDIRECT_FUNCTION.
* elflink.c (_bfd_elf_adjust_dynamic_reloc_section): Add support
for STT_IFUNC symbols.
(get_ifunc_reloc_section_name): New function.
(_bfd_elf_make_ifunc_reloc_section): New function.
* elf-bfd.h (struct bfd_elf_section_data): Add indirect_relocs field.
* bfd-in2.h: Regenerate.
gas/
* config/obj-elf.c (obj_elf_type): Add support for STT_IFUNC type.
* doc/as.texinfo: Document new feature.
* NEWS: Mention new feature.
gas/testsuite/
* gas/elf/type.s: Add test of STT_IFUNC symbol type.
* gas/elf/type.e: Update expected disassembly.
* gas/elf/elf.exp: Update grep of symbol types.
ld/
* NEWS: Mention new feature.
* pe-dll.c (process_def_file): Replace use of redundant
BFD_FORT_COMM_DEFAULT_VALUE with 0.
* scripttempl/elf.sc: Add .rel.ifunc.dyn and .rela.ifunc.dyn
sections.
ld/testsuite/
* ld-mips-elf/reloc-1-n32.d: Updated expected output for reloc
descriptions.
* ld-mips-elf/reloc-1-n64.d: Likewise.
* ld-i386/ifunc.d: New test.
* ld-i386/ifunc.s: Source file for the new test.
* ld-i386/i386.exp: Run the new test.
2008-12-03 14:51:00 +00:00
Alexandre Oliva
9f03412ac6
bfd/ChangeLog:
...
* elf32-i386.c (struct elf_i386_link_hash_table): Added field
tls_module_base.
(elf_i386_link_hash_table_create): Initialize it.
(elf_i386_always_size_sections): Set it.
(set_tls_module_base): New.
(elf_i386_relocate_sections): Call it.
* elf64-x86-64.c (struct elf64_x86_64_link_hash_table): Added
field tls_module_base.
(elf64_x86_64_link_hash_table_create): Initialize it.
(elf64_x86_64_always_size_sections): Set it.
(set_tls_module_base): New.
(elf64_x86_64_relocate_sections): Call it.
Reported by Cary Coutant <ccoutant@google.com>
ld/testsuite/ChangeLog:
* ld-i386/tlsbindesc.dd: Adjust incorrect expectations for LD to
LE relaxation.
* ld-x86-64/tlsbindesc.dd: Likewise.
* ld-i386/tlsbindesc.rd: Adjust address of _TLS_MODULE_BASE_.
* ld-x86-64/tlsbindesc.rd: Likewise.
Reported by Cary Coutant <ccoutant@google.com>
2008-07-28 18:07:05 +00:00
H.J. Lu
41bed6dd8a
bfd/
...
2008-03-16 H.J. Lu <hongjiu.lu@intel.com>
PR ld/5789
PR ld/5943
* elf32-i386.c (elf_i386_relocate_section): Issue an error
for R_386_GOTOFF relocaton against undefined hidden/internal
symbols when building a shared object.
* elf64-x86-64.c (elf64_x86_64_relocate_section): Issue an
error for R_X86_64_PC8/R_X86_64_PC16/R_X86_64_PC32
relocaton against undefined hidden/internal symbols when
building a shared object.
(elf64_x86_64_finish_dynamic_symbol): Return FALSE when symbol
is referenced locally, but isn't defined in a regular file.
ld/testsuite/
2008-03-16 H.J. Lu <hongjiu.lu@intel.com>
PR ld/5789
PR ld/5943
* ld-i386/hidden1.d: New.
* ld-i386/hidden1.s: Likewise.
* ld-i386/hidden2.d: Likewise.
* ld-i386/hidden2.s: Likewise.
* ld-i386/hidden3.d: Likewise.
* ld-i386/hidden4.s: Likewise.
* ld-i386/protected1.d: Likewise.
* ld-i386/protected1.s: Likewise.
* ld-i386/protected2.d: Likewise.
* ld-i386/protected2.s: Likewise.
* ld-i386/protected3.d: Likewise.
* ld-i386/protected3.s: Likewise.
* ld-x86-64/hidden1.d: Likewise.
* ld-x86-64/hidden1.s: Likewise.
* ld-x86-64/hidden2.d: Likewise.
* ld-x86-64/hidden2.s: Likewise.
* ld-x86-64/hidden3.d: Likewise.
* ld-x86-64/hidden3.s: Likewise.
* ld-x86-64/protected1.d: Likewise.
* ld-x86-64/protected1.s: Likewise.
* ld-x86-64/protected2.d: Likewise.
* ld-x86-64/protected2.s: Likewise.
* ld-x86-64/protected3.d: Likewise.
* ld-x86-64/protected3.s: Likewise.
* ld-i386/i386.exp: Run hidden1, hidden2, hidden3, protected1,
protected2 and protected3.
* ld-x86-64/x86-64.exp: Likewise.
2008-03-16 22:26:23 +00:00