summaryrefslogtreecommitdiffstats
path: root/package/binutils/2.24
Commit message (Collapse)AuthorAgeFilesLines
* binutils: remove deprecated 2.24.XArnout Vandecappelle2016-10-1523-4982/+0
| | | | | | | | We will remove BR2_DEPRECATED, so remove this deprecated option. [Peter: drop binutils patches] Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* binutils: fix .init/.fini literals moving in xtensa gasMax Filippov2016-02-181-0/+149
| | | | | | | | | | | | | | | Despite the documentation and the comment in xtensa_move_literals, in the presence of --text-section-literals and --auto-litpools literals are moved from the separate literal sections into .init and .fini, because the check in the xtensa_move_literals is incorrect. This fixes build errors seen with projects that have .init/.fini and use text-section-literals. Backported from: 4111950f363221c4641dc2f33bea61cc94f34906 Reported-by: Waldemar Brodkorb <mail@waldemar-brodkorb.de> Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* binutils: fix .loc processing in xtensa gasMax Filippov2016-02-031-0/+99
| | | | | | | | Fixes: http://autobuild.buildroot.net/results/bff7436a800eeea92c0c92bd2846b0f2b31947fd/ Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* binutils: backport auto-litpools xtensa gas optionMax Filippov2015-10-041-0/+698
| | | | | | | | | | Auto-litpools is the automated version of text-section-literals: literal pool candidate frags are planted every N frags and during relaxation they are turned into actual literal pools where literals are moved to become reachable for their first reference by L32R instruction. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* binutils: fix xtensa gas segfault with --text-section-literalsMax Filippov2015-07-111-0/+56
| | | | | | | | | | Building libgcc with TARGET_ABI flags results in assembler segfault on xtensa, because code in sections .init and .fini emits literals w/o .literal_position directive. This patch turns the segfault into assembly error. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* binutils: fix xtensa ld bug triggered by --gc-sectionsMax Filippov2015-05-161-0/+57
| | | | | | | | | | | | | | | | | | | | | | | | | elf_xtensa_gc_sweep_hook doesn't correctly unreference symbols that were made local, that results in link failure with the following message: BFD (GNU Binutils) 2.24 internal error, aborting at elf32-xtensa.c line 3372 in elf_xtensa_finish_dynamic_sections elf_xtensa_gc_sweep_hook determines symbol reference type (PLT or GOT) by relocation type. Relocation types are not changed when symbol becomes local, but its PLT references are added to GOT references and plt.refcount is set to 0. Such symbol cannot be unreferences in the elf_xtensa_gc_sweep_hook and its extra references make calculated GOT relocations section size not match number of GOT relocations. Fix it by treating PLT reference as GOT reference when plt.refcount is not positive. Fixes: http://autobuild.buildroot.net/results/3e2e24f697e26c93d4d95782b1cb7799fa620a7a/ http://autobuild.buildroot.org/results/97d4c96d6f6cdc1ed4007456f4ab70be9dfa41b5/ Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* binutils: fix xtensa gas trampolines regressionMax Filippov2015-05-101-9/+8
| | | | | | | | | | | | | | | | | | | | | | | xtensa trampolines relaxation optimization caused the following build errors: Error: operand 1 of 'j' has out of range value '131643' Error: operand 1 of 'j' has out of range value '4294836162' Error: operand 1 of 'j' has out of range value '4294836072' Extra condition 'abs (addr - trampaddr) < J_RANGE / 2' for trampoline selection results in regressions: when relaxable jump is little longer than J_RANGE so that single trampoline makes two new jumps, one longer than J_RANGE / 2 and one shorter, correct trampoline cannot be found. Drop that condition. Upstream status: patch submitted. Fix squashed into the optimization patch. Fixes: http://autobuild.buildroot.net/results/5ba7d18262ce6a2dfd69db07d064a971267f1128/ Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* binutils: backport xtensa trampolines relaxation optimizationMax Filippov2015-05-051-0/+346
| | | | | | | | This optimization alone reduces gnuradio build time for xtensa from 2 hours to 40 minutes. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* binutils: backport xtensa ld optimizationsMax Filippov2015-04-094-0/+1830
| | | | | | | | | | | | This series optimizes most time-consuming algorithms and data structures in the xtensa link-time relaxation code, leaving relaxation logic intact. Speedup linking typical linux kernel is ~8 times (1 minute instead of 8), pathological cases (linking objects partially linked without relaxation) are handled ~60 times faster (1 minute instead of an hour). Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* binutils/2.24: add patch to warn about unsafe library pathsThomas Petazzoni2014-12-111-0/+279
| | | | | | | | | | | | | | | | This commit adds a patch to binutils borrowed from CodeSourcery/Yocto that warns about unsafe library paths (i.e /usr/lib, /usr/local/lib, etc.). The patch was adapted to binutils 2.24, and modified to support the BR_COMPILER_PARANOID_UNSAFE_PATH environment variable to error out instead of just warn when unsafe paths are used. Even though erroring out can be chosen by passing --error-poison-system-directories, we are not sure this option in LDFLAGS will always be passed, so having an environment variable guarantees it will always be passed, and also allows to have an identical behavior to the external toolchain wrapper. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Tested-by: Romain Naour <romain.naour@openwide.fr>
* binutils: fix xtensa trampolines search code for conditional branchesMax Filippov2014-11-261-0/+90
| | | | | | | | | | | | | | This fixes the following build errors seen when assembling huge files produced by gcc: Error: jump target out of range; no usable trampoline found Error: operand 1 of 'j' has out of range value '307307' Fixes: http://autobuild.buildroot.net/results/545/545168d9caf3bdb3dd3eb3bae58ba9db8a33384a/ Backported from: d92b6eece424f0ad35d96fdd85bf207295e8c4c3 Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* binutils: fix 'call8: call target out of range' xtensa ld bugMax Filippov2014-09-231-0/+79
| | | | | | | | | | | | | | | | | | | | | | This fixes the following linux kernel build errors: LD init/built-in.o net/built-in.o: In function `raw_proc_exit': (.init.text+0xe29): dangerous relocation: call8: call target out of range: udp_proc_register net/built-in.o: In function `udp_table_init': (.init.text+0xf09): dangerous relocation: call8: call target out of range: udp_proc_register net/built-in.o: In function `inet_init': af_inet.c:(.init.text+0x142e): dangerous relocation: call8: call target out of range: udp4_proc_exit net/built-in.o: In function `ip_auto_config': ipconfig.c:(.init.text+0x28aa): dangerous relocation: call8: call target out of range: arp_send Backported from: 331ed1307b93d3ff77d248bdf2f7b79a20851457 Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* binutils: fix xtensa ld segfault on linking linux modulesMax Filippov2014-07-121-0/+47
| | | | | | | | | | | | | | | This fixes the following build error reproducible with any linux kernel module built with a recent buildroot toolchain: LD [M] fs/jbd2/jbd2.ko /bin/sh: line 1: 12069 Segmentation fault buildroot/host/usr/bin/xtensa-buildroot-linux-uclibc-ld -r --no-relax -T linux/scripts/module-common.lds --build-id -o fs/jbd2/jbd2.ko fs/jbd2/jbd2.o fs/jbd2/jbd2.mod.o Backported from: e7d17e71cdc10a2e81e454ce3b9637f1b2a587f2 Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* binutils: add patch to fix AArch64 glibc build issueThomas Petazzoni2014-05-161-0/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The autobuilders are not able to build glibc on AArch64 since we moved to the internal toolchain backend as the default for AArch64. The reason is that the cross-ld segfaults while linking of the glibc utilities. Unfortunately, the issue has so far been impossible to reproduce outside of the autobuilder CI loop itself: even on the same machine, in the same chroot, the issue does not appear. Today, Will Newton helped me analyze a bit further the problem. In the logs of the build machine, we have found that the following segfault notification matched the dates of the autobuilder failures: /var/log/syslog:May 15 10:39:20 sd-56966 kernel: [767023.832598] ld[6846]: segfault at 1b2c002 ip 00000000004caf80 sp 00007fffaa308df8 error 4 in ld[400000+1b9000] /var/log/syslog.2.gz:May 13 07:58:24 sd-56966 kernel: [585094.434264] ld[17761]: segfault at 154b002 ip 00000000004caf80 sp 00007fff0d400168 error 4 in ld[400000+1b9000] /var/log/syslog.3.gz:May 12 20:24:08 sd-56966 kernel: [543558.227915] ld[14841]: segfault at 2706002 ip 00000000004caf80 sp 00007fffc08d41c8 error 4 in ld[400000+1b9000] /var/log/syslog.4.gz:May 11 19:51:59 sd-56966 kernel: [455484.523033] ld[50162]: segfault at 1f00002 ip 00000000004caf80 sp 00007fff14a02328 error 4 in ld[400000+1b9000] /var/log/syslog.4.gz:May 12 05:13:37 sd-56966 kernel: [489085.120089] ld[32067]: segfault at 2430002 ip 00000000004caf80 sp 00007fffc448db48 error 4 in ld[400000+1b9000] /var/log/syslog.6.gz:May 9 15:20:38 sd-56966 kernel: [266948.197141] ld[13483]: segfault at ff0002 ip 00000000004caf80 sp 00007fff7e4fe948 error 4 in ld[400000+1b9000] /var/log/syslog.7.gz:May 8 16:45:08 sd-56966 kernel: [185853.688607] ld[1757]: segfault at 20b1002 ip 00000000004caf80 sp 00007fffd07d5ae8 error 4 in ld[400000+1b9000] See http://autobuild.buildroot.org/?reason=glibc-2.18-svnr23787&arch=aarch64 for the autobuilder results. So, the segfault always happens while accessing an address 2 bytes after the beginning of a page: it looks like a buffer overflow, which gets triggered because the object is placed towards the end of the previous page, and crosses over the next, unallocated page. Moreover, we looked at the 0x4caf80 address in an AArch64 cross-ld built by Buildroot, and it turns out that it is part of the iterative_hash() function. This nicely correlates with the patch that Will Newton had pointed in http://lists.busybox.net/pipermail/buildroot/2014-May/095881.html as a fix for invalid memory accesses reported by Valgrind in the AArch64 cross-ld, specifically around the same area of 'ld'. Therefore, even though we have not been able to reproduce the issue outside of the autobuilders, and cannot confirm that the patch is fixing the issue, I propose to integrate this binutils patch into Buildroot. It is anyway an upstream binutils patch, which fixes a real problem. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* binutils: backport R_XTENSA_DIFF* relocation signedness fixMax Filippov2014-05-121-0/+133
| | | | | | | | | | | | | | | | | This fixes the following build errors: qlatincodec.o:(.debug_line+0xcd7): dangerous relocation: overflow after relaxation qmetaobject.o:(.debug_frame+0xa89): dangerous relocation: overflow after relaxation Fixes: http://autobuild.buildroot.net/results/f51/f51c87ae3c883cc36b06c0741999b52e48e4c943/ http://autobuild.buildroot.net/results/bcb/bcbf25e4054911a7a192bdb5c92e0ebd50e9666c/ http://autobuild.buildroot.net/results/8a8/8a8a0f8cca293ce1f383421ba8b1223b4266e3bc/ http://autobuild.buildroot.net/results/a54/a54f3707781dc193292eda7d1723fce6487d6980/ Backported from: 1058c7532d0b012ac329219264ddad59049fb6e6 Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* binutils: backport first section frag alignment fix for xtensa gasMax Filippov2014-05-121-0/+51
| | | | | | | | | | | This fixes the following build error often seen during linux kernel linking step with relaxation enabled: dangerous relocation: call8: misaligned call target: (.text.unlikely+0x63) Backported from: a35d5e823fdfe8a6e7e05ca8e3fb8bb5697335b1 Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* binutils: drop *.texi* hunks from xtensa trampolines patchesMax Filippov2014-04-051-131/+0
| | | | | | | | | | Rebuilding as.info with makeinfo version 5.2 results in a build error, even with pristine binutils source. Dropping hunks that change *.texi* files avoids documentation rebuild. Reported-by: Vincent Stehlé <vincent.stehle@freescale.com> Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* binutils: backport gas xtensa jump trampolinesMax Filippov2014-04-031-0/+977
| | | | | | | | | | | | | | | This fixes compilation of huge source files that have jumps with offsets greater than 128 Kbytes, that otherwise fails with such messages: {standard input}:65267: Error: operand 1 of 'j' has out of range value '131089' {standard input}:106879: Error: operand 1 of 'j' has out of range value '4294833951' Fixes: http://autobuild.buildroot.net/results/e45/e450d5efc7435035c956bb962d598837648f319d/ Backported from: a82c7d9030b67a6a76a5403d0e1641f9e42141ac Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* binutils: add upstream patch to fix --enable-install-libiberty flagArnout Vandecappelle2014-02-231-0/+46
| | | | | | | | | | | | | Fixes http://autobuild.buildroot.org/results/1ea/1ea98985ce06dc1b7569ef5abe2fc13090fb5f3a The upstream patch patches both configure.ac and configure, so we keep that. It is numbered 001 because it is an upstream patch, so it should come before the buildroot patches. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* binutils: add version 2.24Gustavo Zacarias2013-12-044-0/+111
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
OpenPOWER on IntegriCloud