aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Fix ld/PR25316 for the ia64 target by refusing to support binary merging.gentoo/binutils-2.32-3gentoo/binutils-2.32Sergei Trofimovich2020-01-041-4/+7
| | | | | | | | | | | ld/PR25316 * elfnn-ia64.c (elfNN_ia64_merge_private_bfd_data): don't fail on binary inputs ld/PR25316. (is_ia64_elf): new helper to filter on ia64 objects. Cherry-picked from upstream's b26a3d5827edcb942b3af5b9. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* PR24233, Out of memoryAlan Modra2019-06-031-1/+3
| | | | | | | | | PR 24233 * objdump.c (dump_bfd_private_header): Print warning if bfd_print_private_bfd_data returns false. (cherry picked from commit 7d272a55caebfc26ab2e15d1e9439bac978b9bb7) Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
* PR24235, Read memory violation in pei-x86_64.cAlan Modra2019-06-031-5/+4
| | | | | | | | | PR 24235 * pei-x86_64.c (pex64_bfd_print_pdata_section): Correct checks attempting to prevent read past end of section. (cherry picked from commit 179f2db0d9c397d7dd8a59907b84208b79f7f48c) Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
* PR24236, Heap buffer overflow in _bfd_archive_64_bit_slurp_armapAlan Modra2019-06-032-15/+12
| | | | | | | | | | | | | PR 24236 * archive64.c (_bfd_archive_64_bit_slurp_armap): Move code adding sentinel NUL to string buffer nearer to loop where it is used. Don't go past sentinel when scanning strings, and don't write NUL again. * archive.c (do_slurp_coff_armap): Simplify string handling to archive64.c style. (cherry picked from commit 8abac8031ed369a2734b1cdb7df28a39a54b4b49) Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
* Fix a illegal memory access fault when parsing a corrupt MIPS option section ↵Nick Clifton2019-06-031-0/+6
| | | | | | | | | | | using readelf. PR 24243 * readelf.c (process_mips_specific): Check for an options section that is too small to even contain a single option. (cherry picked from commit 7fc0c668f2aceb8582d74db1ad2528e2bba8a921) Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
* Automatic date update in version.inGDB Administrator2019-06-031-1/+1
| | | | | (cherry picked from commit 5aa25a70424ed3d7f892056579f470d75f2c814b) Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
* [GAS, Arm] PR24559: Fix pseudo load-operations for Armv8-M BaselineAndre Vieira2019-06-036-0/+56
| | | | | | | | | | | | | | | | | | | gas/ChangeLog: 2019-05-21 Andre Vieira <andre.simoesdiasvieira@arm.com> Backport from mainline 2019-05-21 Andre Vieira <andre.simoesdiasvieira@arm.com> PR24559 * config/tc-arm.c (move_or_literal_pool): Set size_req to 0 for MOVW replacement. * testsuite/gas/arm/load-pseudo.s: New test input. * testsuite/gas/arm/m0-load-pseudo.d: New test. * testsuite/gas/arm/m23-load-pseudo.d: New test. * testsuite/gas/arm/m33-load-pseudo.d: New test. (cherry picked from commit 114c576d1796773456a74d93c7b391279347e117) Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
* AArch64: Add SVE DWARF registersTamar Christina2019-06-034-3/+48
| | | | | | | | | | | | | | | | | | | | | The SVE DRAWF register names are missing from binutils, this may cause objdump and readelf to ignore certain DRAWF output as the registers are unknown (most notably CIEs). This patch adds the registers in accordance to the "DWARF for ARM(r) 64-bit Architecture (AARch64) with SVE support" documentation [1]. [1] https://developer.arm.com/docs/100985/latest/dwarf-for-the-arm-64-bit-architecture-aarch64-with-sve-support binutils/ChangeLog: * dwarf.c (dwarf_regnames_aarch64): Add SVE registers. * testsuite/binutils-all/aarch64/sve-dwarf-registers.d: New test. * testsuite/binutils-all/aarch64/sve-dwarf-registers.s: New test. (cherry picked from commit fab7c86ea474291776621eba042132f47af124e1) (cherry picked from commit 4ee0b37fff6c9c43d3b5abe9285316979ee24683) Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
* PR24567, assertion failure in ldlang.c:6868 when compiling with -fltoAlan Modra2019-06-032-18/+30
| | | | | | | | | | | | | | | As the existing comment said: "a common ought to be overridden by a def in a -flto object". This patch makes the code actually do that, rather than allowing a normal object file common to override a -flto defined symbol. PR 24567 * plugin.c (plugin_notice): Do not let a common symbol override a non-common definition in IR. (cherry picked from commit af4fa23fba220c1b26bb3c8a7996b406dcc181cc) (cherry picked from commit f10648e0350707e0e51576c60f3f5b9cbb14ab75) Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
* Work around gcc9 warning bugAlan Modra2019-06-032-13/+16
| | | | | | | | | * wrstabs.c (stab_start_class_type): Add assert to work around gcc9 warning. Tidy. (cherry picked from commit 8107ddcea1da07f1c4e902c17f045684beb78079) (cherry picked from commit 3439fdd6f375c9fca29d4f501202bebaec3867c5) Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
* AArch64: When DF_BIND_NOW don't use TLSDESC GOT value.gentoo/binutils-2.32-2Tamar Christina2019-04-185-4/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When using DF_BIND_NOW on AArch64 we don't reserve the GOT slot for a TLSDESC, but we still emitted DT_TLSDESC_GOT and DT_TLSDESC_PLT. This caused random memory corruption as the "special" value of (bfd_vma)-1 would be set for dt_tlsdesc_got. Since we don't have a value of dt_tlsdesc_got I also don't emit DT_TLSDESC_PLT now becuase it would point to an incomplete PLT. To be able to write the PLT entry DT_TLSDESC_GOT is needed and since we don't have one we can't write the PLT entry either. It is my understanding that GLIBC doesn't need these two entries when not lazy loading. Conversely AArch32 does not reserve neither the GOT not the PLT slot when doing DF_BIND_NOW. AArch32 does not need these checks because these values are initialized to 0 and so the if (...) checks don't pass, but on AArch64 these are initialized to (bfd_vma)-1 and thus we need some extra checks. bfd/ChangeLog: PR ld/24302 * elfnn-aarch64.c (elfNN_aarch64_size_dynamic_sections): Don't emit DT_TLSDESC_GOT and DT_TLSDESC_PLT when DF_BIND_NOW. (elfNN_aarch64_finish_dynamic_sections): Don't write PLT if DF_BIND_NOW. ld/ChangeLog: PR ld/24302 * testsuite/ld-aarch64/aarch64-elf.exp: Add new test. * testsuite/ld-aarch64/tls-relax-gdesc-le-now.d: New test. (cherry picked from commit ce12121b63145322b4961bbb2b94b939cb916ba7) (cherry picked from commit eb23038d19295a783144ec266736d486e5671d96) Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
* Automatic date update in version.inGDB Administrator2019-04-181-1/+1
| | | | | (cherry picked from commit db06266b995feeab2c4b620901c91fda707c873e) Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
* x86: Also check x86 linker_def for non-shared definitionH.J. Lu2019-04-1811-0/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Since elf_x86_linker_defined sets linker_def in elf_x86_link_hash_entry for linker defined symbols, SYMBOL_DEFINED_NON_SHARED_P should also check linker_def in elf_x86_link_hash_entry. bfd/ PR ld/24458 * elfxx-x86.h (SYMBOL_DEFINED_NON_SHARED_P): Also check x86 linker_def. ld/ PR ld/24458 * testsuite/ld-x86-64/x86-64.exp: Run PR ld/24458 tests. * testsuite/ld-x86-64/pr24458.s: New file. * testsuite/ld-x86-64/pr24458a-x32.d: Likewise. * testsuite/ld-x86-64/pr24458a.d: Likewise. * testsuite/ld-x86-64/pr24458b-x32.d: Likewise. * testsuite/ld-x86-64/pr24458b.d: Likewise. * testsuite/ld-x86-64/pr24458c-x32.d: Likewise. * testsuite/ld-x86-64/pr24458c.d: Likewise. (cherry picked from commit 4e84a8f8bbeab52fa7048873655e582ceb92534d) (cherry picked from commit 49364d83d58d6357aa0fcd1b448b48218d244675) Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
* [BINUTILS, AArch64, 2/2] Update Store Allocation Tag instructionsSudakshina Das2019-04-1814-198/+245
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch updates the Store allocation tags instructions in Armv8.5-A Memory Tagging Extension. This is part of the changes that have been introduced recently in the 00bet10 release All of these instructions have an updated register operand (Xt -> <Xt|SP>) - STG <Xt|SP>, [<Xn|SP>, #<simm>] - STG <Xt|SP>, [<Xn|SP>, #<simm>]! - STG <Xt|SP>, [<Xn|SP>], #<simm> - STZG <Xt|SP>, [<Xn|SP>, #<simm>] - STZG <Xt|SP>, [<Xn|SP>, #<simm>]! - STZG <Xt|SP>, [<Xn|SP>], #<simm> - ST2G <Xt|SP>, [<Xn|SP>, #<simm>] - ST2G <Xt|SP>, [<Xn|SP>, #<simm>]! - ST2G <Xt|SP>, [<Xn|SP>], #<simm> - STZ2G <Xt|SP>, [<Xn|SP>, #<simm>] - STZ2G <Xt|SP>, [<Xn|SP>, #<simm>]! - STZ2G <Xt|SP>, [<Xn|SP>], #<simm> In order to accept <Rt|SP> a new operand type Rt_SP is introduced which has the same field as FLD_Rt but follows other semantics of Rn_SP. *** gas/ChangeLog *** 2019-04-16 Sudakshina Das <sudi.das@arm.com> Backported from mainline 2019-04-11 Sudakshina Das <sudi.das@arm.com> * config/tc-aarch64.c (process_omitted_operand): Add case for AARCH64_OPND_Rt_SP. (parse_operands): Likewise. * testsuite/gas/aarch64/armv8_5-a-memtag.d: Update tests. * testsuite/gas/aarch64/armv8_5-a-memtag.s: Likewise. * testsuite/gas/aarch64/illegal-memtag.l: Likewise. * testsuite/gas/aarch64/illegal-memtag.s: Likewise. *** include/ChangeLog *** 2019-04-16 Sudakshina Das <sudi.das@arm.com> Backported from mainline 2019-04-11 Sudakshina Das <sudi.das@arm.com> * opcode/aarch64.h (enum aarch64_opnd): Add AARCH64_OPND_Rt_SP. *** opcodes/ChangeLog *** 2019-04-16 Sudakshina Das <sudi.das@arm.com> Backported from mainline 2019-04-11 Sudakshina Das <sudi.das@arm.com> * aarch64-opc.c (aarch64_print_operand): Add case for AARCH64_OPND_Rt_SP. (verify_constraints): Likewise. * aarch64-tbl.h (QL_LDST_AT): Update to add SP qualifier. (struct aarch64_opcode): Update stg, stzg, st2g, stz2g instructions to accept Rt|SP as first operand. (AARCH64_OPERANDS): Add new Rt_SP. * aarch64-asm-2.c: Regenerated. * aarch64-dis-2.c: Regenerated. * aarch64-opc-2.c: Regenerated. (cherry picked from commit bd7ceb8d26e011ff3fd23402ec2587d7c374f090) (cherry picked from commit d004c09f45d55712b8f3b5540c1ce4446ac52551) Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
* [BINUTILS, AArch64, 1/2] Add new LDGM/STGM instructionSudakshina Das2019-04-1810-1541/+1617
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds the new LDGM/STGM instructions of the Armv8.5-A Memory Tagging Extension. This is part of the changes that have been introduced recently in the 00bet10 release The instructions are as follows: LDGM Xt, [<Xn|SP>] STGM Xt, [<Xn|SP>] *** gas/ChangeLog *** 2019-04-16 Sudakshina Das <sudi.das@arm.com> Backported from mainline 2019-04-11 Sudakshina Das <sudi.das@arm.com> * testsuite/gas/aarch64/armv8_5-a-memtag.d: New tests for ldgm and stgm. * testsuite/gas/aarch64/armv8_5-a-memtag.s: Likewise. * testsuite/gas/aarch64/illegal-memtag.l: Likewise. * testsuite/gas/aarch64/illegal-memtag.s: Likewise. *** opcodes/ChangeLog *** 2019-04-16 Sudakshina Das <sudi.das@arm.com> Backported from mainline 2019-04-11 Sudakshina Das <sudi.das@arm.com> * aarch64-asm-2.c: Regenerated. * aarch64-dis-2.c: Likewise. * aarch64-opc-2.c: Likewise. * aarch64-tbl.h (aarch64_opcode): Add new ldgm and stgm. (cherry picked from commit e54010f1aeb050cb9d65862a0afe9095a7a85f27) (cherry picked from commit daf59f53226fbc07e8dbab64b44b310fdb90cb2f) Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
* AArch64: Fix disassembler bug with out-of-order sectionsTamar Christina2019-04-1823-158/+640
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The AArch64 disassembler has an optimization that it uses to reduce the amount it has to search for mapping symbols during disassembly. This optimization assumes that sections are listed in the section header in monotonic increasing VMAs. However this is not a requirement for the ELF specification. Because of this when such "out of order" sections occur the disassembler would pick the wrong mapping symbol to disassemble the section with. This fixes it by explicitly passing along the stop offset for the current disassembly glob and when this changes compared to the previous one we've seen the optimization won't be performed. In effect this restarts the search from a well defined starting point. Usually the symbol's address. The existing stop_vma can't be used for this as it is allowed to be unset and setting this unconditionally would change the semantics of this field. binutils/ChangeLog: * objdump.c (disassemble_bytes): Pass stop_offset. * testsuite/binutils-all/aarch64/out-of-order.T: New test. * testsuite/binutils-all/aarch64/out-of-order.d: New test. * testsuite/binutils-all/aarch64/out-of-order.s: New test. include/ChangeLog: * dis-asm.h (struct disassemble_info): Add stop_offset. opcodes/ChangeLog: * aarch64-dis.c (last_stop_offset): New. (print_insn_aarch64): Use stop_offset. (cherry picked from commit 53b2f36bf6aa939feab6f82f05d7dad52f82660d) (cherry picked from commit 263825a224bdbdebbef7e96876dc7b8a45cbdc5b) Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
* [ARC] don't force _init/_fini as DT_INIT/DT_FINI.Claudiu Zissulescu2019-04-184-38/+14
| | | | | | | | | | | | | | | | | | | | | | | Recent gcc commit b4371b277f1e ("[ARC] Enable init_array support") inhibits DT_"INIT,FINI} in favor of DT_{INIT,FINI}ARRAY. Even prior to that, it seems ARC port is the only one with this special DT_INIT/FINI handling in linker emulation. Removing it doesn't seem to change any uClibc/glibc testsuite results, so this can RIP anyways. bfd/ 2019-02-01 Vineet Gupta <vgupta@synopsys.com> * elf32-arc.c: Delete init_str, fini_str ld/ 2019-02-01 Vineet Gupta <vgupta@synopsys.com> * emultempl/arclinux.em : Delete special INIT/FINI handling. (cherry picked from commit ae0e4eb9cea6cb0f54b3ba3ffc6c314e683f6858) Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
* PR24355, segmentation fault in function called from ppc_finish_symbolsAlan Modra2019-04-182-6/+9
| | | | | | | | | | | | | | | | | | | | | | | This one looks to be a bug going back to 2009, git commit e054468f6c "STT_GNU_IFUNC support for PowerPC". That bug was carried over with git commit 49c09209d0 "Rearrange PLT reloc output on powerpc". If the refcount for an ifunc local sym plt entry was zero, ppc_elf_size_dynamic_sections would correctly set plt.offset to -1 but leave glink_offset uninitialized. That leads to occasional segfaults (which can be made solid with MALLOC_PERTURB_=1 when using glibc). So, guard the write_glink_stub call with plt.offset != -1. Also, remove the totally ineffective attempt at writing multiple-use glink stubs only once. PR 24355 * elf32-ppc.c (ppc_finish_symbols): Don't call write_glink_stub for local iplt syms with ent->plt.offset == -1. Remove ineffective attempt at writing glink stubs only once. (cherry picked from commit 8cd1fe1bf525b59f4d07e5790d11d49eee7e8494) (cherry picked from commit 7efcedf2b5871d455bc8a24bac3ebe28c7d8e470) Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
* S/390: arch13: Adjust to recent changesAndreas Krebbel2019-04-185-53/+64
| | | | | | | | | | | | | | | | | | | | | | | | | opcodes/ChangeLog: 2019-03-12 Andreas Krebbel <krebbel@linux.ibm.com> Backport from mainline 2019-03-12 Andreas Krebbel <krebbel@linux.ibm.com> * s390-opc.txt: Rename selhhhr to selfhr. Remove optional operand from vstrszb, vstrszh, and vstrszf. gas/ChangeLog: 2019-03-12 Andreas Krebbel <krebbel@linux.ibm.com> Backport from mainline 2019-03-12 Andreas Krebbel <krebbel@linux.ibm.com> * testsuite/gas/s390/zarch-arch13.s: Adjust testcase to optable changes. * testsuite/gas/s390/zarch-arch13.d: Likewise. (cherry picked from commit e49edb49713e435b8441bb5a9bd0c10d9df84e2f) Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
* S/390: arch13: Add instruction descriptionsAndreas Krebbel2019-04-182-101/+122
| | | | | | | | | | | | | | opcodes/ChangeLog: 2019-03-12 Andreas Krebbel <krebbel@linux.ibm.com> Backport from mainline 2019-03-12 Andreas Krebbel <krebbel@linux.ibm.com> * s390-opc.txt: Add instruction descriptions. (cherry picked from commit d98eed0923af29043ce18da43d2a242191d44ceb) Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
* Revert "Add support to GNU ld to separate got related plt entries"Andreas Krebbel2019-04-1819-106/+132
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bfd/ChangeLog: 2019-03-01 Andreas Krebbel <krebbel@linux.ibm.com> This reverts commit 5a12586d44fa8d5dfc74cbca4f2f36a273a16335. 2019-01-14 Maamoun Tarsha <maamountk@hotmail.com> PR 20113 * elf32-s390.c (allocate_dynrelocs): Update comment. ld/ChangeLog: 2019-03-01 Andreas Krebbel <krebbel@linux.ibm.com> This reverts commit 5a12586d44fa8d5dfc74cbca4f2f36a273a16335. 2019-01-14 Maamoun Tarsha <maamountk@hotmail.com> PR 20113 * emulparams/elf64_s390.sh (SEPARATE_GOTPLT): Define. * emulparams/elf_s390.sh (SEPARATE_GOTPLT): Define. * testsuite/ld-s390/gotreloc_31-1.dd: Update expected output. * testsuite/ld-s390/tlsbin.dd: Likewise. * testsuite/ld-s390/tlsbin.rd: Likewise. * testsuite/ld-s390/tlsbin.sd: Likewise. * testsuite/ld-s390/tlsbin_64.dd: Likewise. * testsuite/ld-s390/tlsbin_64.rd: Likewise. * testsuite/ld-s390/tlsbin_64.sd: Likewise. * testsuite/ld-s390/tlspic.dd: Likewise. * testsuite/ld-s390/tlspic.rd: Likewise. * testsuite/ld-s390/tlspic.sd: Likewise. * testsuite/ld-s390/tlspic_64.dd: Likewise. * testsuite/ld-s390/tlspic_64.rd: Likewise. * testsuite/ld-s390/tlspic_64.sd: Likewise. * testsuite/ld-s390/s390.exp: Skip s390 tests for tpf targets. (cherry picked from commit 9db2b33d363e2047df53f89ad34e7d1104299d12) Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
* [no patch] Gentoo: Add patch tarball generation scriptgentoo/binutils-2.32-1Andreas K. Hüttel2019-02-164-0/+173
| | | | (cherry picked from commit 90427abb2aac0cc4ebcb73397cc3ad574c6fec5d)
* Gentoo: add --with-extra-soversion-suffix= optionSergei Trofimovich2019-02-164-0/+29
| | | | | | | | | | | | | | | | | | | | | --with-extra-soversion-suffix= will allow Gentoo to distinct libbfd.so and libopcodes.so to have more precise SONAME. Today --enable-targets=all and --enable-64-bit-bfd change libbfd.so ABI: --enable-targets=all adds new symbols to the library --enable-64-bit-bfd modifies BFD_ARCH_SIZE default and changes sizes of integer parameters and fields to most APIs. --with-extra-soversion-suffix= will allow Gentoo to inject additional keys into SONAME to indicate ABI change and avoid hard to diagnose crashes when user reinstalls libbfd.so built with different flags (see https://bugs.gentoo.org/663690). Bug: https://bugs.gentoo.org/666100 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* Gentoo: Fix textrel warning format testAndreas K. Hüttel2019-02-161-1/+1
|
* Gentoo: Fix test for precise textrel warning message, after non-shared ↵Andreas K. Hüttel2019-02-161-1/+1
| | | | | | object change (Broken by "Gentoo: Restore TEXTREL warnings for non-shared objects")
* Gentoo: Restore TEXTREL warnings for non-shared objectsSergei Trofimovich2019-02-161-2/+2
|
* Gentoo: Pass --no-warn-shared-textrel to ld in its testsuiteAndreas K. Hüttel2019-02-161-4/+4
|
* Gentoo: Pass --hash-style=sysv to ld in its testsuiteAndreas K. Hüttel2019-02-161-2/+767
|
* Gentoo: opcodes: link against libbfd.la for rpath depsMike Frysinger2019-02-162-2/+2
| | | | | | | | | | | | | The reason opcodes doesn't link against libbfd.la is to workaround a libtool bug where it uses installed -L paths ahead of DESTDIR paths. The downside is that the library itself lacks rpath tags to find the right version of libbfd.so. Since Gentoo has patched the libtool bug for a while, we don't need the workaround. Use the .la file so we get the rpath tags. URL: https://bugs.gentoo.org/563934 (cherry picked from commit 662586237b0b00ee881e79b56f6234ff36e8bfe6)
* Gentoo: libiberty: install PIC version of libiberty.aMike Frysinger2019-02-161-0/+1
| | | | | | | | | | | | | This will install a PIC version of libiberty.a by overwriting the non-PIC version of libiberty.a while compiling. We do this because there is no shared version of libiberty for random apps to link against which means if someone wants to use this in a shared library or PIE, they're out of luck. It's arguable whether people should be able to use this in a shared lib, but usage in PIE should be fine. You could argue that this penalizes the non-PIE users, but the counter point is that people using this library in general are fairly low, and we'd rather have things work for all of them. (cherry picked from commit 112aff9ad3e2675556370c4281117a6df0a879d9)
* Gentoo: ld: enable new dtags by default for linux/gnu targetsMike Frysinger2019-02-161-0/+10
| | | | | | | | | | | | | | | | | | The "new" dtags options have been around for 14+ years now, so for Linux and GNU targets, enable them by default. 2012-01-21 Mike Frysinger <vapier@gentoo.org> * emultempl/elf32.em (gld${EMULATION_NAME}_before_parse): Set link_info.new_dtags to TRUE for linux/gnu targets. * NEWS: Mention new dtags default. 2013-01-22 Roland McGrath <mcgrathr@google.com> * emultempl/elf32.em (gld${EMULATION_NAME}_before_parse): Set new_dtags to TRUE for *-*-nacl* targets. (cherry picked from commit 3ed91ee23d7ba05bffe6fb00bdaf5fa089643d77)
* Gentoo: gold/ld: add support for poisoned system directoriesMike Frysinger2019-02-1611-0/+146
| | | | | | | | | | | | | | | | | | | | | | This is based on the old CodeSourcery patch written by Joseph Myers to add support to the link for detecting & rejecting bad -L paths when using a cross-compiler. The differences here: * The command line flags are always available. * We can turn on & off the warning via the command line. * The configure option controls the default warning behavior. * Add support for gold. It is not currently upstream, nor has it been submitted at all. There are no plans to do so currently either. BUG=chromium:488360 TEST=`cbuildbot chromiumos-sdk` passes # tests arm/amd64/mipsel/x86 TEST=`cbuildbot panther_moblab-full whirlwind-release` pass TEST=`cbuildbot {x32,arm64}-generic-full` has no new failures TEST=x86_64-cros-linux-gnu-ld throws warnings when using -L/lib (gold & bfd) Reviewed-on: https://chromium-review.googlesource.com/272083 (cherry picked from commit f92dbf35c00ab13cee36f6be8ae5ca46454d9000)
* Gentoo: Add an option --no-warn-shared-textrel (self-explanatory)Andreas K. Hüttel2019-02-163-0/+11
|
* Gentoo: ld: always warn about textrels in filesMike Frysinger2019-02-161-0/+1
| | | | | | | | | textrels are bad for forcing copy-on-write (this affects everyone), and for security/runtime code generation, this affects security ppl. But in either case, it doesn't matter who needs textrels, it's the very fact that they're needed at all. (cherry picked from commit cd6411ad57aab78686f67cbbc1ed70ee810ad335)
* Automatic date update in version.inGDB Administrator2019-02-151-1/+1
|
* Automatic date update in version.inGDB Administrator2019-02-141-1/+1
|
* Automatic date update in version.inGDB Administrator2019-02-131-1/+1
|
* Updated French translation for ld/ and gold/ subdirectoriesNick Clifton2019-02-124-2363/+2449
|
* Automatic date update in version.inGDB Administrator2019-02-121-1/+1
|
* Automatic date update in version.inGDB Administrator2019-02-111-1/+1
|
* Add ChangeLog entries for PR gas/24165H.J. Lu2019-02-101-0/+10
|
* gas: Pass max_bytes to TC_FRAG_INITH.J. Lu2019-02-101-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ommit 3ae729d5a4f63740ed9a778960b17c2912b0bbdd Author: H.J. Lu <hjl.tools@gmail.com> Date: Wed Mar 7 04:18:45 2018 -0800 x86: Rewrite NOP generation for fill and alignment increased MAX_MEM_FOR_RS_ALIGN_CODE to 4095 which resulted in increase of assembler time and memory usage by 5 times for inputs with many .p2align directives, which is typical for LTO output. This patch passes max_bytes to TC_FRAG_INIT so that MAX_MEM_FOR_RS_ALIGN_CODE can be set as needed and tracked by backend it so that HANDLE_ALIGN can check the maximum alignment for each rs_align_code frag. Wall time to assemble the same cc1plus.s: before: 423.78user 0.89system 7:05.71elapsed 99%CPU after: 102.35user 0.27system 1:42.89elapsed 99%CPU PR gas/24165 * config/tc-i386.h (MAX_MEM_FOR_RS_ALIGN_CODE): Set to (alignment ? ((1 << alignment) - 1) : 1) (i386_tc_frag_data): Add max_bytes. (TC_FRAG_INIT): Track max_chars in max_bytes. (HANDLE_ALIGN): Replace MAX_MEM_FOR_RS_ALIGN_CODE with fragP->tc_frag_data.max_bytes. (cherry picked from commit db22231044df03bbcb987496f3f29f0462b2e9ee)
* x86-64: Restore PIC check for PCREL reloc against protected symbolH.J. Lu2019-02-108-54/+124
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit bd7ab16b4537788ad53521c45469a1bdae84ad4a Author: H.J. Lu <hjl.tools@gmail.com> Date: Tue Feb 13 07:34:22 2018 -0800 x86-64: Generate branch with PLT32 relocation removed check R_X86_64_PC32 relocation against protected symbols in shared objects. Since elf_x86_64_check_relocs is called after we have seen all input files, we can check for PC-relative relocations in elf_x86_64_check_relocs. We should not allow PC-relative relocations against protected symbols since address of protected function and location of protected data may not be in the shared object. bfd/ PR ld/24151 * elf64-x86-64.c (elf_x86_64_need_pic): Check SYMBOL_DEFINED_NON_SHARED_P instead of def_regular. (elf_x86_64_relocate_section): Move PIC check for PC-relative relocations to ... (elf_x86_64_check_relocs): Here. (elf_x86_64_finish_dynamic_symbol): Use SYMBOL_DEFINED_NON_SHARED_P to check if a symbol is defined in a non-shared object. * elfxx-x86.h (SYMBOL_DEFINED_NON_SHARED_P): New. ld/ PR ld/24151 * testsuite/ld-x86-64/pr24151a-x32.d: New file. * testsuite/ld-x86-64/pr24151a.d: Likewise. * testsuite/ld-x86-64/pr24151a.s: Likewise. * testsuite/ld-x86-64/x86-64.exp: Run pr24151a and pr24151a-x32. (cherry picked from commit 83924b3846361f2f76f9a6e7b5afa01c0eebbd4f)
* Automatic date update in version.inGDB Administrator2019-02-101-1/+1
|
* Automatic date update in version.inGDB Administrator2019-02-091-1/+1
|
* Make inline plt reloc "unsupported for bss-plt" an errorAlan Modra2019-02-082-2/+7
| | | | | | | | | | This was always supposed to be an error. Code emitted by gcc for inline PLT calls assumes PLT is an array of addresses. * elf32-ppc.c (ppc_elf_relocate_section): Add %X to "unsupported for bss-plt" warning to make it an error. (cherry picked from commit 482f3505d1b62cbcf46ffed54807fad0d91c8f09)
* Automatic date update in version.inGDB Administrator2019-02-081-1/+1
|
* Arm: Backport hlt to all architectures.Tamar Christina2019-02-077-2/+85
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The software trap instruction HLT that was introduced in Armv8-a is used as the semihosting trap instruction in AArch64. In order to allow systems configured to run AArch64 code to also run AArch32 with semihosting it was decided that AArch32 should also use HLT in the case of the "mixed mode" environment. This requires that HLT also be backported to all earlier architectures. The instruction is in the undefined encoding space earlier architectures but must trigger a semihosting trap [3]. The Arm Architectural Reference Manual [1] doesn't explicitly mention this however this is an explicit requirement in the Semihosting-v2 protocol [2]. [1] https://developer.arm.com/docs/ddi0487/latest/arm-architecture-reference-manual-armv8-for-armv8-a-architecture-profile [2] https://developer.arm.com/docs/100863/latest/the-semihosting-interface [3] https://github.com/qemu/qemu/commit/19a6e31c9d2701ef648b70ddcfc3bf64cec8c37e gas/ChangeLog: * config/tc-arm.c (insns): Redefine THUMB_VARIANT and ARM_VARIANT for hlt to armv1. * testsuite/gas/arm/armv8a-automatic-hlt.d: Update TAGs * testsuite/gas/arm/hlt.d: New test. * testsuite/gas/arm/hlt.s: New test. opcodes/ChangeLog: * arm-dis.c (arm_opcodes): Redefine hlt to armv1. (cherry picked from commit f7dd2fb2e2b750f0fb9dedaf885c17bc6beef1f7)
* SPARC: fix PR ld/18841Eric Botcazou2019-02-073-2/+71
| | | | | | | | | | | | | | | | | This fixes the last ld failures on SPARC64/Linux: FAIL: Run pr18841 with libpr18841b.so FAIL: Run pr18841 with libpr18841c.so FAIL: Run pr18841 with libpr18841bn.so (-z now) FAIL: Run pr18841 with libpr18841cn.so (-z now) by mimicing what has been done on x86-64 and Aarch64 to fix the PR. bfd/ PR ld/18841 * elf32-sparc.c (elf32_sparc_reloc_type_class): Return reloc_class_ifunc for ifunc symbols. * elf64-sparc.c (elf64_sparc_reloc_type_class): Likewise.
* Visium: fix bogus overflow check on 32-bit hostsEric Botcazou2019-02-072-7/+11
| | | | | | bfd/ * elf32-visium.c (visium_elf_howto_parity_reloc): Minor tweak. <R_VISIUM_PC16>: Use explicit range test to detect an overflow.