]> git.ipfire.org Git - thirdparty/binutils-gdb.git/log
thirdparty/binutils-gdb.git
6 years agoAutomatic date update in version.in
GDB Administrator [Mon, 15 Oct 2018 00:01:53 +0000 (00:01 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Sun, 14 Oct 2018 00:02:59 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Sat, 13 Oct 2018 00:02:11 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Fri, 12 Oct 2018 00:01:46 +0000 (00:01 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Thu, 11 Oct 2018 00:02:21 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Wed, 10 Oct 2018 00:02:00 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Tue, 9 Oct 2018 00:02:36 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Mon, 8 Oct 2018 00:01:48 +0000 (00:01 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Sun, 7 Oct 2018 00:03:06 +0000 (00:03 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Sat, 6 Oct 2018 00:01:51 +0000 (00:01 +0000)] 
Automatic date update in version.in

6 years agox86: Add Intel ENCLV to assembler and disassembler
H.J. Lu [Fri, 5 Oct 2018 18:56:42 +0000 (11:56 -0700)] 
x86: Add Intel ENCLV to assembler and disassembler

gas/

* testsuite/gas/i386/se1.s: Add enclv.
* testsuite/gas/i386/x86-64-se1.s: Likewise.
* testsuite/gas/i386/se1.d: Updated.
* testsuite/gas/i386/x86-64-se1.d: Likewise.

opcodes/

* i386-dis.c (rm_table): Add enclv.
* i386-opc.tbl: Add enclv.
* i386-tbl.h: Regenerated.

(cherry picked from commit a4e78aa5fed5ba2cc343c76b78d062291a6fb659)

6 years agoAutomatic date update in version.in
GDB Administrator [Fri, 5 Oct 2018 00:02:14 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Thu, 4 Oct 2018 00:01:52 +0000 (00:01 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Wed, 3 Oct 2018 00:01:53 +0000 (00:01 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Tue, 2 Oct 2018 00:02:19 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Mon, 1 Oct 2018 00:02:16 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Sun, 30 Sep 2018 00:02:41 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Sat, 29 Sep 2018 00:02:19 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Fri, 28 Sep 2018 00:02:02 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Thu, 27 Sep 2018 00:01:55 +0000 (00:01 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Wed, 26 Sep 2018 00:02:19 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Tue, 25 Sep 2018 00:02:03 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Mon, 24 Sep 2018 00:01:53 +0000 (00:01 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Sun, 23 Sep 2018 00:02:31 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Sat, 22 Sep 2018 00:01:32 +0000 (00:01 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Fri, 21 Sep 2018 00:02:21 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Thu, 20 Sep 2018 00:02:44 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Wed, 19 Sep 2018 00:02:12 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoFix Aarch64 bug in warning filtering.
Tamar Christina [Tue, 18 Sep 2018 13:36:37 +0000 (14:36 +0100)] 
Fix Aarch64 bug in warning filtering.

This fixes a small bug with the warning filtering code, which when a line has
generated a warning and a template decode error (due to the way templates are
resolved) which would not have been emitted and warnings are being suppressed
with -W it would erroneously emit the error.

I have no testcase for this because the only places we generate warnings during
encoding/decoding now is using msr/mrs and system registers.  They don't have a
template that would trigger this.

However an upcoming patch series will have tests in it which would expose this bug.

gas/ChangeLog:

* config/tc-aarch64.c (output_operand_error_report): Apply filtering to
current instead of head message.

(cherry picked from commit af81c43b51e17c597c8eb5bfaa02fa7f5f6dbe72)

6 years agoAutomatic date update in version.in
GDB Administrator [Tue, 18 Sep 2018 00:01:44 +0000 (00:01 +0000)] 
Automatic date update in version.in

6 years agoImprove the code in the assembler to detect and reject a duplicate input and output...
Robert Yang [Mon, 17 Sep 2018 15:26:58 +0000 (16:26 +0100)] 
Improve the code in the assembler to detect and reject a duplicate input and output file.

* as.c (main): Improve check for input file matching output file.

6 years agoAutomatic date update in version.in
GDB Administrator [Mon, 17 Sep 2018 00:02:09 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Sun, 16 Sep 2018 00:02:30 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Sat, 15 Sep 2018 00:02:36 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Fri, 14 Sep 2018 00:01:31 +0000 (00:01 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Thu, 13 Sep 2018 00:02:02 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoelf: Check for corrupt symbol version info
H.J. Lu [Sat, 25 Aug 2018 13:17:52 +0000 (06:17 -0700)] 
elf: Check for corrupt symbol version info

The BFD linker with PR ld/23499 may generate shared libraries with
corrupt symbol version info which leads to linker error when the
corrupt shared library is used:

/usr/bin/ld: bin/libKF5Service.so.5.49.0: _edata: invalid version 21 (max 0)
/usr/bin/ld: bin/libKF5Service.so.5.49.0: error adding symbols: bad value

Add check for corrupt symbol version info to objdump:

00000000000af005 g    D  .data 0000000000000000  <corrupt>   _edata

and readelf:

   728: 00000000000af005     0 NOTYPE  GLOBAL DEFAULT   25 _edata@<corrupt> (5)

bfd/

PR ld/23499
* elf.c (_bfd_elf_get_symbol_version_string): Return
_("<corrupt>") for corrupt symbol version info.

binutils/

PR ld/23499
* readelf.c (get_symbol_version_string): Return _("<corrupt>")
for corrupt symbol version info.

(cherry picked from commit 7a815dd566f3dd32435ac73aa0a0cc948d525e06)

6 years agoAlways clear h->verinfo.verdef when overriding a dynamic definition
H.J. Lu [Fri, 10 Aug 2018 19:21:58 +0000 (12:21 -0700)] 
Always clear h->verinfo.verdef when overriding a dynamic definition

When linker defines a symbol to override a dynamic definition, it should
always clear h->verinfo.verdef so that the symbol won't be associated
with the version information from the dynamic object.  This happened to
the symbol "_edata" when creating an unversioned dynamic object linking
against:

1. libKF5ConfigCore.so.5.49.0
2. libKF5CoreAddons.so.5.49.0
3. libKF5I18n.so.5.49.0
4. libKF5DBusAddons.so.5.49.0
5. libQt5Xml.so.5.11.1
6. libQt5DBus.so.5.11.1
7. libQt5Core.so.5.11.1

Among them

libQt5Xml.so.5.11.1
   299: 000000000003e000     0 NOTYPE  GLOBAL DEFAULT   18 _edata@@Qt_5
libQt5DBus.so.5.11.1
   597: 0000000000092018     0 NOTYPE  GLOBAL DEFAULT   18 _edata@@Qt_5
libQt5Core.so.5.11.1
  2292: 00000000004df640     0 NOTYPE  GLOBAL DEFAULT   21 _edata@Qt_5
  2293: 00000000004df640     0 NOTYPE  GLOBAL DEFAULT   21 _edata@Qt_5

The problem is triggered by 2 duplicated entries of _edata@Qt_5 in
libQt5Core.so.5.11.1 which was created by gold.  Before this commit,
ld created the dynamic object with "_edata" in its dynamic symbol table
which was linker defined and associated with the version information
from libQt5Core.so.5.11.1.  The code in question was there when the
binutils source was imported to sourceware.org.  When such a dynamic
object was used later, we got:

/usr/bin/ld: bin/libKF5Service.so.5.49.0: _edata: invalid version 21 (max 0)
/usr/bin/ld: bin/libKF5Service.so.5.49.0: error adding symbols: bad value

Tested with many ELF targets.

PR ld/23499
* elflink.c (bfd_elf_record_link_assignment): Always clear
h->verinfo.verdef when overriding a dynamic definition.

(cherry picked from commit 48e30f5238c70e738f44474d595c476ef4e4ec38)

6 years agoAutomatic date update in version.in
GDB Administrator [Wed, 12 Sep 2018 00:02:31 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Tue, 11 Sep 2018 00:02:20 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Mon, 10 Sep 2018 00:02:07 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Sun, 9 Sep 2018 00:02:41 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Sat, 8 Sep 2018 00:02:07 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Fri, 7 Sep 2018 00:02:27 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Thu, 6 Sep 2018 00:02:08 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Wed, 5 Sep 2018 00:01:37 +0000 (00:01 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Tue, 4 Sep 2018 00:02:00 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Mon, 3 Sep 2018 00:02:06 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Sun, 2 Sep 2018 00:03:05 +0000 (00:03 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Sat, 1 Sep 2018 00:01:56 +0000 (00:01 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Fri, 31 Aug 2018 00:02:15 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Thu, 30 Aug 2018 00:02:22 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Wed, 29 Aug 2018 00:02:19 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Tue, 28 Aug 2018 00:02:33 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Mon, 27 Aug 2018 00:02:33 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Sun, 26 Aug 2018 00:02:26 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Sat, 25 Aug 2018 00:01:59 +0000 (00:01 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Fri, 24 Aug 2018 00:01:32 +0000 (00:01 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Thu, 23 Aug 2018 00:02:29 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Wed, 22 Aug 2018 00:01:44 +0000 (00:01 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Tue, 21 Aug 2018 00:02:11 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Mon, 20 Aug 2018 00:01:38 +0000 (00:01 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Sun, 19 Aug 2018 00:02:46 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Sat, 18 Aug 2018 00:02:07 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Fri, 17 Aug 2018 00:02:03 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Thu, 16 Aug 2018 00:01:40 +0000 (00:01 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Wed, 15 Aug 2018 00:01:39 +0000 (00:01 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Tue, 14 Aug 2018 00:01:51 +0000 (00:01 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Mon, 13 Aug 2018 00:02:03 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agold-x86-64/pr23486b.d: Swap pr23486a.s and pr23486a.s
H.J. Lu [Sun, 12 Aug 2018 12:39:00 +0000 (05:39 -0700)] 
ld-x86-64/pr23486b.d: Swap pr23486a.s and pr23486a.s

Swap pr23486a.s and pr23486a.s so that pr23486b.d differs from pr23486a.d.

* testsuite/ld-x86-64/pr23486b.d: Swap pr23486a.s and pr23486a.s.

(cherry picked from commit 988daa317c01a610b5298bbcd80be8642ee66094)

6 years agox86: Properly add X86_ISA_1_NEEDED property
H.J. Lu [Sat, 11 Aug 2018 13:41:33 +0000 (06:41 -0700)] 
x86: Properly add X86_ISA_1_NEEDED property

Existing properties may be removed during property merging.  We avoid
adding X86_ISA_1_NEEDED property only if existing properties won't be
removed.

bfd/

PR ld/23428
* elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): Don't
add X86_ISA_1_NEEDED property only if existing properties won't
be removed.

ld/

PR ld/23428
* testsuite/ld-elf/dummy.s: New file.
* testsuite/ld-elf/linux-x86.S: Add X86_FEATURE_1_AND property.
* testsuite/ld-elf/linux-x86.exp: Add dummy.s to pr23428.

(cherry picked from commit ab9e342807d132182892de1be1a92d6e91a5c1da)

6 years agoAutomatic date update in version.in
GDB Administrator [Sun, 12 Aug 2018 00:02:22 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Sat, 11 Aug 2018 00:01:56 +0000 (00:01 +0000)] 
Automatic date update in version.in

6 years agox86: Replace evex-no-scale.s with evex-no-scale-[32|64].s
H.J. Lu [Fri, 10 Aug 2018 17:23:11 +0000 (10:23 -0700)] 
x86: Replace evex-no-scale.s with evex-no-scale-[32|64].s

.if is_64bit
vmovaps -1024(%rip), %zmm0
vmovaps 64(,%rax), %zmm0
vmovaps 64(,%riz), %zmm0
.endif

doesn't with i686-elf cross binutils on 64-bit hosts:

evex-no-scale.s: Assembler messages:
evex-no-scale.s:10: Error: bad register name `%rip)'
evex-no-scale.s:11: Error: bad register name `%rax)'
evex-no-scale.s:12: Error: bad register name `%riz)'

This patch replaces evex-no-scale.s with evex-no-scale-32.s and
evex-no-scale-64.s.

* testsuite/gas/i386/evex-no-scale-32.d: Don't use
evex-no-scale.s.
* testsuite/gas/i386/evex-no-scale-64.d: Likewise.
* testsuite/gas/i386/evex-no-scale-32.s: New file.
* testsuite/gas/i386/evex-no-scale-64.s: Likewise.
* testsuite/gas/i386/evex-no-scale.s: Removed.

(cherry picked from commit 19449d7c67690c641b1ec9c13ff3531677a5afcc)

6 years agox86: Properly merge GNU_PROPERTY_X86_ISA_1_USED
H.J. Lu [Wed, 8 Aug 2018 13:09:15 +0000 (06:09 -0700)] 
x86: Properly merge GNU_PROPERTY_X86_ISA_1_USED

Without the GNU_PROPERTY_X86_ISA_1_USED property, all ISAs may be used.
If a bit in the GNU_PROPERTY_X86_ISA_1_USED property is unset, the
corresponding x86 instruction set isn’t used.  When merging properties
from 2 input files and one input file doesn't have the
GNU_PROPERTY_X86_ISA_1_USED property, the output file shouldn't have
it neither.  This patch removes the GNU_PROPERTY_X86_ISA_1_USED
property if an input file doesn't have it.

This patch replaces the GNU_PROPERTY_X86_ISA_1_USED property with the
GNU_PROPERTY_X86_ISA_1_NEEDED property which is the minimum ISA
requirement.

bfd/

PR ld/23486
* elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Remove
GNU_PROPERTY_X86_ISA_1_USED if an input file doesn't have it.
(_bfd_x86_elf_link_setup_gnu_properties): Adding the
GNU_PROPERTY_X86_ISA_1_NEEDED, instead of
GNU_PROPERTY_X86_ISA_1_USED, property.

ld/

PR ld/23486
* testsuite/ld-i386/i386.exp: Run PR ld/23486 tests.
* testsuite/ld-x86-64/x86-64.exp: Likewise.
* testsuite/ld-i386/pr23486a.d: New file.
* testsuite/ld-i386/pr23486b.d: Likewise.
* testsuite/ld-x86-64/pr23486a-x32.d: Likewise.
* testsuite/ld-x86-64/pr23486a.d: Likewise.
* testsuite/ld-x86-64/pr23486a.s: Likewise.
* testsuite/ld-x86-64/pr23486b-x32.d: Likewise.
* testsuite/ld-x86-64/pr23486b.d: Likewise.
* testsuite/ld-x86-64/pr23486b.s: Likewise.
* testsuite/ld-i386/property-3.r: Remove "x86 ISA used".
* testsuite/ld-i386/property-4.r: Likewise.
* testsuite/ld-i386/property-5.r: Likewise.
* testsuite/ld-i386/property-x86-ibt3a.d: Likewise.
* testsuite/ld-i386/property-x86-ibt3b.d: Likewise.
* testsuite/ld-i386/property-x86-shstk3a.d: Likewise.
* testsuite/ld-i386/property-x86-shstk3b.d: Likewise.
* testsuite/ld-x86-64/property-3.r: Likewise.
* testsuite/ld-x86-64/property-4.r: Likewise.
* testsuite/ld-x86-64/property-5.r: Likewise.
* testsuite/ld-x86-64/property-x86-ibt3a-x32.d: Likewise.
* testsuite/ld-x86-64/property-x86-ibt3a.d: Likewise.
* testsuite/ld-x86-64/property-x86-ibt3b-x32.d: Likewise.
* testsuite/ld-x86-64/property-x86-ibt3b.d: Likewise.
* testsuite/ld-x86-64/property-x86-shstk3a-x32.d: Likewise.
* testsuite/ld-x86-64/property-x86-shstk3a.d: Likewise.
* testsuite/ld-x86-64/property-x86-shstk3b-x32.d: Likewise.
* testsuite/ld-x86-64/property-x86-shstk3b.d: Likewise.

(cherry picked from commit f7309df20c4e787041cedc4a6aced89c15259e54)

6 years agox86: Update assembler tests for non-ELF targets
H.J. Lu [Sun, 5 Aug 2018 17:05:52 +0000 (10:05 -0700)] 
x86: Update assembler tests for non-ELF targets

evex-no-scale.s has ELF directive:

.section .probe, "", @progbits

* testsuite/gas/i386/i386.exp: Run evex-no-scale-32 and
evex-no-scale-64 only for ELF targets.

(cherry picked from commit 99c2d522f7a7259947aa84c1b385a7c8147fa46c)

6 years agox32: Align the .note.gnu.property section to 4 bytes
H.J. Lu [Fri, 3 Aug 2018 22:47:26 +0000 (15:47 -0700)] 
x32: Align the .note.gnu.property section to 4 bytes

The .note.gnu.property section should be aligned to 4 bytes for x32.

* testsuite/ld-x86-64/property-x86-3.s: Use ".p2align 2" to
align .note.gnu.property section if __64_bit__ is undefined.

(cherry picked from commit 39aac631baa1c5c540d16e45b64c2813a14f95b0)

6 years agoAutomatic date update in version.in
GDB Administrator [Fri, 10 Aug 2018 00:01:33 +0000 (00:01 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Thu, 9 Aug 2018 00:01:50 +0000 (00:01 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Wed, 8 Aug 2018 00:01:49 +0000 (00:01 +0000)] 
Automatic date update in version.in

6 years ago__tls_get_addr_opt stubs and tocsave optimization
Alan Modra [Sun, 5 Aug 2018 10:14:03 +0000 (19:44 +0930)] 
__tls_get_addr_opt stubs and tocsave optimization

This patch fixes a bug in the handling of the __tls_get_addr_opt
stub.  Calls via this stub don't have a toc restoring instruction
following the "bl", and the stub itself doesn't have an initial toc
save instruction.  Thus it is incorrect to skip over the first
instruction when a __tls_get_addr call is marked with a tocsave
reloc.

* elf64-ppc.c (ppc64_elf_relocate_section): Don't skip first
instruction of __tls_get_addr_opt stub.
(plt_stub_size): Omit ALWAYS_EMIT_R2SAVE condition when
dealing with __tls_get_addr_opt stub.
(build_tls_get_addr_stub, ppc_size_one_stub): Likewise.

(cherry picked from commit e81b4c933c1b88e29f4b27627dd9ea0bf9189944)

6 years agoRe: PowerPC64 __tls_get_addr_opt stub .eh_frame fix
Alan Modra [Wed, 1 Aug 2018 09:29:03 +0000 (18:59 +0930)] 
Re: PowerPC64 __tls_get_addr_opt stub .eh_frame fix

The modified test failed on some powerpc targets due to differences in
default hash style.  If the default hash style is both, then more
sections are created, bumping section ids.  Section id is used in stub
symbols and although the test is careful to not depend on id in
labels, the stub hash traversal order changes when stub names change.
That lead to the stubs being emitted in a different order and thus not
matching expected output.

* testsuite/ld-powerpc/powerpc.exp: Run tlsopt5 with hash-style
specified.

(cherry picked from commit a67ae9b01af7eb2b1f8e5c517338a4b12167ce40)

6 years agoPowerPC64 __tls_get_addr_opt stub .eh_frame fix
Alan Modra [Wed, 1 Aug 2018 02:44:22 +0000 (12:14 +0930)] 
PowerPC64 __tls_get_addr_opt stub .eh_frame fix

This patch sets stub_offset in ppc_size_one_stub rather than in
ppc_build_one_stub.  That allows the plt stub alignment to be done in
just ppc_size_one_stub rather than both functions.  The patch also
corrects the place where the alignment was done, fixing a possible
error in .eh_frame data, and tidies some offset calculations.

bfd/
* elf64-ppc.c (plt_stub_pad): Delay plt_stub_size call until needed.
(ppc_build_one_stub): Don't set stub_offset, instead assert that
it is sane.  Don't adjust stub_offset for alignment.  Adjust size
calculation.  Use "targ" temp when calculating offsets.
(ppc_size_one_stub): Set stub_offset here.  Use "targ" temp when
calculating offsets.  Adjust for alignment before setting
tls_get_addr_opt_bctrl.
ld/
* testsuite/ld-powerpc/powerpc.exp: Run tlsopt5 with plt alignment.
* testsuite/ld-powerpc/tlsopt5.s: Add extra call.
* testsuite/ld-powerpc/tlsopt5.wf: Adjust expected output.
* testsuite/ld-powerpc/tlsopt5.d: Likewise.

6 years agoUpdated Bulgarian translation for the ld/ directory
Nick Clifton [Tue, 7 Aug 2018 07:17:11 +0000 (08:17 +0100)] 
Updated Bulgarian translation for the ld/ directory

6 years agoAutomatic date update in version.in
GDB Administrator [Tue, 7 Aug 2018 00:01:55 +0000 (00:01 +0000)] 
Automatic date update in version.in

6 years agoAdd --warn-drop-version option; by default, do not warn when discarding version info.
Cary Coutant [Mon, 6 Aug 2018 21:08:48 +0000 (14:08 -0700)] 
Add --warn-drop-version option; by default, do not warn when discarding version info.

gold/
PR gold/23455
* options.h (General_options): Add --warn-drop-version option.
* symtab.cc (Symbol_table::set_dynsym_indexes): Check it.

6 years agoFix type checking errors.
Cary Coutant [Mon, 6 Aug 2018 20:36:42 +0000 (13:36 -0700)] 
Fix type checking errors.

gold/
* target.h (Sized_target::record_gnu_property): Change first two
parameters to unsigned int.
* x86_64.cc (Target_x86_64::record_gnu_property): Likewise.

6 years agoAutomatic date update in version.in
GDB Administrator [Mon, 6 Aug 2018 00:01:20 +0000 (00:01 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Sun, 5 Aug 2018 00:02:13 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Sat, 4 Aug 2018 00:01:27 +0000 (00:01 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Fri, 3 Aug 2018 00:02:01 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Thu, 2 Aug 2018 00:01:29 +0000 (00:01 +0000)] 
Automatic date update in version.in

6 years agoFix spurious check-ld failures on aarch64-elf
Roland McGrath [Wed, 1 Aug 2018 20:36:51 +0000 (13:36 -0700)] 
Fix spurious check-ld failures on aarch64-elf

ld/
* testsuite/ld-aarch64/ifunc-1-local.d: Adjust regexps to match
the offsets emitted by aarch64-elf configurations.
* testsuite/ld-aarch64/ifunc-1.d: Likewise.
* testsuite/ld-aarch64/ifunc-2-local.d: Likewise.
* testsuite/ld-aarch64/ifunc-2.d: Likewise.
* testsuite/ld-aarch64/ifunc-21.d: Likewise.
* testsuite/ld-aarch64/ifunc-3a.d: Likewise.

(cherry picked from commit c198a1ecf835c5896ef810ebe1ded06729039dcd)

6 years ago[PATCH, LD, AArch64] Fix ifunc testisms
Andre Simoes Dias Vieira [Thu, 19 Jul 2018 15:18:28 +0000 (16:18 +0100)] 
[PATCH, LD, AArch64] Fix ifunc testisms

This patch fixes some ifunc testisms after H.J. Lu's patch to enable the
use of IFUNC pointers in position dependent code for binutils. See PR
LD/23169 in binutils bugzilla.

The aarch64 ifunc error message test was changed to no longer expect
this error message as this is now an accepted combination. This patch
also disables the executable tests added by H.J. Lu for aarch64, just as
Alan Modra did with his patch, as these tests only seem to work on some
architectures.

ld/ChangeLog:
2018-07-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* testsuite/ld-aarch64/ifunc-9.d: Remove no longer expected error.
* testsuite/ld-ifunc/ifunc.exp: Disable tests for aarch64.

(cherry picked from commit 3ba174474d3cc063d6b7abf0bfdd6021bbaf8a90)

6 years agoAutomatic date update in version.in
GDB Administrator [Wed, 1 Aug 2018 00:01:56 +0000 (00:01 +0000)] 
Automatic date update in version.in

6 years agox86: don't mistakenly scale non-8-bit displacements
Jan Beulich [Tue, 31 Jul 2018 09:04:34 +0000 (11:04 +0200)] 
x86: don't mistakenly scale non-8-bit displacements

PR gas/23465

In commit b5014f7af2 I've removed (instead of replaced) a conditional,
resulting in addressing forms not allowing 8-bit displacements to now
get their displacements scaled under certain circumstances. Re-add the
missing conditional.

6 years agoAutomatic date update in version.in
GDB Administrator [Tue, 31 Jul 2018 00:02:23 +0000 (00:02 +0000)] 
Automatic date update in version.in

6 years agoFix unwind offset for call_info->start_symbol.
John David Anglin [Mon, 30 Jul 2018 14:52:34 +0000 (10:52 -0400)] 
Fix unwind offset for call_info->start_symbol.

* config/tc-hppa.c: Include "struc-symbol.h".
(pa_build_unwind_subspace): Use call_info->start_symbol->sy_frag
instead of frag_now for local symbol replacement.

6 years agoAutomatic date update in version.in
GDB Administrator [Mon, 30 Jul 2018 00:01:37 +0000 (00:01 +0000)] 
Automatic date update in version.in

6 years agoAutomatic date update in version.in
GDB Administrator [Sun, 29 Jul 2018 00:02:34 +0000 (00:02 +0000)] 
Automatic date update in version.in