summaryrefslogtreecommitdiff
path: root/bfd
AgeCommit message (Collapse)Author
2016-01-26Automatic date update in version.inGDB Administrator
2016-01-25ARC/BFD: Fix a build error from `index' shadowing a global declarationMaciej W. Rozycki
bfd/ * elf32-arc.c (elf_arc_finish_dynamic_symbol): Rename `index' to `dynindx'.
2016-01-25Add missing end-of-comment marker to previous delta. (Doh!)Nick Clifton
2016-01-25Fix memory corruption on Mach-O systems by suppressing a memory tidy up.Nick Clifton
PR target/19435 * mach-o.c (bfd_mach_o_close_and_cleanup): Suppress code to free dsym filename buffer.
2016-01-25Automatic date update in version.inGDB Administrator
2016-01-24MIPS/BFD: Simplify register index calculation in BZ16_REG_FIELDMaciej W. Rozycki
Just mask higher bits off, which returns the same set of 3-bit register encodings of { 0, 1, 2, 3, 4, 5, 6, 7 } for the allowed 5-bit encodings of { 16, 17, 2, 3, 4, 5, 6, 7 }. Input has already been validated with OP16_VALID_REG. bfd/ * elfxx-mips.c (BZ16_REG_FIELD): Simplify calculation.
2016-01-24MIPS/BFD: Correct register index calculation in BZ16_REGMaciej W. Rozycki
For the 3-bit register encodings of { 0, 1, 2, 3, 4, 5, 6, 7 } return the 5-bit encodings of { 16, 17, 2, 3, 4, 5, 6, 7 } respectively rather than { 24, 25, 2, 3, 4, 5, 6, 7 }. bfd/ * elfxx-mips.c (BZ16_REG): Correct calculation.
2016-01-24Automatic date update in version.inGDB Administrator
2016-01-23Automatic date update in version.inGDB Administrator
2016-01-22Automatic date update in version.inGDB Administrator
2016-01-21Fix compile time errors building ARC target on a 32-bit host.Nick Clifton
* elf32-arc.c (ADD_RELA): Fix compile time warning errors by changing the type of _loc to be bfd_byte *. (elf_arc_finish_dynamic_symbol): Likewise.
2016-01-21Fix unexpected failures in the linker testsuite for ARM VxWorks targets.Nick Clifton
PR ld/19455 * elf32-arm.c (elf32_arm_create_dynamic_sections): Set the ELF class of the linker stub bfd. (elf32_arm_check_relocs): Skip check for pic format after processing a vxWorks R_ARM_ABS12 reloc. * elflink.c (bfd_elf_final_link): Check for ELFCLASSNONE when reporting a class mismatch. * testsuite/ld-arm/vxworks1-lib.dd: Update for current disassmebler output. * testsuite/ld-arm/vxworks1-lib.rd: Likewise. * testsuite/ld-arm/vxworks1.dd: Likewise. * testsuite/ld-arm/vxworks1.rd: Likewise. * testsuite/ld-arm/vxworks1.ld: Set the output format.
2016-01-21[AArch64] Relax long branch veneer insertion for non STT_FUNC symbolJiong Wang
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.
2016-01-21Convert macros in elf-linux-core.h to inline functionsAlan Modra
Besides changing some macros into inline functions, this removes redundant memsets and uses bfd_put_* rather than H_PUT_*. * 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-21Rename elf-linux-psinfo.h to elf-linux-core.hAlan Modra
Since it will sometime have more than just prpsinfo. Also, elf32-ppc.c needlessly includes this header. * 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-21bfd/configure reorganisationAlan Modra
Corefile code should be moved after running config.bfd, because it uses want64. * configure.ac: Move corefile selection later in file. Move tdefaults code immediately after other target vector code. * configure: Regenerate.
2016-01-21Automatic date update in version.inGDB Administrator
2016-01-20Add support for an ARM specific 'y' section attribute flag to mark the ↵Mickael Guene
section as NOREAD. bfd/ChangeLog: * elf32-arm.c ((elf32_arm_special_sections): Remove catch of noread section using '.text.noread' pattern. gas/ChangeLog: * config/obj-elf.c (obj_elf_change_section) : Allow arm section with SHF_ARM_NOREAD section flag. * config/tc-arm.h (md_elf_section_letter) : Implement this hook to handle letter 'y'. (arm_elf_section_letter) : Declare it. * config/tc-arm.c (arm_elf_section_letter): Handle letter 'y' to set SHF_ARM_NOREAD section flag. * doc/c-arm.texi (ARM section attribute 'y'): Document it. gas/testsuite/ChangeLog: * gas/arm/section-execute-only.s: New test case. * gas/arm/section-execute-only.d: Expected output. ld/testsuite/ChangeLog: * ld-arm/thumb1-noread-not-present-mixing-two-section.s: Add 'y' attribute usage. * ld-arm/thumb1-noread-present-one-section.s: Likewise. * ld-arm/thumb1-noread-present-two-section.s: Likewise. * ld-arm/thumb1-input-section-flag-match.s: Likewise. binutils/ChangeLog: * readelf.c (get_elf_section_flags): Display y letter for section with SHF_ARM_NOREAD section flag in readelf section output. (process_section_headers): Add y letter in readelf section output key mapping for ARM architecture.
2016-01-20Automatic date update in version.inGDB Administrator
2016-01-19Add a pseudosection for the NT_FREEBSD_THRMISC note.John Baldwin
bfd/ChangeLog: * elf.c (elfcore_grok_note): Recognize NT_FREEBSD_THRMISC notes.
2016-01-19Add PIC and TLS support to the ARC target.Miranda Cupertino
bfd/ChangeLog: * 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. include/ChangeLog: * elf/arc-reloc.def (ARC_32, ARC_GOTPC, ARC_TLS_GD_GOT) (ARC_TLS_IE_GOT, ARC_TLS_DTPOFF, ARC_TLS_DTPOFF_S9, ARC_TLS_LE_S9) (ARC_TLS_LE_32): Fixed formula. (ARC_TLS_GD_LD): Use new special function. * opcode/arc-func.h: Changed all the replacement functions to clear the patching bits before doing an or it with the value argument.
2016-01-19Automatic date update in version.inGDB Administrator
2016-01-18Use a 32-bit value to hold the section number in the internal COFF symbol ↵Nick Clifton
structure. PR ld/19440 inc * coff/internal.h (internal_syment): Use int to hold section number. (N_UNDEF): Cast to int not short. (N_ABS): Likewise. (N_DEBUG): Likewise. (N_TV): Likewise. (P_TV): Likewise. bfd 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-18Automatic date update in version.inGDB Administrator
2016-01-17Regen configureAlan Modra
Picks up 2016-01-12 libtool.m4 change. bfd/ * configure: Regenerate. binutils/ * configure: Regenerate. gas/ * configure: Regenerate. gprof/ * configure: Regenerate. ld/ * configure: Regenerate. opcodes/ * configure: Regenerate.
2016-01-17Automatic date update in version.inGDB Administrator
2016-01-16Automatic date update in version.inGDB Administrator
2016-01-15Automatic date update in version.inGDB Administrator
2016-01-14Automatic date update in version.inGDB Administrator
2016-01-13Automatic date update in version.inGDB Administrator
2016-01-12Add cantunwind when unwind info does not match start of section.Yury Usishchev
bfd * elf32-arm.c (elf32_arm_fix_exidx_coverage): Insert cantunwind when address in first unwind entry does not match start of section. tests * ld-arm/arm-elf.exp: New test. * ld-arm/unwind-mix.d: New file. * ld-arm/unwind-mix1.s: New file. * ld-arm/unwind-mix2.s: New file.
2016-01-12Automatic date update in version.inGDB Administrator
2016-01-11Automatic date update in version.inGDB Administrator
2016-01-10Automatic date update in version.inGDB Administrator
2016-01-09Automatic date update in version.inGDB Administrator
2016-01-08[ARM] PR ld/19368: Add missing relocation type class for R_ARM_IRELATIVEJiong Wang
2016-01-08 Richard Sandiford <richard.sandiford@arm.com> Jiong Wang <jiong.wang@arm.com> PR ld/19368 bfd/ * elf32-arm.c (elf32_arm_reloc_type_class): Map R_ARM_IRELATIVE to reloc_class_ifunc. ld/ * testsuite/ld-arm/ifunc-3.rd: Update expected result. * testsuite/ld-arm/ifunc-4.rd: Likewise. * testsuite/ld-arm/ifunc-9.rd: Likewise. * testsuite/ld-arm/ifunc-10.rd: Likewise. * testsuite/ld-arm/ifunc-12.rd: Likewise. * testsuite/ld-arm/ifunc-13.rd: Likewise.
2016-01-08Automatic date update in version.inGDB Administrator
2016-01-07Automatic date update in version.inGDB Administrator
2016-01-06bfd/arc: Add R_ prefix to all relocation namesAndrew Burgess
The convention within for relocation names is that they start with the string "R_", however, this is not so for ARC for the display names of relocations, however, internally, the names for the relocations types do have the 'R_' prefix. I suspect that the missing 'R_' on the output strings was an oversight, as I can't see any comment to the contrary. To bring ARC into line with other targets, this commit adds the 'R_' prefix to the output strings used for relocation names, and updates all of the assembler tests where this was exposed. bfd/ChangeLog: * 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. gas/ChangeLog: * testsuite/gas/arc/adc.d: Add 'R_' prefix to relocation names. * testsuite/gas/arc/add.d: Likewise. * testsuite/gas/arc/and.d: Likewise. * testsuite/gas/arc/asl.d: Likewise. * testsuite/gas/arc/asr.d: Likewise. * testsuite/gas/arc/bic.d: Likewise. * testsuite/gas/arc/extb.d: Likewise. * testsuite/gas/arc/extw.d: Likewise. * testsuite/gas/arc/j.d: Likewise. * testsuite/gas/arc/jl.d: Likewise. * testsuite/gas/arc/ld2.d: Likewise. * testsuite/gas/arc/lsr.d: Likewise. * testsuite/gas/arc/mov.d: Likewise. * testsuite/gas/arc/or.d: Likewise. * testsuite/gas/arc/pcl-relocs.d: Likewise. * testsuite/gas/arc/pcrel-relocs.d: Likewise. * testsuite/gas/arc/pic-relocs.d: Likewise. * testsuite/gas/arc/plt-relocs.d: Likewise. * testsuite/gas/arc/rlc.d: Likewise. * testsuite/gas/arc/ror.d: Likewise. * testsuite/gas/arc/rrc.d: Likewise. * testsuite/gas/arc/sbc.d: Likewise. * testsuite/gas/arc/sda-relocs.d: Likewise. * testsuite/gas/arc/sda-relocs2.d: Likewise. * testsuite/gas/arc/sexb.d: Likewise. * testsuite/gas/arc/sexw.d: Likewise. * testsuite/gas/arc/st.d: Likewise. * testsuite/gas/arc/sub.d: Likewise. * testsuite/gas/arc/tls-relocs.d: Likewise. * testsuite/gas/arc/xor.d: Likewise.
2016-01-06Automatic date update in version.inGDB Administrator
2016-01-05Automatic date update in version.inGDB Administrator
2016-01-04MIPS/BFD: Factor out ABI flag mergingMaciej W. Rozycki
Factor out the parts of `_bfd_mips_elf_merge_private_bfd_data' responsible for ABI flag merging to `mips_elf_merge_obj_abiflags'. No functional change. bfd/ * elfxx-mips.c (mips_elf_merge_obj_abiflags): New function, factored out from... (_bfd_mips_elf_merge_private_bfd_data): ... here.
2016-01-04MIPS/BFD: Move attribute check after ELF file header flag checkMaciej W. Rozycki
We have a problem in that in making compatibility checks while merging private BFD data on the MIPS target we give priority to the attribute check, which may fail and cause the function to abort early on. The problem with this is the ABI compatibility aspect recorded in the attributes is relatively minor compared to aspects recorded in the ELF file header. However the premature exit causes any more important compatibility aspect violated to be masked and not reported to the user once a problem with attributes has been noticed. So move the attribute check after the ELF file header flag check in `_bfd_mips_elf_merge_private_bfd_data', and do not return prematurely there. Take advantage of the resulting grouping of ELF file header handling together and remove the premature success return point for the first input object being handled, letting the code later on figure out output ABI flags even for this object. Update LD test cases according to messages from ELF file header checks now preceding ones from attribute checks. bfd/ * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Move attribute check after ELF file header flag check. ld/ * testsuite/ld-mips-elf/attr-gnu-4-14.d: Update the order of messages expected according to MIPS BFD private data merge changes. * testsuite/ld-mips-elf/attr-gnu-4-24.d: Likewise. * testsuite/ld-mips-elf/attr-gnu-4-34.d: Likewise. * testsuite/ld-mips-elf/attr-gnu-4-41.d: Likewise. * testsuite/ld-mips-elf/attr-gnu-4-42.d: Likewise. * testsuite/ld-mips-elf/attr-gnu-4-43.d: Likewise. * testsuite/ld-mips-elf/attr-gnu-4-45.d: Likewise. * testsuite/ld-mips-elf/attr-gnu-4-46.d: Likewise. * testsuite/ld-mips-elf/attr-gnu-4-47.d: Likewise. * testsuite/ld-mips-elf/attr-gnu-4-48.d: Likewise. * testsuite/ld-mips-elf/attr-gnu-4-49.d: Likewise. * testsuite/ld-mips-elf/attr-gnu-4-54.d: Likewise. * testsuite/ld-mips-elf/attr-gnu-4-64.d: Likewise. * testsuite/ld-mips-elf/attr-gnu-4-74.d: Likewise.
2016-01-04MIPS/BFD: Propagate the return status in attribute mergingMaciej W. Rozycki
Fix the issue of any failure from `_bfd_elf_merge_object_attributes' not being propagated by `mips_elf_merge_obj_attributes'. bfd/ * elfxx-mips.c (mips_elf_merge_obj_attributes): Propagate the return status from `_bfd_elf_merge_object_attributes'.
2016-01-04MIPS/BFD: Factor out ELF file header flag checksMaciej W. Rozycki
Factor out the parts of `_bfd_mips_elf_merge_private_bfd_data' responsible for ELF file header flag compatibility checks to `mips_elf_merge_obj_e_flags'. As a side effect remove a premature return point from `_bfd_mips_elf_merge_private_bfd_data'. No functional change otherwise. bfd/ * elfxx-mips.c (mips_elf_merge_obj_e_flags): New function, factored out from... (_bfd_mips_elf_merge_private_bfd_data): ... here.
2016-01-04MIPS/BFD: Fold the handling of input MIPS ABI flags togetherMaciej W. Rozycki
Fold the handling of input MIPS ABI flags in private BFD data merging together, moving the attribute check afterwards, and consequently making input vs output compatibility checks only start once all input ABI flag data has been gathered, checked for inconsistencies and put in order. Consequently also address the issue of input ABI flag inconsistencies being masked by a failing attribute check, which currently makes `_bfd_mips_elf_merge_private_bfd_data' exit prematurely and therefore prevent input ABI flag inconsistencies from being reported. Such inconsistencies need to be reported as they may be the very cause of an attribute check failure. bfd/ * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Fold the handling of input MIPS ABI flags together.
2016-01-04MIPS/BFD: Suppress attribute checks for null inputMaciej W. Rozycki
We currently special-case the handling of attribute checks on input objects and make them even before we check a given input object actually contains any sections. This does not add value as empty objects do not cause a compatibility concern and we already make this observation for other properties such as ELF file header flags. Moreover the attributes themselves are stored in a `.gnu.attributes' section so the absence of any section (except from a few special cases) implies there have been no attributes provided either. Therefore it is safe to move the attribute checks later on, after the null-section check has been made. bfd/ * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Suppress attribute checks for null input.
2016-01-04MIPS/BFD: Use local pointers to target data in private data mergeMaciej W. Rozycki
Use local pointers to target data to reduce the amount of indirection and improve the readability of `_bfd_mips_elf_merge_private_bfd_data'. bfd/ * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Use local pointers to target data.
2016-01-04MIPS/BFD: Correct an FP ABI warningMaciej W. Rozycki
Correct a warning produced on any FP ABI mismatch observed. Unlike the other settings, which in the presence of `.MIPS.abiflags' are duplicated in the `e_flags' member of the ELF file header, information on the FP ABI in use is duplicated in `.gnu.attributes' rather than in the former place. Update the warning message accordingly. bfd/ * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Correct an FP ABI warning.
2016-01-04Automatic date update in version.inGDB Administrator