aboutsummaryrefslogtreecommitdiff
path: root/bfd
AgeCommit message (Collapse)AuthorFilesLines
2015-03-24[AArch64] Refactor generation of 835769 workaround stubs.Marcus Shawcroft2-104/+41
This patch recognizes that we only need to perform one scan for the 835769 errata and that this scan can take place before we insert branch stubs. The erratum scan code is relocated and adjusted to create stub entries directly rather than populating an intermediate representation. Since stub entries are created immediately we can drop the adhoc stub size adjustment code and allow the generic stub sizing code to deal with 835769 stub entries. This patch restructures the code but does not change the workaround used to deal with erratum 83679, the exact placement of workaround stubs in the final image may change slightly after this patch due to stubs being created in a different order.
2015-03-24[AArch64] Use _bfd_aarch64_add_stub_entry_in_group.Marcus Shawcroft2-15/+10
Adjust the 835769 workaround code to use _bfd_aarch64_add_stub_entry_in_group rather than inspect the underlying section_group structure directly.
2015-03-24Make powerpc bfd ld reloc overflow vs undefined symbols match goldAlan Modra3-40/+34
* elf64-ppc.c (ppc64_elf_relocate_section): Report overflow to stubs, even those for undefined weak symbols. Otherwise, don't report relocation overflow on branches to undefined strong symbols. Fix memory leak. * elf32-ppc.c (ppc_elf_relocate_section): Don't report relocation overflow on branches to undefined strong symbols.
2015-03-24Automatic date update in version.inGDB Administrator1-1/+1
2015-03-23[OBV] Fix build -- missing ';'Keith Seitz2-1/+6
bfd/ChangeLog * elfnn-aarch64.c (_bfd_aarch64_create_or_find_stub_sec): Add missing ';'.
2015-03-23Adding Changelog for previous commit.Marcus Shawcroft1-0/+6
2015-03-23Factor out _bfd_aarch64_erratum_835769_stub_nameMarcus Shawcroft1-7/+11
2015-03-23[AArch64] Factor out _bfd_aarch64_resize_stubs()Marcus Shawcroft2-12/+30
2015-03-23[AArch64] Factor stub creation code into _bfd_aarch64_create_stub_section.Marcus Shawcroft2-14/+29
2015-03-23[AArch64] Factor out common behaviour between ↵Marcus Shawcroft2-52/+42
elf_aarch64_create_or_find_stub_sec and elfNN_aarch64_add_stub
2015-03-23[AArch64] Flip sense of erratum_835769_scan.Marcus Shawcroft2-8/+19
2015-03-23[AArch64] Drop unused argument to elf_aarch64_create_or_find_stub_secMarcus Shawcroft2-10/+11
2015-03-23[AArch64] Remove unused variable.Marcus Shawcroft2-3/+6
2015-03-23Fixup previous changelog entry.Marcus Shawcroft1-1/+2
2015-03-23Remove dead code.Marcus Shawcroft2-16/+6
2015-03-23[AArch64] Tidy up in aarch64_mem_op_p().Marcus Shawcroft2-19/+31
2015-03-23[AArch64] Adjust layout of elfNN_aarch64_write_section.Marcus Shawcroft2-1/+5
2015-03-23Automatic date update in version.inGDB Administrator1-1/+1
2015-03-22Automatic date update in version.inGDB Administrator1-1/+1
2015-03-21Automatic date update in version.inGDB Administrator1-1/+1
2015-03-20Automatic date update in version.inGDB Administrator1-1/+1
2015-03-19Add support for G13 and G14 flag bits in RL78 ELF binaries.Nick Clifton2-29/+72
inc * rl78.h (E_FLAG_RL78_G10): Redefine. (E_FLAG_RL78_CPU_MASK, E_FLAG_RL78_ANY_CPU, E_FLAG_RL78_G13 E_FLAG_RL78_G14): New flags. bin * readelf.c (get_machine_flags): Decode RL78's G13 and G14 flags. gas * config/tc-rl78.c (enum options): Add G13 and G14. (md_longopts): Add -mg13 and -mg14. (md_parse_option): Handle -mg13 and -mg14. (md_show_usage): List -mg13 and -mg14. * doc/c-rl78.texi: Add description of -mg13 and -mg14 options. bfd * elf32-rl78.c (rl78_cpu_name): New function. Prints the name of the RL78 core based upon the flags. (rl78_elf_merge_private_bfd_data): Handle merging of G13 and G14 flags. (rl78_elf_print_private_bfd_data): Use rl78_cpu_name. (elf32_rl78_machine): Always return bfd_mach_rl78.
2015-03-19Fix building and testing dwarf debug section compression feature when zlib ↵Nick Clifton2-6/+7
is not available. PR gas/18087 gas/test * gas/i386/dw2-compress-1.d: Allow the test to pass regardless of whether the .debug_info section was compressed on not. bfd * compress.c (bfd_compress_section_contents): Do not define this function if it is not used.
2015-03-19Automatic date update in version.inGDB Administrator1-1/+1
2015-03-18Make bfd_compress_section_contents staticH.J. Lu3-24/+13
* compress.c (bfd_compress_section_contents): Make it static. * bfd/bfd-in2.h: Regenerated.
2015-03-18Fixes a problem generating relocs for import libraries created by Microsoft ↵Nick Clifton2-0/+15
tools for the x85_64 architecture. PR ld/16598 * peicode.h (pe_ILF_build_a_bfd): Add support for creating relocs suitable for the AMD64.
2015-03-18Fix debug section compression so that it is only performed if it would make ↵Jon Turney4-19/+50
the section smaller. PR binutils/18087 gas * doc/as.texinfo: Note that when gas compresses debug sections the compression is only performed if it makes the section smaller. * write.c (compress_debug): Do not compress a debug section if doing so would make it larger. tests * gas/i386/dw2-compress-1.d: Do not expect the .debug_abbrev or .debug_info sections to be compressed. binu * doc/binutils.texi: Note that when objcopy compresses debug sections the compression is only performed if it makes the section smaller. bfd * coffgen.c (make_a_section_from_file): Only prepend a z to a debug section's name if the section was actually compressed. * elf.c (_bfd_elf_make_section_from_shdr): Likewise. * compress.c (bfd_init_section_compress_status): Do not compress the section if doing so would make it bigger. In such cases leave the section alone and return COMPRESS_SECTION_NONE.
2015-03-18Automatic date update in version.inGDB Administrator1-1/+1
2015-03-17Fix elf64-ppc.c electric fence warningAlan Modra2-5/+16
* elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Return count of 0 on nothing to do, before malloc of returned symbol array.
2015-03-17Automatic date update in version.inGDB Administrator1-1/+1
2015-03-16Fixes a problem with the RX port trying to perform linker relaxation when ↵Nick Clifton2-1/+19
-no-keep-memory has been enabled. * elf32-rx.c (elf32_rx_relax_delete_bytes): If the relocs are not stored in the elf_section_data structure then load them as necessary.
2015-03-16Automatic date update in version.inGDB Administrator1-1/+1
2015-03-15Automatic date update in version.inGDB Administrator1-1/+1
2015-03-14S/390: Disable relocation sort against code sections.Andreas Krebbel4-0/+21
When downgrading from GD to IE model we rewrite the call to __tls_get_offset to a 64 bit load instruction. This relies on the fact that the additional relocation for the call target has already been executed when doing the rewrite. f1018: e3 20 d0 00 00 04 lg %r2,0(%r13) f101e: c0 e5 00 00 00 00 brasl %r14,f101e <__res_init+0x1e> f101e: R_390_TLS_GDCALL __libc_resp f1020: R_390_PLT32DBL __tls_get_offset+0x2 0000000f1020 39f6c00000014 R_390_PLT32DBL 0000000000000000 __tls_get_offset + 2 0000000f101e 3afb700000026 R_390_TLS_GDCALL 0000000000000008 __libc_resp + 0 Due to the reloc sorting the order changed an the PLT32DBL reloc is executed after the rewrite and overwrites part of the load instruction with garbage. bfd/ 2015-03-14 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * elf-s390-common.c (elf_s390_elf_sort_relocs_p): Don't sort relocs against code sections. * elf32-s390.c: Define elf_backend_sort_relocs_p. * elf64-s390.c: Likewise.
2015-03-14Automatic date update in version.inGDB Administrator1-1/+1
2015-03-13Automatic date update in version.inGDB Administrator1-1/+1
2015-03-12Automatic date update in version.inGDB Administrator1-1/+1
2015-03-11Fix ppc32 synthetic symbols when __tls_get_addr_opt stub is generatedAlan Modra2-4/+12
Also update the 32-bit tls testcases to be secure plt. bfd/ * elf32-ppc.c (ppc_elf_get_synthetic_symtab): Examine stubs in reverse order. Account for larger size of __tls_get_addr_opt stub. ld/testsuite/ * ld-powerpc/tls32.s: Add GOT pointer setup. * ld-powerpc/tls32.d: Update. * ld-powerpc/tls32.g: Update. * ld-powerpc/tls32.t: Update. * ld-powerpc/tlsexe.d: Update. * ld-powerpc/tlsexe32.d: Update. * ld-powerpc/tlsexe32.g: Update. * ld-powerpc/tlsexe32.r: Update. * ld-powerpc/tlsexetoc.d: Update. * ld-powerpc/tlsso32.d: Update. * ld-powerpc/tlsso32.g: Update. * ld-powerpc/tlsso32.r: Update.
2015-03-11Automatic date update in version.inGDB Administrator1-1/+1
2015-03-10[ARM] PR ld/16572: Remove EF_ARM_HASENTRY flagJiong Wang2-16/+8
bfd/ 2015-03-10 Yuri Gribov <y.gribov@samsung.arm> PR ld/16572 * elf32-arm.c (elf32_arm_final_link_relocate): Remove support for ELF_ARM_HASENTRY. (elf32_arm_print_private_bfd_data): Likewise. binutils/ 2015-03-10 Yuri Gribov <y.gribov@samsung.arm> PR ld/16572 * readelf.c: Remove support for ELF_ARM_HASENTRY. include/ 2015-03-10 Matthew Wahab <matthew.wahab@arm.com> PR ld/16572 * elf/arm.h (EF_ARM_HASENTRY): Remove.
2015-03-10Automatic date update in version.inGDB Administrator1-1/+1
2015-03-09Automatic date update in version.inGDB Administrator1-1/+1
2015-03-08Automatic date update in version.inGDB Administrator1-1/+1
2015-03-07Automatic date update in version.inGDB Administrator1-1/+1
2015-03-06Fix an undefined 32-bit right shift by replacing it with two 16-bit right ↵Nick Clifton2-1/+9
shifts. PR binutils/17765 * elflink.c (put_value): Like previous delta, but for the 32-bit case.
2015-03-06Automatic date update in version.inGDB Administrator1-1/+1
2015-03-05Fix a potentially undefined right shift by replacing it with two smaller ↵Nick Clifton2-7/+17
right shifts. PR binutils/17765 * elflink.c (put_value): Avoid using an undefined shift operation.
2015-03-05Add extern_protected_data and set it for x86H.J. Lu6-4/+35
With copy relocation, address of protected data defined in the shared library may be external. This patch adds extern_protected_data and changes _bfd_elf_symbol_refs_local_p to return false for protected data if extern_protected_data is true. bfd/ PR ld/pr15228 PR ld/pr17709 * elf-bfd.h (elf_backend_data): Add extern_protected_data. * elf32-i386.c (elf_backend_extern_protected_data): New. Defined to 1. * elf64-x86-64.c (elf_backend_extern_protected_data): Likewise. * elflink.c (_bfd_elf_adjust_dynamic_copy): Don't error on copy relocs against protected symbols if extern_protected_data is true. (_bfd_elf_symbol_refs_local_p): Don't return true on protected non-function symbols if extern_protected_data is true. * elfxx-target.h (elf_backend_extern_protected_data): New. Default to 0. (elfNN_bed): Initialize extern_protected_data with elf_backend_extern_protected_data. ld/testsuite/ PR ld/pr15228 PR ld/pr17709 * ld-i386/i386.exp (i386tests): Add a test for PR ld/17709. * ld-i386/pr17709-nacl.rd: New file. * ld-i386/pr17709.rd: Likewise. * ld-i386/pr17709a.s: Likewise. * ld-i386/pr17709b.s: Likewise. * ld-i386/protected3.d: Updated. * ld-i386/protected3.s: Likewise. * ld-x86-64/pr17709-nacl.rd: New file. * ld-x86-64/pr17709.rd: Likewise. * ld-x86-64/pr17709a.s: Likewise. * ld-x86-64/pr17709b.s: Likewise. * ld-x86-64/protected3.d: Updated. * ld-x86-64/protected3.s: Likewise. * ld-x86-64/x86-64.exp (x86_64tests): Add a test for PR ld/17709.
2015-03-05Allows the binutils to cope with PE binaries where the section addresses ↵Nick Clifton5-0/+91
have been changed, but the DWARF debug info has not been altered. PR binutils/18025 * coffgen.c (coff_find_nearest_line_with_names): If the dwarf2 lookup fails, check for an address bias in the dwarf info, and if one exists, retry the lookup with the biased value. * dwarf2.c (_bfd_dwarf2_find_symbol_bias): New function. Determines if a bias exists bewteen the addresses of functions based on DWARF information vs symbol table information. * libbfd-in.h (_bfd_dwarf2_find_symbol_bias): Prototype. * libbfd.h: Regenerate.
2015-03-05Automatic date update in version.inGDB Administrator1-1/+1