2f340668a9
As defined at AArch64 ELF Specification (4.6.7 Call and Jump relocations), symbol with type of non STT_FUNC but in different input section with relocation place should insert long branch veneer also. Meanwhile the current long branch veneer infrastructure havn't considered the situation where the branch destination is "sym_value + rela->addend". This was OK because we only insert veneer for long call destination is STT_FUNC symbol for which the addend is always zero. But as we relax the support to other situations by this patch, we need to handle addend be non-zero value. For example, for static function, relocation against "local symbol" are turned into relocation against "section symbol + offset" where there is a valid addend. bfd/ * elfnn-aarch64.c (aarch64_type_of_stub): Allow insert long branch veneer for sym_sec != input_sec. (elfNN_aarch64_size_stub): Support STT_SECTION symbol. (elfNN_aarch64_final_link_relocate): Take rela addend into account when calculation destination. ld/ * testsuite/ld-aarch64/farcall-section.d: Delete. * testsuite/ld-aarch64/farcall-section.s: Delete. * testsuite/ld-aarch64/farcall-b-section.d: New expectation file. * testsuite/ld-aarch64/farcall-bl-section.d: Likewise. * testsuite/ld-aarch64/farcall-b-section.s: New testcase. * testsuite/ld-aarch64/farcall-bl-section.s: Likewise. * testsuite/ld-aarch64/aarch64-elf.exp: Likewise.
178 lines
6.2 KiB
Text
178 lines
6.2 KiB
Text
2016-01-21 Jiong Wang <jiong.wang@arm.com>
|
||
|
||
* elfnn-aarch64.c (aarch64_type_of_stub): Allow insert long branch
|
||
veneer for sym_sec != input_sec.
|
||
(elfNN_aarch64_size_stub): Support STT_SECTION symbol.
|
||
(elfNN_aarch64_final_link_relocate): Take rela addend into account when
|
||
calculation destination.
|
||
|
||
2016-01-21 Alan Modra <amodra@gmail.com>
|
||
|
||
* elf-linux-core.h (swap_linux_prpsinfo32_out): New function.
|
||
(swap_linux_prpsinfo64_out): New function.
|
||
(LINUX_PRPSINFO32_SWAP_FIELDS): Delete.
|
||
(LINUX_PRPSINFO64_SWAP_FIELDS): Delete.
|
||
* elf.c (elfcore_write_linux_prpsinfo32): Adjust. Don't memset.
|
||
(elfcore_write_linux_prpsinfo64): Likewise.
|
||
* elf32-ppc.c (swap_ppc_linux_prpsinfo32_out): New function.
|
||
(PPC_LINUX_PRPSINFO32_SWAP_FIELDS): Delete.
|
||
(elfcore_write_ppc_linux_prpsinfo32): Adjust. Don't memset.
|
||
|
||
2016-01-21 Alan Modra <amodra@gmail.com>
|
||
|
||
* elf-linux-core.h: Rename from elf-linux-psinfo.h.
|
||
* elf.c: Adjust #include.
|
||
* elf32-ppc.c: Don't #include elf-linux-psinfo.h
|
||
* Makefile.am (SOURCE_HFILES): Update.
|
||
* Makefile.in: Regenerate.
|
||
* po/SRC-PORFILES.in: Regenerate.
|
||
|
||
2016-01-21 Alan Modra <amodra@gmail.com>
|
||
|
||
* configure.ac: Move corefile selection later in file. Move
|
||
tdefaults code immediately after other target vector code.
|
||
* configure: Regenerate.
|
||
|
||
2016-01-20 Mickael Guene <mickael.guene@st.com>
|
||
|
||
* elf32-arm.c (elf32_arm_special_sections): Remove catch of noread
|
||
section using '.text.noread' pattern.
|
||
|
||
2016-01-19 John Baldwin <jhb@FreeBSD.org>
|
||
|
||
* elf.c (elfcore_grok_note): Recognize NT_FREEBSD_THRMISC notes.
|
||
|
||
2016-01-18 Miranda Cupertino <Cupertino.Miranda@synopsys.com>
|
||
Zissulescu Claudiu <Claudiu.Zissulescu@synopsys.com>
|
||
|
||
* arc-plt.def: New file.
|
||
* arc-plt.h: Likewise.
|
||
* elf32-arc.c (elf_arc_abs_plt0_entry, elf_arc_abs_pltn_entry,
|
||
elf_arcV2_abs_plt0_entry, elf_arcV2_abs_pltn_entry,
|
||
elf_arc_pic_plt0_entry, elf_arc_pic_pltn_entry,
|
||
elf_arcV2_pic_plt0_entry, elf_arcV2_pic_pltn_entry): Remove.
|
||
(name_for_global_symbol): Added.
|
||
(ADD_RELA): Helper to create dynamic relocs.
|
||
(new_got_entry_to_list): Create a new got entry in linked list.
|
||
(symbol_has_entry_of_type): Search for specific type of entry in
|
||
list.
|
||
(is_reloc_for_GOT): return FALSE for any TLS related relocs.
|
||
(is_reloc_for_TLS, arc_elf_set_private_flags)
|
||
(arc_elf_print_private_bfd_data, arc_elf_copy_private_bfd_data)
|
||
(arc_elf_merge_private_bfd_data): New functions.
|
||
(debug_arc_reloc): Cleaned debug info printing.
|
||
(PDATA reloc): Changed not to perform address alignment.
|
||
(reverse_me): Added. Fix for ARC_32 relocs.
|
||
(arc_do_relocation): Return bfd_reloc_of when no relocation should
|
||
occur.
|
||
(arc_get_local_got_ents): Renamed from arc_get_local_got_offsets.
|
||
Changed function to access an array of list of GOT entries instead
|
||
of just an array of offsets.
|
||
(elf_arc_relocate_section): Added support for PIC and TLS related relocations.
|
||
(elf_arc_check_relocs): Likewise.
|
||
(elf_arc_adjust_dynamic_symbol, elf_arc_finish_dynamic_symbol,
|
||
(elf_arc_finish_dynamic_sections): Likewise
|
||
(arc_create_dynamic_sections): Modified conditions to create
|
||
dynamic sections.
|
||
(ADD_SYMBOL_REF_SEC_AND_RELOC): New macro.
|
||
(plt_do_relocs_for_symbol, relocate_plt_for_symbol)
|
||
(relocate_plt_for_entry): Changed to support new way to define PLT
|
||
related code.
|
||
(add_symbol_to_plt): Likewise.
|
||
(arc_elf_link_hash_table_create): New function.
|
||
|
||
2016-01-18 Nick Clifton <nickc@redhat.com>
|
||
|
||
PR ld/19440
|
||
* coff-rs6000.c (_bfd_xcoff_swap_sym_in): Sign extend external
|
||
section number into internal section number.
|
||
* coff64-rs6000.c (_bfd_xcoff64_swap_sym_in): Likewise.
|
||
* coffswap.h (coff_swap_sym_in): Likewise.
|
||
* peXXigen.c (_bfd_XXi_swap_sym_in): Likewise.
|
||
* coffcode.h (_coff_bigobj_swap_sym_in): Make sure that internal
|
||
section number field is big enough to hold the external value.
|
||
|
||
2016-01-17 Alan Modra <amodra@gmail.com>
|
||
|
||
* configure: Regenerate.
|
||
|
||
2016-01-12 Yury Usishchev <y.usishchev@samsung.com>
|
||
|
||
* elf32-arm.c (elf32_arm_fix_exidx_coverage): Insert cantunwind
|
||
when address in first unwind entry does not match start of
|
||
section.
|
||
|
||
2016-01-08 Richard Sandiford <richard.sandiford@arm.com>
|
||
Jiong Wang <jiong.wang@arm.com>
|
||
|
||
PR ld/19368
|
||
* elf32-arm.c (elf32_arm_reloc_type_class): Map R_ARM_IRELATIVE to
|
||
reloc_class_ifunc.
|
||
|
||
2016-01-06 Andrew Burgess <andrew.burgess@embecosm.com>
|
||
|
||
* elf32-arc.c (reloc_type_to_name): Change ARC_RELOC_HOWTO to
|
||
place 'R_' before the reloc name returned.
|
||
(elf_arc_howto_table): Change ARC_RELOC_HOWTO to place 'R_' before
|
||
the relocation string.
|
||
|
||
2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
|
||
|
||
* elfxx-mips.c (mips_elf_merge_obj_abiflags): New function,
|
||
factored out from...
|
||
(_bfd_mips_elf_merge_private_bfd_data): ... here.
|
||
|
||
2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
|
||
|
||
* elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Move
|
||
attribute check after ELF file header flag check.
|
||
|
||
2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
|
||
|
||
* elfxx-mips.c (mips_elf_merge_obj_attributes): Propagate the
|
||
return status from `_bfd_elf_merge_object_attributes'.
|
||
|
||
2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
|
||
|
||
* elfxx-mips.c (mips_elf_merge_obj_e_flags): New function,
|
||
factored out from...
|
||
(_bfd_mips_elf_merge_private_bfd_data): ... here.
|
||
|
||
2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
|
||
|
||
* elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Fold the
|
||
handling of input MIPS ABI flags together.
|
||
|
||
2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
|
||
|
||
* elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Suppress
|
||
attribute checks for null input.
|
||
|
||
2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
|
||
|
||
* elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Use local
|
||
pointers to target data.
|
||
|
||
2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
|
||
|
||
* elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Correct
|
||
an FP ABI warning.
|
||
|
||
2016-01-01 Alan Modra <amodra@gmail.com>
|
||
|
||
Update year range in copyright notice of all files.
|
||
|
||
For older changes see ChangeLog-2015 and doc/ChangeLog-0415
|
||
|
||
Copyright (C) 2016 Free Software Foundation, Inc.
|
||
|
||
Copying and distribution of this file, with or without modification,
|
||
are permitted in any medium without royalty provided the copyright
|
||
notice and this notice are preserved.
|
||
|
||
Local Variables:
|
||
mode: change-log
|
||
left-margin: 8
|
||
fill-column: 74
|
||
version-control: never
|
||
End:
|