Commit Graph

5 Commits

Author SHA1 Message Date
Hans-Christian Noren Egtvedt
5a4c95d658 binutils-2.37: add more patches from upstream release branch
Fetch in various patches from binutils-2_37-branch upstream.

The most vital change is the
0012-pr28391-strip-objcopy-preserve-dates-a-cannot-set-time.patch which
allows building large upstream projects like Qt WebEngine without need
100k's of file descriptors open.

Signed-off-by: Hans-Christian Noren Egtvedt <hegtvedt@cisco.com>
2022-02-04 09:55:25 +13:00
Alexey Brodkin
5d903ccee9 binutils-2.37: Remove obsolete ld_makefile patch
The patch in question was first introduced in [1] as a copy-paste
from OpenEmbedded [2], where it seems to exist on the first ever SVN commit.
Later it was removed from OE in [3] on switching to Binutils 2.25.

It's not clear why it was introduced in the first place and why it
got removed later. But given in OE/Yocto it was missing since 2015
and never was reverted, I guess it is not strictly necessary
at least with recent Binutils. So it's an extra patch which adds
questionable value. Moreover it gets in the way if one wants to
merge a couple of separate toolchains like little- & big-enadian
so that "bin" & "lib" folder contain all the binaries and libs
simultaneously. W/ that patch in place ldscripts won't co-exist,
but instead the latest set of scripts will override all the rest.

And in case of aforementioned example w/ merged little- &
big-endian toolchains BE ldscripts will override LE ones leading
to a funny behavior: on linking w/o explicitly set endianess
(via "-EL" or "-EB") default linker scripts won't match the GCC driver
used:
------------------------------->8---------------------------
$ arc-elf32-gcc test.c -Wl,-marcv2elfx

...

.../bin/../lib/gcc/arc-snps-elf/11.2.0/../../../../arc-snps-elf/bin/ld: .../bin/../lib/gcc/arc-snps-elf/11.2.0/../../../../arc-snps-elf/lib/crt0.o: compiled for a little endian system and target is big endian
.../bin/../lib/gcc/arc-snps-elf/11.2.0/../../../../arc-snps-elf/bin/ld: failed to merge target specific data of file .../bin/../lib/gcc/arc-snps-elf/11.2.0/../../../../arc-snps-elf/lib/crt0.o
.../bin/../lib/gcc/arc-snps-elf/11.2.0/../../../../arc-snps-elf/bin/ld: .../bin/../lib/gcc/arc-snps-elf/11.2.0/crti.o: compiled for a little endian system and target is big endian

...
------------------------------->8---------------------------

[1] cfbcdd3786
[2] 4b46c1f6e8
[3] 3c7fe424f8

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2021-10-10 04:55:24 -07:00
Artem Panfilov
3e4421d420 binutils: Add MinGW build fix from 2.37 branch
This fixes a defect introduced in 25162c7. The "uint" type has not
been explicitly defined here on mingw, causing compilation to fail.

Signed-off-by: Artem Panfilov <artemp@synopsys.com>
2021-09-14 12:28:59 +03:00
Alexey Brodkin
2160d68291 binutils 2.37: arc: Fix for 32-bit hosts
While building statically-linked executables for ARC on 32-bit platform
LD segfaulted like that:
--------------------------->8-------------------------
$ gcc test.c -static

potentially unexpected fatal signal 11.
Path: /arc_gnu_2021.03_prebuilt_glibc_le_archs_native_install/arc-snps-linux-gnu/bin/ld
CPU: 0 PID: 79 Comm: ld Not tainted 5.10.43 #8
Invalid Read @ 0x00000020 by insn @ 0x40bbe
  @off 0x40bbe in [/arc_gnu_2021.03_prebuilt_glibc_le_archs_native_install/arc-snps-linux-gnu/bin/ld]  VMA: 0x00010000 to 0x0010e000
ECR: 0x00050100 EFA: 0x00000020 ERET: 0x00040bbe
STAT: 0x80080082 [IE U     ]   BTA: 0x0003fc24
 SP: 0x5fdb8dec  FP: 0x00129598 BLK: 0x40b66
LPS: 0x2008c602 LPE: 0x2008c63e LPC: 0x00000001
r00: 0x008392f2 r01: 0x00000001 r02: 0x00000000
r03: 0x008392f2 r04: 0x00000058 r05: 0x00e37e88
r06: 0x00eb8ea8 r07: 0x00a837e8 r08: 0x0000003f
r09: 0x736e7520 r10: 0x2011aa74 r11: 0x001147f4
r12: 0x00a83834 r13: 0x00a837e8 r14: 0x00ce92b8
r15: 0x00112130 r16: 0x00eb8ea8 r17: 0x00000058
r18: 0x001273b8 r19: 0x00e37e88 r20: 0x00129598
r21: 0x5fdb8e74 r22: 0x00112130 r23: 0x00179bb0
r24: 0x00170684 r25: 0x20122490
collect2: fatal error: ld terminated with signal 11 [Segmentation fault]
compilation terminated.
--------------------------->8-------------------------

Originally found during native building on ARC board, but later
re-produced on other 32-bit systems like i386/i586.

For all the gory details please refer to [1].
Original fix could be found here [2].

[1] https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/issues/402
[2] 29d31b4ed9

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2021-09-13 01:57:39 -07:00
Alexey Brodkin
77525a81d3 binutils: add version 2.37
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2021-08-16 10:22:50 -07:00