H.J. Lu
1a0c107f58
Undo Solaris damages in elf64-x86-64.c.
...
bfd/
2011-01-18 H.J. Lu <hongjiu.lu@intel.com>
* elf64-x86-64.c (elf_backend_static_tls_alignment): Undefine
after Solaris target.
(elf_backend_want_plt_sym): Redefine to 0 after Solaris target.
ld/testsuite/
2011-01-18 H.J. Lu <hongjiu.lu@intel.com>
* ld-x86-64/ilp32-4.d: Updated.
2011-01-18 20:41:09 +00:00
Nick Clifton
d68cd58c00
Fix compilation for mingw64.
...
* coffcode.h (coff_slurp_symbol_table): Add intptr_t intermediate
typecast to avoid warning.
* elf32-rx.c: Add "bfd_stdint.h" include required for int32_t type
usage.
* elfxx-ia64.c (elfNN_ia64_relax_br): Use intptr_t typeacast instead
of long for pointer to avoid warning.
(elfNN_ia64_relax_brl): Idem.
(elfNN_ia64_install_value): Idem.
* vms-alpha.c (_bfd_vms_slurp_etir): Idem.
2011-01-18 14:13:43 +00:00
Richard Sandiford
da17376b70
bfd/
...
* elf32-arm.c (elf32_arm_check_relocs): Check needs_plt rather than
h->needs_plt when deciding whether to record a possible dynamic reloc.
ld/testsuite/
* ld-arm/arm-rel32.s, ld-arm/arm-rel32.d: New testcase.
* ld-arm/arm-elf.exp: Run it.
2011-01-17 16:36:43 +00:00
Richard Sandiford
1e81e12b2c
bfd/
...
* elf32-arm.c (elf32_arm_gc_sweep_hook): Remove all registered
dynamic relocs for the removed section.
ld/testsuite/
* ld-arm/gc-thumb-lib.s, ld-arm/gc-thumb.s,
ld-arm/gc-thumb.d: New test.
* ld-arm/arm-elf.exp: Run it.
2011-01-17 16:36:15 +00:00
H.J. Lu
d1534d1688
Check invalid x32 relocations.
...
2011-01-15 H.J. Lu <hongjiu.lu@intel.com>
* elf64-x86-64.c (elf_x86_64_check_relocs): Check invalid x32
relocations.
2011-01-15 15:49:48 +00:00
H.J. Lu
248775ba37
Handle R_X86_64_32 like R_X86_64_64 for ILP32.
...
bfd/
2011-01-14 H.J. Lu <hongjiu.lu@intel.com>
* elf64-x86-64.c (elf_x86_64_link_hash_table): Add pointer_r_type.
(elf_x86_64_link_hash_table_create): Set pointer_r_type.
(elf_x86_64_check_relocs): Handle R_X86_64_32 like R_X86_64_64
for ILP32. Remove ABI_64_P PIC check for R_X86_64_8,
R_X86_64_16, R_X86_64_32 and R_X86_64_32S.
(elf_x86_64_relocate_section): Handle R_X86_64_32 like R_X86_64_64
for ILP32.
ld/testsuite/
2011-01-14 H.J. Lu <hongjiu.lu@intel.com>
* ld-x86-64/ilp32-5.d: New.
* ld-x86-64/ilp32-5.s: Likewise.
* ld-x86-64/x86-64.exp: Run ilp32-5.
2011-01-14 22:48:12 +00:00
Alan Modra
4a97a0e54c
* bfd.c (bfd_perror): Flush stdout before and stderr after printing
...
error.
(_bfd_default_error_handler): Likewise.
* elf.c (print_segment_map): Likewise.
* libbfd.c (warn_deprecated): Likewise.
* som.c (som_sizeof_headers): No need to do so here.
* coff-i860.c: Replace use of printf for error messages with
_bfd_error_handler.
* coff-ppc.c: Likewise.
* coff-sh.c: Likewise.
* elf32-bfin.c: Likewise.
* elf32-dlx.c: Likewise.
* elf32-mep.c: Likewise.
* elf32-v850.c: Likewise.
* mach-o.c: Likewise.
* pef.c: Likewise.
2011-01-14 12:35:56 +00:00
H.J. Lu
82e96e07e5
Fix x86-64 ILP32 shared library.
...
bfd/
2011-01-13 H.J. Lu <hongjiu.lu@intel.com>
* elf64-x86-64.c (elf_x86_64_link_hash_table): Remove
swap_reloca_out.
(elf_x86_64_link_hash_table_create): Don't set swap_reloca_out.
(elf_x86_64_check_relocs): Align relocation section to 4 byte
for 32bit.
(elf_x86_64_gc_sweep_hook): Replace ELF64_ST_TYPE with
ELF_ST_TYPE.
(elf_x86_64_finish_dynamic_symbol): Updated.
(elf_x86_64_finish_dynamic_sections): Don't use
Elf64_External_Dyn, bfd_elf64_swap_dyn_in, nor
bfd_elf64_swap_dyn_out.
ld/testsuite/
2011-01-13 H.J. Lu <hongjiu.lu@intel.com>
* ld-x86-64/ilp32-4.d: New.
* ld-x86-64/x86-64.exp: Run ilp32-4.
2011-01-14 04:24:00 +00:00
Alan Modra
e6a6bb22ab
PR ld/12339
...
* elf32-arm.c (allocate_dynrelocs): Don't set up eh before
following bfd_link_hash_warning symbol link.
2011-01-14 02:17:58 +00:00
Nathan Sidwell
0855e32bf5
bfd/
...
* reloc.c (BFD_RELOC_ARM_TLS_GOTDESC, BFD_RELOC_ARM_TLS_CALL,
BFD_RELOC_ARM_THM_TLS_CALL, BFD_RELOC_ARM_TLS_DESCSEQ,
BFD_RELOC_ARM_THM_TLS_DESCSEQ, BFD_RELOC_ARM_TLS_DESC): New
relocations.
* libbfd.h: Rebuilt.
* bfd-in2.h: Rebuilt.
* elf32-arm.c (elf32_arm_howto_table_1): Add new relocations.
(elf32_arm_reloc_map): Likewise.
(tls_trampoline, dl_tlsdesc_lazy_trampoline): New PLT templates.
(elf32_arm_stub_long_branch_any_tls_pic,
elf32_arm_stub_long_branch_v4t_thumb_tls_pic): New stub templates.
(DEF_STUBS): Add new stubs.
(struct_elf_arm_obj_data): Add local_tlsdesc_gotent field.
(elf32_arm_local_tlsdesc_gotent): New.
(GOT_TLS_GDESC): New mask.
(GOT_TLS_GD_ANY): Define.
(struct elf32_arm_link_hash_entry): Add tlsdesc_got field.
(elf32_arm_compute_jump_table_size): New.
(struct elf32_arm_link_hash_table): Add next_tls_desc_index,
num_tls_desc, dt_tlsdesc_plt, dt_tlsdesc_got, tls_trampoline,
sgotplt_jump_table_size fields.
(elf32_arm_link_hash_newfunc): Initialize tlsdesc_got field.
(elf32_arm_link_hash_table_create): Initialize new fields.
(arm_type_of_stub): Check TLS desc relocs too.
(elf32_arm_stub_name): TLS desc relocs can be shared.
(elf32_arm_tls_transition): Determine relaxation.
(arm_stub_required_alignment): Add tls stubs.
(elf32_arm_size_stubs): Likewise.
(elf32_arm_tls_relax): Perform TLS relaxing.
(elf32_arm_final_link_relocate): Process TLS DESC relocations.
(IS_ARM_TLS_GNU_RELOC): New.
(IS_ARM_TLS_RELOC): Use it.
(elf32_arm_relocate_section): Perform TLS relaxing.
(elf32_arm_check_relocs): Anticipate TLS relaxing, process tls
desc relocations.
(allocate_dynrelocs): Allocate tls desc relcoations.
(elf32_arm_output_arch_local_syms): Emit tls trampoline mapping
symbols.
(elf32_arm_size_dynamic_sections): Allocate tls trampolines and
got slots.
(elf32_arm_always_size_sections): New. Create _TLS_MODULE_BASE
symbol.
(elf32_arm_finish_dynamic_symbol): Adjust.
(arm_put_trampoline): New.
(elf32_arm_finish_dynamic_sections): Emit new dynamic tags and tls
trampolines.
(elf_backend_always_size_sections): Define.
include/elf/
* arm.h (R_ARM_TLS_DESC, R_ARM_TLS_GOTDESC, R_ARM_TLS_CALL,
R_ARM_TLS_DESCSEQ, T_ARM_THM_TLS_CALL, R_ARM_THM_TLS_DESCSEQ): New
relocations.
gas/
* doc/c-arm.texi: Document TLSDESC and TLSCALL relocations, and
.tlsdescseq directive.
* config/tc-arm.c (arm_typed_reg_parse): Check for potential reloc
following a symbol.
(s_arm_tls_descseq): New directive.
(md_pseudo_table): Add it.
(encode_branch): Allow TLS_CALL relocs too.
(do_t_blx, do_t_branch23): Use encode_branch.
(reloc_names): Add tlsdesc and tlscall.
(md_apply_fix): Process tls desc relocations.
(tc_gen_reloc): Likewise.
(arm_fix_adjustable): Likewise.
gas/testsuite/
* gas/arm/tls.s: Add tlsdesc tests.
* gas/arm/tls.d: Adjust.
ld/testsuite/
* ld-arm/arm-elf.exp: Added tests for new TLS handling
relocations.
* ld-arm/tls-descrelax-be32.d: New.
* ld-arm/tls-descrelax-be32.s: New.
* ld-arm/tls-descrelax-be8.d: New.
* ld-arm/tls-descrelax-be8.s: New.
* ld-arm/tls-descrelax-v7.d: New.
* ld-arm/tls-descrelax-v7.s: New.
* ld-arm/tls-descrelax.d: New.
* ld-arm/tls-descrelax.s: New.
* ld-arm/tls-descseq.d: New.
* ld-arm/tls-descseq.r: New.
* ld-arm/tls-descseq.s: New.
* ld-arm/tls-gdesc-got.d: New.
* ld-arm/tls-gdesc-got.s: New.
* ld-arm/tls-gdesc-nlazy.g: New.
* ld-arm/tls-gdesc-nlazy.s: New.
* ld-arm/tls-gdesc.d: New.
* ld-arm/tls-gdesc.r: New.
* ld-arm/tls-gdesc.s: New.
* ld-arm/tls-gdierelax.d: New.
* ld-arm/tls-gdierelax.s: New.
* ld-arm/tls-gdierelax2.d: New.
* ld-arm/tls-gdierelax2.s: New.
* ld-arm/tls-gdlerelax.d: New.
* ld-arm/tls-gdlerelax.s: New.
* ld-arm/tls-lib-loc.d: New.
* ld-arm/tls-lib-loc.r: New.
* ld-arm/tls-lib-loc.s: New.
* ld-arm/tls-longplt-lib.d: New.
* ld-arm/tls-longplt-lib.s: New.
* ld-arm/tls-longplt.d: New.
* ld-arm/tls-longplt.s: New.
* ld-arm/tls-mixed.r: New.
* ld-arm/tls-mixed.s: New.
* ld-arm/tls-thumb1.d: New.
* ld-arm/tls-thumb1.s: New.
* ld-arm/arm-elf.exp: New.
2011-01-10 08:40:19 +00:00
H.J. Lu
7be867377d
Optimize _bfd_elf_allocate_ifunc_dyn_relocs.
...
2011-01-06 H.J. Lu <hongjiu.lu@intel.com>
* elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Optimized.
2011-01-07 03:34:23 +00:00
H.J. Lu
ae428b5752
Correct year.
2011-01-06 19:05:48 +00:00
H.J. Lu
3db2e7dda6
Handle STT_GNU_IFUNC symols when building shared library.
...
bfd/
2012-01-06 H.J. Lu <hongjiu.lu@intel.com>
PR ld/12366
PR ld/12371
* elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Properly
handle symbols marked with regular reference, but not non-GOT
reference when building shared library.
* elf32-i386.c (elf_i386_gc_sweep_hook): Properly handle
local and global STT_GNU_IFUNC symols when building shared
library.
* elf64-x86-64.c (elf_x86_64_gc_sweep_hook): Likewise.
ld/testsuite/
2012-01-06 H.J. Lu <hongjiu.lu@intel.com>
PR ld/12366
PR ld/12371
* ld-ifunc/ifunc-10-i386.s: Add more tests.
* ld-ifunc/ifunc-10-x86-64.s: Likewise.
* ld-ifunc/ifunc-11-i386.s: Likewise.
* ld-ifunc/ifunc-11-x86-64.s: Likewise.
* ld-ifunc/ifunc-12-i386.d: New.
* ld-ifunc/ifunc-12-i386.s: Likewise.
* ld-ifunc/ifunc-12-x86-64.d: Likewise.
* ld-ifunc/ifunc-12-x86-64.s: Likewise.
* ld-ifunc/ifunc-13-i386.d: Likewise.
* ld-ifunc/ifunc-13-x86-64.d: Likewise.
* ld-ifunc/ifunc-13a-i386.s: Likewise.
* ld-ifunc/ifunc-13a-x86-64.s: Likewise.
* ld-ifunc/ifunc-13b-i386.s: Likewise.
* ld-ifunc/ifunc-13b-x86-64.s: Likewise.
2011-01-06 18:45:05 +00:00
DJ Delorie
9689e3a3a7
* reloc.c: Add BFD_RELOC_RX_OP_NEG.
...
* libbfd.h: Regenerate.
* bfd-in2.h: Regenerate.
* elf32-rx.c: Add it to the list, corresponding to R_RX_OPneg.
* config/tc-rx.c (tc_gen_reloc): Emit an RX_OP_NEG expression
instead of an RH_NEG32 one.
2011-01-05 22:04:09 +00:00
H.J. Lu
889a4d3e74
Don't allow mixing x64_32 with x86_64.
...
bfd/
2011-01-03 H.J. Lu <hongjiu.lu@intel.com>
* cpu-i386.c (bfd_i386_compatible): New.
(bfd_x64_32_arch_intel_syntax): Replace bfd_default_compatible
with bfd_i386_compatible.
(bfd_x86_64_arch_intel_syntax): Likewise.
(bfd_i386_arch_intel_syntax): Likewise.
(i8086_arch): Likewise.
(bfd_x64_32_arch): Likewise.
(bfd_x86_64_arch): Likewise.
(bfd_i386_arch): Likewise.
ld/testsuite/
2011-01-03 H.J. Lu <hongjiu.lu@intel.com>
* ld-x86-64/dummy.s: New.
* ld-x86-64/foo.s: Likewise.
* ld-x86-64/ia32-1.d: Likewise.
* ld-x86-64/ia32-2.d: Likewise.
* ld-x86-64/ia32-3.d: Likewise.
* ld-x86-64/ilp32-1.d: Likewise.
* ld-x86-64/ilp32-2.d: Likewise.
* ld-x86-64/ilp32-3.d: Likewise.
* ld-x86-64/lp64-1.d: Likewise.
* ld-x86-64/lp64-2.d: Likewise.
* ld-x86-64/lp64-3.d: Likewise.
* ld-x86-64/start.s: Likewise.
* ld-x86-64/x86-64.exp: Run ilp32-1, ilp32-2, ilp32-3, ia32-1,
ia32-2, ia32-3, lp64-1, lp64-2 and lp64-3.
2011-01-03 18:16:46 +00:00
H.J. Lu
9e9e082043
Rotate binutils ChangeLogs.
2011-01-01 16:43:53 +00:00
Richard Sandiford
aeffff6722
bfd/
...
2010-12-23 Robert Millan <rmh@gnu.org>
* config.bfd: Recognize mips-freebsd and mips-kfreebsd-gnu.
* configure.host: Likewise.
* configure.in: Support for `bfd_elf32_ntradbigmips_freebsd_vec',
`bfd_elf32_ntradlittlemips_freebsd_vec',
`bfd_elf32_tradbigmips_freebsd_vec',
`bfd_elf32_tradlittlemips_freebsd_vec',
`bfd_elf64_tradbigmips_freebsd_vec' and
`bfd_elf64_tradlittlemips_freebsd_vec'.
* configure: Regenerate.
* elf32-mips.c: New target for FreeBSD support
(same as traditional MIPS but overrides ELF_OSABI
with ELFOSABI_FREEBSD).
* elf64-mips.c: Likewise.
* elfn32-mips.c: Likewise.
* targets.c (_bfd_target_vector): Add
`bfd_elf32_ntradbigmips_freebsd_vec',
`bfd_elf32_ntradlittlemips_freebsd_vec',
`bfd_elf32_tradbigmips_freebsd_vec',
`bfd_elf32_tradlittlemips_freebsd_vec',
`bfd_elf64_tradbigmips_freebsd_vec' and
`bfd_elf64_tradlittlemips_freebsd_vec'.
ld/
2010-12-14 Robert Millan <rmh@gnu.org>
* configure.tgt: Recognize mips-freebsd and mips-kfreebsd-gnu.
* emulparams/elf32btsmip_fbsd.sh: New file.
* emulparams/elf32btsmipn32_fbsd.sh: Likewise.
* emulparams/elf32ltsmip_fbsd.sh: Likewise.
* emulparams/elf32ltsmipn32_fbsd.sh: Likewise.
* emulparams/elf64btsmip_fbsd.sh: Likewise.
* emulparams/elf64ltsmip_fbsd.sh: Likewise.
* Makefile.am: Add build rules for `eelf32btsmip_fbsd.c',
`eelf32btsmipn32_fbsd.c', `eelf32ltsmip_fbsd.c',
`eelf32ltsmipn32_fbsd.c', `eelf64btsmip_fbsd.c' and
`eelf64ltsmip_fbsd.c'.
* Makefile.in: Regenerate.
gas/
2010-12-19 Robert Millan <rmh@gnu.org>
Richard Sandiford <rdsandiford@googlemail.com>
* config/tc-mips.c (ELF_TARGET): New macro. Generates target
names accordingly to whether TE_FreeBSD and whether TE_TMIPS
are defined.
(mips_target_format): Refactor code using ELF_TARGET().
(support_64bit_objects): Likewise.
* configure.in: Recognize mips-freebsd and mips-kfreebsd-gnu.
* configure.tgt: Likewise.
* configure: Regenerate.
binutils/testsuite/
* binutils-all/readelf.exp: Handle MIPS FreeBSD targets.
gas/testsuite/
* gas/mips/e32el-rel2.d: Accept any file format.
* gas/mips/elf-rel.d: Likewise.
* gas/mips/elf-rel2.d: Likewise.
* gas/mips/elf-rel3.d: Likewise.
* gas/mips/elfel-rel.d: Likewise.
* gas/mips/elfel-rel2.d: Likewise.
* gas/mips/elfel-rel3.d: Likewise.
* gas/mips/ldstla-32-mips3-shared.d: Likewise.
* gas/mips/ldstla-32-mips3.d: Likewise.
* gas/mips/ldstla-32-shared.d: Likewise.
* gas/mips/ldstla-32.d: Likewise.
* gas/mips/ldstla-n64-shared.d: Likewise.
* gas/mips/ldstla-n64.d: Likewise.
* gas/mips/noat-1.d: Likewise.
* gas/mips/set-arch.d: Likewise.
* gas/mips/tls-o32.d: Likewise.
ld/testsuite/
* ld-mips-elf/mips-elf-flags.exp: Handle FreeBSD targets.
* ld-mips-elf/mips-elf.exp: Likewise.
* ld-mips-elf/mips16-call-global.d: Accept any file format.
* ld-mips-elf/mips16-intermix.d: Likewise.
2010-12-31 11:01:00 +00:00
H.J. Lu
a836572f89
Move elfXX_r_info/elfXX_r_sym to elfcode.h.
...
2010-12-30 H.J. Lu <hongjiu.lu@intel.com>
* elfcode.h (NAME(elf,r_info)): New.
(NAME(elf,r_sym)): Likewise.
* elflink.c (elf64_r_info): Removed.
(elf32_r_info): Likewise.
(elf64_r_sym): Likewise.
(elf32_r_sym): Likewise.
2010-12-31 02:43:21 +00:00
H.J. Lu
c543bf9aab
Add elf_x86_64_relocs_compatible.
...
2010-12-30 H.J. Lu <hongjiu.lu@intel.com>
* elf64-x86-64.c (elf_x86_64_relocs_compatible): New.
(elf_backend_relocs_compatible): Defined to
elf_x86_64_relocs_compatible.
2010-12-31 00:34:59 +00:00
H.J. Lu
351f65ca26
Add x86-64 ILP32 support.
...
bfd/
2010-12-30 H.J. Lu <hongjiu.lu@intel.com>
* archures.c (bfd_mach_x64_32): New.
(bfd_mach_x64_32_intel_syntax): Likewise.
* bfd-in2.h: Regenerated.
* config.bfd (targ64_selvecs): Add bfd_elf32_x86_64_vec for
i[3-7]86-*-linux-*.
(targ_selvecs): Add bfd_elf32_x86_64_vec for x86_64-*-linux-*.
* configure.in: Support bfd_elf32_x86_64_vec.
* configure: Regenerated.
* cpu-i386.c (bfd_x64_32_arch_intel_syntax): New.
(bfd_x64_32_arch): Likewise.
* elf-bfd.h (elf_append_rela): New prototype.
(elf_append_rel): Likewise.
(elf64_r_info): Likewise.
(elf32_r_info): Likewise.
(elf64_r_sym): Likewise.
(elf32_r_sym): Likewise.
* elf64-x86-64.c (ABI_64_P): New.
(elf_x86_64_info_to_howto): Replace ELF64_R_TYPE with
ELF32_R_TYPE. Replace ELF64_ST_TYPE with ELF_ST_TYPE.
(elf_x86_64_check_tls_transition):Likewise.
(elf_x86_64_check_relocs): Likewise.
(elf_x86_64_gc_mark_hook):Likewise.
(elf_x86_64_gc_sweep_hook): Likewise.
(elf_x86_64_relocate_section): Likewise.
(elf_x86_64_reloc_type_class): Likewise.
(ELF_DYNAMIC_INTERPRETER): Renamed to ...
(ELF64_DYNAMIC_INTERPRETER): This.
(ELF32_DYNAMIC_INTERPRETER): New.
(elf_x86_64_link_hash_table): Add r_info, r_sym, swap_reloca_out,
dynamic_interpreter and dynamic_interpreter_size.
(elf_x86_64_get_local_sym_hash): Replace ELF64_R_SYM with
htab->r_sym. Replace ELF64_R_INFO with htab->r_info.
(elf_x86_64_get_local_sym_hash): Likewise.
(elf_x86_64_check_tls_transition):Likewise.
(elf_x86_64_check_relocs): Likewise.
(elf_x86_64_gc_mark_hook):Likewise.
(elf_x86_64_gc_sweep_hook): Likewise.
(elf_x86_64_relocate_section): Likewise.
(elf_x86_64_finish_dynamic_symbol): Likewise.
(elf_x86_64_finish_local_dynamic_symbol): Likewise.
(elf_x86_64_link_hash_table_create): Initialize r_info, r_sym,
swap_reloca_out, dynamic_interpreter and dynamic_interpreter_size.
(elf_x86_64_check_relocs): Check ABI_64_P when requesting for
PIC.
(elf_x86_64_relocate_section): Likewise.
(elf64_x86_64_adjust_dynamic_symbol): Replace sizeof
(Elf64_External_Rela) with bed->s->sizeof_rela.
(elf64_x86_64_allocate_dynrelocs): Likewise.
(elf64_x86_64_size_dynamic_sections): Likewise.
(elf64_x86_64_finish_dynamic_symbol): Likewise.
(elf64_x86_64_append_rela): Removed.
(elf32_x86_64_elf_object_p): New.
Add bfd_elf32_x86_64_vec.
* elf64-x86-64.c (elf64_x86_64_xxx): Renamed to ...
(elf_x86_64_xxx): This.
* elflink.c (bfd_elf_final_link): Check ELF file class on error.
(elf_append_rela): New.
(elf_append_rel): Likewise.
(elf64_r_info): Likewise.
(elf32_r_info): Likewise.
(elf64_r_sym): Likewise.
(elf32_r_sym): Likewise.
* targets.c (bfd_elf32_x86_64_vec): New.
(_bfd_target_vector): Add bfd_elf32_x86_64_vec.
gas/
2010-12-30 H.J. Lu <hongjiu.lu@intel.com>
* config/tc-i386.c (x86_elf_abi): New.
(i386_mach): Return bfd_mach_x64_32 for ILP32.
(OPTION_N32): Likewise.
(md_longopts): Add "n32" for ELF.
(md_parse_option): Handle OPTION_N32.
(md_show_usage): Add --n32.
(i386_target_format): Update and check x86_elf_abi.
* config/tc-i386.h (ELF_TARGET_FORMAT32): New.
* doc/as.texinfo: Document --n32.
* doc/c-i386.texi: Likewise.
gas/testsuite/
2010-12-30 H.J. Lu <hongjiu.lu@intel.com>
* gas/i386/ilp32/lns/ilp32.exp: New.
* gas/i386/ilp32/lns/lns-common-1.d: Likewise.
* gas/i386/ilp32/lns/lns-duplicate.d: Likewise.
* gas/i386/ilp32/cfi/cfi-common-1.d: New.
* gas/i386/ilp32/cfi/cfi-common-2.d: Likewise.
* gas/i386/ilp32/cfi/cfi-common-3.d: Likewise.
* gas/i386/ilp32/cfi/cfi-common-4.d: Likewise.
* gas/i386/ilp32/cfi/cfi-common-5.d: Likewise.
* gas/i386/ilp32/cfi/cfi-common-6.d: Likewise.
* gas/i386/ilp32/cfi/cfi-common-7.d: Likewise.
* gas/i386/ilp32/cfi/cfi-x86_64.d: Likewise.
* gas/i386/ilp32/cfi/ilp32.exp: Likewise.
* gas/i386/ilp32/elf/ehopt0.d: Likewise.
* gas/i386/ilp32/elf/equ-reloc.d: Likewise.
* gas/i386/ilp32/elf/file.d: Likewise.
* gas/i386/ilp32/elf/group0a.d: Likewise.
* gas/i386/ilp32/elf/group0b.d: Likewise.
* gas/i386/ilp32/elf/group1a.d: Likewise.
* gas/i386/ilp32/elf/group1b.d: Likewise.
* gas/i386/ilp32/elf/ifunc-1.d: Likewise.
* gas/i386/ilp32/elf/ilp32.exp: Likewise.
* gas/i386/ilp32/elf/redef.d: Likewise.
* gas/i386/ilp32/elf/section0.d: Likewise.
* gas/i386/ilp32/elf/section1.d: Likewise.
* gas/i386/ilp32/elf/section3.d: Likewise.
* gas/i386/ilp32/elf/section4.d: Likewise.
* gas/i386/ilp32/elf/section6.d: Likewise.
* gas/i386/ilp32/elf/section7.d: Likewise.
* gas/i386/ilp32/elf/struct.d: Likewise.
* gas/i386/ilp32/elf/symtab.d: Likewise.
* gas/i386/ilp32/elf/symver.d: Likewise.
* gas/i386/ilp32/ilp32.exp: New.
* gas/i386/ilp32/immed64.d: Likewise.
* gas/i386/ilp32/mixed-mode-reloc64.d: Likewise.
* gas/i386/ilp32/reloc64.d: Likewise.
* gas/i386/ilp32/rex.d: Likewise.
* gas/i386/ilp32/rexw.d: Likewise.
* gas/i386/ilp32/svme64.d: Likewise.
* gas/i386/ilp32/x86-64-addr32.d: Likewise.
* gas/i386/ilp32/x86-64-addr32-intel.d: Likewise.
* gas/i386/ilp32/x86-64-aes.d: Likewise.
* gas/i386/ilp32/x86-64-aes-intel.d: Likewise.
* gas/i386/ilp32/x86-64-amdfam10.d: Likewise.
* gas/i386/ilp32/x86-64-arch-1.d: Likewise.
* gas/i386/ilp32/x86-64-arch-2.d: Likewise.
* gas/i386/ilp32/x86-64-avx.d: Likewise.
* gas/i386/ilp32/x86-64-avx-intel.d: Likewise.
* gas/i386/ilp32/x86-64-avx-swap.d: Likewise.
* gas/i386/ilp32/x86-64-avx-swap-intel.d: Likewise.
* gas/i386/ilp32/x86-64-branch.d: Likewise.
* gas/i386/ilp32/x86-64-cbw.d: Likewise.
* gas/i386/ilp32/x86-64-cbw-intel.d: Likewise.
* gas/i386/ilp32/x86-64-clmul.d: Likewise.
* gas/i386/ilp32/x86-64-clmul-intel.d: Likewise.
* gas/i386/ilp32/x86-64-crc32.d: Likewise.
* gas/i386/ilp32/x86-64-crc32-intel.d: Likewise.
* gas/i386/ilp32/x86-64-crx.d: Likewise.
* gas/i386/ilp32/x86-64-crx-suffix.d: Likewise.
* gas/i386/ilp32/x86-64.d: Likewise.
* gas/i386/ilp32/x86-64-disp.d: Likewise.
* gas/i386/ilp32/x86-64-disp-intel.d: Likewise.
* gas/i386/ilp32/x86-64-drx.d: Likewise.
* gas/i386/ilp32/x86-64-drx-suffix.d: Likewise.
* gas/i386/ilp32/x86-64-ept.d: Likewise.
* gas/i386/ilp32/x86-64-ept-intel.d: Likewise.
* gas/i386/ilp32/x86-64-fma4.d: Likewise.
* gas/i386/ilp32/x86-64-fma.d: Likewise.
* gas/i386/ilp32/x86-64-fma-intel.d: Likewise.
* gas/i386/ilp32/x86-64-gidt.d: Likewise.
* gas/i386/ilp32/x86-64-ifunc.d: Likewise.
* gas/i386/ilp32/x86-64-intel64.d: Likewise.
* gas/i386/ilp32/x86-64-io.d: Likewise.
* gas/i386/ilp32/x86-64-io-intel.d: Likewise.
* gas/i386/ilp32/x86-64-io-suffix.d: Likewise.
* gas/i386/ilp32/x86-64-localpic.d: Likewise.
* gas/i386/ilp32/x86-64-mem.d: Likewise.
* gas/i386/ilp32/x86-64-mem-intel.d: Likewise.
* gas/i386/ilp32/x86-64-movbe.d: Likewise.
* gas/i386/ilp32/x86-64-movbe-intel.d: Likewise.
* gas/i386/ilp32/x86-64-nops-1-core2.d: Likewise.
* gas/i386/ilp32/x86-64-nops-1.d: Likewise.
* gas/i386/ilp32/x86-64-nops-1-k8.d: Likewise.
* gas/i386/ilp32/x86-64-nops-1-nocona.d: Likewise.
* gas/i386/ilp32/x86-64-nops-1-pentium.d: Likewise.
* gas/i386/ilp32/x86-64-nops-2.d: Likewise.
* gas/i386/ilp32/x86-64-nops-3.d: Likewise.
* gas/i386/ilp32/x86-64-nops-4-core2.d: Likewise.
* gas/i386/ilp32/x86-64-nops-4.d: Likewise.
* gas/i386/ilp32/x86-64-nops-4-k8.d: Likewise.
* gas/i386/ilp32/x86-64-nops-5.d: Likewise.
* gas/i386/ilp32/x86-64-nops-5-k8.d: Likewise.
* gas/i386/ilp32/x86-64-nops.d: Likewise.
* gas/i386/ilp32/x86-64-opcode.d: Likewise.
* gas/i386/ilp32/x86-64-opcode-inval.d: Likewise.
* gas/i386/ilp32/x86-64-opcode-inval-intel.d: Likewise.
* gas/i386/ilp32/x86-64-opts.d: Likewise.
* gas/i386/ilp32/x86-64-opts-intel.d: Likewise.
* gas/i386/ilp32/x86-64-pcrel.d: Likewise.
* gas/i386/ilp32/x86-64-reg.d: Likewise.
* gas/i386/ilp32/x86-64-reg-intel.d: Likewise.
* gas/i386/ilp32/x86-64-rep.d: Likewise.
* gas/i386/ilp32/x86-64-rep-suffix.d: Likewise.
* gas/i386/ilp32/x86-64-rip.d: Likewise.
* gas/i386/ilp32/x86-64-rip-intel.d: Likewise.
* gas/i386/ilp32/x86-64-sib.d: Likewise.
* gas/i386/ilp32/x86-64-sib-intel.d: Likewise.
* gas/i386/ilp32/x86-64-simd.d: Likewise.
* gas/i386/ilp32/x86-64-simd-intel.d: Likewise.
* gas/i386/ilp32/x86-64-simd-suffix.d: Likewise.
* gas/i386/ilp32/x86-64-sse2avx.d: Likewise.
* gas/i386/ilp32/x86-64-sse2avx-opts.d: Likewise.
* gas/i386/ilp32/x86-64-sse2avx-opts-intel.d: Likewise.
* gas/i386/ilp32/x86-64-sse3.d: Likewise.
* gas/i386/ilp32/x86-64-sse4_1.d: Likewise.
* gas/i386/ilp32/x86-64-sse4_1-intel.d: Likewise.
* gas/i386/ilp32/x86-64-sse4_2.d: Likewise.
* gas/i386/ilp32/x86-64-sse4_2-intel.d: Likewise.
* gas/i386/ilp32/x86-64-sse-check.d: Likewise.
* gas/i386/ilp32/x86-64-sse-check-none.d: Likewise.
* gas/i386/ilp32/x86-64-sse-check-warn.d: Likewise.
* gas/i386/ilp32/x86-64-sse-noavx.d: Likewise.
* gas/i386/ilp32/x86-64-ssse3.d: Likewise.
* gas/i386/ilp32/x86-64-stack.d: Likewise.
* gas/i386/ilp32/x86-64-stack-intel.d: Likewise.
* gas/i386/ilp32/x86-64-stack-suffix.d: Likewise.
* gas/i386/ilp32/x86-64-unwind.d: Likewise.
* gas/i386/ilp32/x86-64-vmx.d: Likewise.
* gas/i386/ilp32/x86-64-xsave.d: Likewise.
* gas/i386/ilp32/x86-64-xsave-intel.d: Likewise.
ld/
2010-12-30 H.J. Lu <hongjiu.lu@intel.com>
* emulparams/elf32_x86_64.sh: New.
* configure.tgt (targ64_extra_emuls): Add elf32_x86_64 for
i[3-7]86-*-linux-*.
(targ_extra_libpath): Likewise.
(targ_extra_emuls): Add elf32_x86_64 for x86_64-*-linux-*.
(targ_extra_libpath): Likewise.
* Makefile.am (ALL_64_EMULATION_SOURCES): Add eelf32_x86_64.c.
(eelf32_x86_64.c): New.
* Makefile.in: Regenerated.
opcodes/
2010-12-30 H.J. Lu <hongjiu.lu@intel.com>
* i386-dis.c (print_insn): Support bfd_mach_x64_32 and
bfd_mach_x64_32_intel_syntax.
2010-12-31 00:33:36 +00:00
Alan Modra
82c6068aa4
* compress.c (decompress_contents): Style.
...
(bfd_get_full_section_contents): Do not decompress directly into
caller buffer or directly return cached section contents.
Check malloc return for compressed_buffer.
2010-12-24 10:40:19 +00:00
Kai Tietz
c91a930cb7
2010-12-21 Kai Tietz <kai.tietz@onevision.com>
...
* peXXigen.c (_bfd_XXi_final_link_postscript): Use
bfd_get_symbol_leading_char to determine "_tls_used" name.
2010-12-21 Kai Tietz <kai.tietz@onevision.com>
* ld-pe/pe.exp: Add TLS directory test.
* ld-pe/tlssec.s: New.
* ld-pe/tlssec64.d: New.
* ld-pe/tlssec32.d: New.
2010-12-21 15:24:39 +00:00
Pierre Muller
bc2b29908f
* peXXigen.c (_bfd_XXi_final_link_postscript): Use correct size
...
for windows 64-bit TLS table size.
2010-12-21 08:41:16 +00:00
DJ Delorie
e8ef21bff5
* reloc.c (BFD_RELOC_RX_ABS16_REV): Add.
...
(BFD_RELOC_RX_ABS32_REV): Add.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
* elf32-rx.c (rx_reloc_map): Add them.
* config/tc-rx.c (rx_validate_fix_sub): Permit subtraction in more
cases.
(tc_gen_reloc): Fix handling of subtraction (esp wrt endianness).
2010-12-17 04:17:00 +00:00
H.J. Lu
02ecc8e968
Add SORT_BY_INIT_PRIORITY.
...
bfd/
2010-12-15 H.J. Lu <hongjiu.lu@intel.com>
* elf.c (_bfd_elf_new_section_hook): Special handling for
.init_array/.fini_array output sections.
ld/
2010-12-15 H.J. Lu <hongjiu.lu@intel.com>
* Makefile.am (GENSCRIPTS): Add @enable_initfini_array@.
* NEWS: Mention SORT_BY_INIT_PRIORITY.
* configure.in: Add AC_CANONICAL_BUILD.
Add --enable-initfini-array.
* genscripts.sh (ENABLE_INITFINI_ARRAY): New.
* ld.h (sort_type): Add by_init_priority.
* ld.texinfo: Document SORT_BY_INIT_PRIORITY.
* ldgram.y (SORT_BY_INIT_PRIORITY): New.
(wildcard_spec): Handle SORT_BY_INIT_PRIORITY.
* ldlang.c (get_init_priority): New.
(compare_section): Use get_init_priority for by_init_priority.
* ldlex.l (SORT_BY_INIT_PRIORITY): New.
* scripttempl/elf.sc: Support ENABLE_INITFINI_ARRAY.
* Makefile.in: Regenerated.
* aclocal.m4: Regenerated.
* config.in: Likewise.
* configure: Likewise.
ld/testsuite/
2010-12-15 H.J. Lu <hongjiu.lu@intel.com>
* ld-elf/elf.exp (array_tests): Add init-mixed.
(array_tests_static): Likewise.
Also delete tmpdir/init-mixed.
* ld-elf/init-mixed.c: New.
* ld-elf/init-mixed.out: Likewise.
2010-12-15 14:56:40 +00:00
Alan Modra
0e144ba71e
* aoutx.h (aout_link_check_ar_symbols): Formatting.
...
* cofflink.c (coff_link_check_ar_symbols): Likewise.
* elflink.c (elf_link_add_archive_symbols): Likewise.
* pdp11.c (aout_link_check_ar_symbols): Likewise.
* xcofflink.c (xcoff_link_check_dynamic_ar_symbols,
xcoff_link_check_dynamic_ar_symbols): Likewise.
* aoutx.h (aout_link_check_archive_element): Simplify code dealing
with add_archive_element substitute BFD.
* cofflink.c (coff_link_check_archive_element): Likewise.
* ecoff.c (ecoff_link_check_archive_element): Likewise.
(ecoff_link_add_archive_symbols): Likewise.
* linker.c (generic_link_check_archive_element): Likewise.
* pdp11.c (aout_link_check_archive_element): Likewise.
* vms-alpha.c (alpha_vms_link_add_archive_symbols): Likewise.
* xcofflink.c (xcoff_link_check_archive_element): Likewise.
* aoutx.h (aout_link_check_archive_element): Free symbols from old
bfd if !keep_memory.
* cofflink.c (coff_link_check_archive_element): Likewise.
* pdp11.c (aout_link_check_archive_element): Likewise.
* xcofflink.c (xcoff_link_check_archive_element): Likewise.
2010-12-13 01:06:16 +00:00
Alan Modra
4846b70aa0
* plugin.c (bfd_plugin_mkobject): Delete.
...
(plugin_vec): Use bfd_false instead.
2010-12-12 23:50:47 +00:00
H.J. Lu
db0ca79ff4
Optimize for add_archive_element.
...
bfd/
2010-12-12 H.J. Lu <hongjiu.lu@intel.com>
* elflink.c (elf_link_add_archive_symbols): Remove subsbfd.
ld/
2010-12-12 H.J. Lu <hongjiu.lu@intel.com>
* ldlang.c (load_symbols): Optimize for add_archive_element.
2010-12-12 14:52:27 +00:00
H.J. Lu
68efed4197
Mark .gnu.lto_* sections with SHF_EXCLUDE.
...
bfd/
2010-12-12 H.J. Lu <hongjiu.lu@intel.com>
* elf.c (special_sections_g): Add ".gnu.lto_".
gas/testsuite/
2010-12-12 H.J. Lu <hongjiu.lu@intel.com>
* gas/elf/elf.exp: Run section9.
* gas/elf/section9.d: New.
* gas/elf/section9.s: Likewise.
2010-12-12 14:49:25 +00:00
Alan Modra
9a9e2ca332
* config.bfd: Configure rs6000-*-aix* as for powerpc-*-aix*.
...
Add aix5coff64_vec to powerpc ELF entries.
2010-12-10 01:03:13 +00:00
Mike Frysinger
8b9a522f57
bfd/binutils/gas/gprof/ld/libiberty/opcodes: add .gitignore
...
This seems to cover a few random targets as well as --enable-targets=all.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-12-09 09:03:18 +00:00
H.J. Lu
d9b2146348
Use putchar for the trailing `\n' in plugin message.
...
bfd/
2010-12-06 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
PR ld/12288
* plugin.c (message): Add putchar for the trailing `\n'.
ld/
2010-12-06 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
PR ld/12288
* plugin.c (message): Use putchar for the trailing `\n'.
2010-12-06 20:25:49 +00:00
Mike Frysinger
200c83b8a9
bfd: install plugin-api.h as needed
...
Since people need plugin-api.h in order to build linker plugins, install
the header with the other library headers when plugin support is enabled.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-12-04 13:00:35 +00:00
Alan Modra
17d078c589
PR ld/12277
...
* elflink.c (elf_link_output_extsym): Set bfd_error on symbol
and section errors. Allow better translation of error messages.
2010-12-04 04:42:06 +00:00
Richard Sandiford
362d30a1c8
bfd/
...
* elf32-arm.c (elf32_arm_link_hash_table): Remove sgot, sgotplt,
srelgot, splt, srelplt.
(create_got_section, elf32_arm_link_hash_table_create): Don't set them.
(elf32_arm_create_dynamic_sections): Likewise. Use htab->root
fields instead.
(arm_type_of_stub): Use the root fields instead of the removed ones.
(cortex_a8_erratum_scan, elf32_arm_size_stubs): Likewise.
(bfd_elf32_arm_process_before_allocation): Likewise.
(elf32_arm_check_relocs, allocate_dynrelocs): Likewise.
(elf32_arm_size_dynamic_sections): Likewise.
(elf32_arm_output_arch_local_syms): Likewise.
(elf32_arm_final_link_relocate): Set sgot, splt and srelgot from the
htab fields instead of looking them up by name. Consistently use
these local variables instead of htab fields.
(elf32_arm_finish_dynamic_symbol): Likewise sgot, splt and srel.
Use srelbss instead of looking it up by name.
(elf32_arm_finish_dynamic_sections): Use sgotplt, splt and srelplt
instead of looking up the symbols by name. Use the root fields
instead of the removed ones.
2010-12-02 13:28:35 +00:00
Richard Sandiford
0bdcacaf71
bfd/
...
* elf32-arm.c (elf32_arm_relocs_copied): Delete.
(elf32_arm_link_hash_entry): Replace relocs_copied with dyn_relocs.
(elf32_arm_link_hash_newfunc): Update accordingly.
(elf32_arm_copy_indirect_symbol, elf32_arm_gc_sweep_hook): Likewise.
(elf32_arm_check_relocs, allocate_dynrelocs): Likewise.
(elf32_arm_readonly_dynrelocs): Likewise.
(elf32_arm_size_dynamic_sections): Likewise.
2010-12-02 13:27:21 +00:00
Paul Koning
0c98115d15
* pdp11.c (aout_link_add_symbols): Ignore debug symbols.
2010-12-02 11:53:07 +00:00
Alan Modra
9203b09a4b
Add sparc64-rtems.
2010-11-30 01:14:08 +00:00
Alan Modra
1de34e0afe
Update translations
2010-11-25 06:08:52 +00:00
Joel Brobecker
c09a7c7e90
Add rs6000-core.c/.o to the list of optional backend files...
...
This makes sure that rs6000-core.c gets recompiled whenever any of its
dependencies get changed.
bfd/ChangeLog:
* Makefile.am (OPTIONAL_BACKENDS): Add rs6000-core.lo.
(OPTIONAL_BACKENDS_CFILES): Add rs6000-core.c.
* Makefile.in: Regenerate.
2010-11-25 01:06:30 +00:00
Alan Modra
cd9e734e3f
PR ld/12253
...
* elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Correct
DW_EH_PE_datarel handling. Truncate .eh_frame_hdr address to
ptr_size.
2010-11-23 23:30:04 +00:00
Nick Clifton
d051516a87
* mips.h (INSN_CHIP_MASK): Update according to INSN_LOONGSON_3A.
...
(INSN_LOONGSON_3A): Clear bit 31.
* elfxx-mips.c (mips_set_isa_flags): Move bfd_mach_loongson_3a
after bfd_mach_mips_sb1.
* config/tc-mips.c (mips_cpu_info_table): Move loongson3a after sb1.
2010-11-23 17:04:13 +00:00
Tristan Gingold
5c32d34406
2010-11-17 Tristan Gingold <gingold@adacore.com>
...
* vms-lib.c (vms_write_index): Add comments.
Partially revert previous patch. Free blocks later.
2010-11-17 11:32:53 +00:00
Nick Clifton
79520e0d2d
PR ld/12161
...
* elf32-avr.c (elf32_avr_check_relocs): Delete.
(elf_backend_check_relocs): Delete.
2010-11-17 10:56:42 +00:00
Mike Frysinger
781303cee5
blackfin: add support for L1 code/data flags
...
Add new linker options for marking programs to load into L1 memory
at runtime. This needs new EF flag bits, so declare them.
Signed-off-by: Jie Zhang <jie.zhang@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-11-15 22:30:47 +00:00
Mike Frysinger
6936240e66
bfd: bfin: drop needless symbol flag handling imported from FRV
...
The Blackfin bfd merged some FRV code recently, and then removed pieces
that didn't make sense. In the FRV code, it outputs a "_gp" symbol in
its BFD whereas in the Blackfin code, we don't. So while on the FRV
side it fiddles with the "flags" variable (sometimes using it for section
flags and sometimes using it for symbol flags), we don't need any of
that. This lead to BZ 12177 where the Blackfin code is a bit confusing.
So to fix things up, remove more stuff we don't need. Shouldn't change
the behavior at all.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-11-15 08:34:00 +00:00
H.J. Lu
e326bf5f36
Properly copy BFD_COMPRESS and BFD_DECOMPRESS to archive element.
...
2010-11-12 H.J. Lu <hongjiu.lu@intel.com>
* archive.c (_bfd_get_elt_at_filepos): Copy BFD_COMPRESS and
BFD_DECOMPRESS.
(bfd_openr_next_archived_file): Revert the last change.
2010-11-12 22:10:18 +00:00
Nick Clifton
fd50354116
bfd/
...
* archures.c (bfd_mach_mips_loongson_3a): Defined.
* bfd-in2.h (bfd_mach_mips_loongson_3a): Defined.
* cpu-mips.c (I_loongson_3a): New add.
(arch_info_struct): Add loongson_3a.
* elfxx-mips.c (_bfd_elf_mips_mach): Add loongson_3a.
(mips_set_isa_flags): Add loongson_3a.
(mips_mach_extensions): Add loongson_3a in MIPS64 extensions.
binutils/
* readelf.c (get_machine_flags): Add loongson-3a.
gas/
* config/tc-mips.c (mips_cpu_info_table): Add loongson3a in MIPS 64.
* doc/c-mips.texi (MIPS cpu): Add loongson3a.
include/
* elf/mips.h (E_MIPS_MACH_LS3A): Defined.
* opcode/mips.h (INSN_LOONGSON_3A): Defined.
(CPU_LOONGSON_3A): Defined.
(OPCODE_IS_MEMBER): Add LOONGSON_3A.
opcodes/
* mips-dis.c (mips_arch_choices): Add loongson3a.
* mips-opc.c (IL3A): Defined as INSN_LOONGSON_3A.
(mips_builtin_opcodes): Modify some instructions' membership from
IL2F to IL2F|IL3A, since these instructions are supported by Loongson_3A.
2010-11-11 10:23:39 +00:00
Richard Sandiford
51020d214b
bfd/
...
* elf32-arm.c (elf32_arm_merge_eabi_attributes): Remove unused
variables.
2010-11-10 14:54:30 +00:00
Nick Clifton
8e295ce05a
Updated translations.
2010-11-10 14:39:10 +00:00