Commit Graph

8 Commits

Author SHA1 Message Date
Max Filippov
1b887cfc69 package/binutils: fix assertion failure in xtensa ld
xtensa ld fails with the following message

  ld: BFD (GNU Binutils) 2.31.1 internal error, aborting at
  elf32-xtensa.c:3283 in elf_xtensa_finish_dynamic_sections

during domoticz package build. It happens because of mismatch between
the size allocated for dynamic relocations in the executable image and
the number of PLT relocations actually written to the image. The
mismatch is caused by the fact that undefined weak symbol is treated as
dynamic (and thus needing PLT relocation), but xtensa linker not
expecting that.

Fixes: http://autobuild.buildroot.net/results/7885705f1b1c0f31cf21b464150f5509929c1906/
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Backported from: e15a8da9c71336b06cb5f2706c3f6b7e6ddd95a3
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2020-03-08 17:39:37 +01:00
Max Filippov
de1d1577d7 package/binutils: fix loops relaxation in bare sections
The commit 197b5f9d1c ("package/binutils: fix loops relaxation in
xtensa gas") changed the way loop opcodes are relaxed resulting in build
failures in hand-made assembly code that has loops in sections without
.literal_position pseudo op or equivalent construct. This e.g. breaks
xtensa linux kernel build.

Fix that by adding literal position to the beginning of every section.

Fixes: 197b5f9d1c ("package/binutils: fix loops relaxation in xtensa
gas")
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2019-04-17 08:56:42 +02:00
Max Filippov
197b5f9d1c package/binutils: fix loops relaxation in xtensa gas
Loop relaxation logic in xtensa gas may produce code in which LEND
register doesn't match actual zero overhead loop end. Fix relaxation
code so that it produces a literal or a pair of const16 instructions
with associated relocation record that works correctly in the presence
of other relaxations. This fixes crash in X11 server caused by window
movement.

Loop relaxation has limited of 32K range, this fix removes this
limitation.

Fixes:
http://autobuild.buildroot.net/results/e05522ce540f4ac23f9a3a8fec724694d9a23101/

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2019-04-03 08:36:32 +02:00
Max Filippov
881dae3a9c package/binutils: xtensa: fix shrink_dynamic_reloc_sections
This fixes the following build error caused by link-time relaxation
removing copies of literals that reference undefined weak symbols with
PLT entries created due to -rdynamic option passed to g++ link command:

  ld: BFD (GNU Binutils) 2.31.1 internal error, aborting at
  elf32-xtensa.c:3292 in elf_xtensa_finish_dynamic_sections

Fixes:
http://autobuild.buildroot.net/results/d41/d41aae8a448c316187f9fbde40f1d077182bb244/
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2019-03-29 08:01:55 +01:00
Norbert Lange
0c34e138b5 package/binutils: upstream fixes for 2.31.1
Combining musl and binutils 2.31.1 will produce static applications
that crash immediately. This commit picks up 3 upstream commits to
remedy this.

See https://sourceware.org/bugzilla/show_bug.cgi?id=23428

Signed-off-by: Norbert Lange <nolange79@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2019-03-18 22:04:01 +01:00
Alexey Brodkin
bfb6d66483 binutils: Get rid of obsolete patches
Some patches for Binutils seems to not be really needed.
Moreover for some of them I was not able to find any justification
for their introduction.

1. 0002-ld-makefile.patch

   This one I may track down to at least 2.15.92.0.2 here [1].
   Commit message just says: "Integrate some debian patches,
   extracted from binutils_2.15-4.diff"

   But in OpenEmbedded they got rid of it long ago on switch to 2.26, see [2].

2. 0003-check-ldrunpath-length.patch

   The same story here.

3. 0004-add-sysroot-fix-from-bug-3049.patch

   Bug mentioned in this patch was marked as "fixed" in 2012, see [3].

[1] https://git.buildroot.org/buildroot/commit/?id=ce2722a8f2abee5b60862bc896333b77a7502c82
[2] 3c7fe424f8
[3]https://sourceware.org/bugzilla/show_bug.cgi?id=10340

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Peter Korsgaard <peter@korsgaard.com>
Cc: Romain Naour <romain.naour@smile.fr>
Reviewed-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2018-11-18 21:15:18 +01:00
Max Filippov
ba45631108 package/binutils: fix xtensa linker relaxation regression in 2.31.1
Fix the following xtensa ld error observed when building uClibc-ng
libthread_db with binutils-2.31:

  BFD (GNU Binutils) 2.31 internal error, aborting at
  elf32-xtensa.c:3269 in elf_xtensa_finish_dynamic_sections

Fixes: https://gitlab.com/free-electrons/toolchains-builder/-/jobs/82264912
Reported-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Tested-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-07-25 22:57:05 +02:00
Romain Naour
ec4ca0ddf9 package/binutils: bump to version 2.31.1
>From the release note:
  This is a point release over the previous 2.31 version, which was
  necessary as a source file was accidentally omitted from that
  release.

  This release also contains a fix for PR gold/23409 where the gold
  linker could end up creating duplicate copies of some symbols.

https://sourceware.org/ml/binutils/2018-07/msg00286.html

Signed-off-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2018-07-18 22:45:33 +02:00