<feed xmlns='http://www.w3.org/2005/Atom'>
<title>buildroot/package/binutils/2.24, branch 2016.02</title>
<subtitle>OpenPOWER buildroot sources</subtitle>
<id>https://git.raptorcs.com/git/buildroot/atom?h=2016.02</id>
<link rel='self' href='https://git.raptorcs.com/git/buildroot/atom?h=2016.02'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/'/>
<updated>2016-02-18T14:07:43+00:00</updated>
<entry>
<title>binutils: fix .init/.fini literals moving in xtensa gas</title>
<updated>2016-02-18T14:07:43+00:00</updated>
<author>
<name>Max Filippov</name>
<email>jcmvbkbc@gmail.com</email>
</author>
<published>2016-02-17T21:50:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=ff9782423624759c38fbefc35ccdd5070cdee43d'/>
<id>urn:sha1:ff9782423624759c38fbefc35ccdd5070cdee43d</id>
<content type='text'>
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 &lt;mail@waldemar-brodkorb.de&gt;
Signed-off-by: Max Filippov &lt;jcmvbkbc@gmail.com&gt;
Signed-off-by: Peter Korsgaard &lt;peter@korsgaard.com&gt;
</content>
</entry>
<entry>
<title>binutils: fix .loc processing in xtensa gas</title>
<updated>2016-02-03T22:17:01+00:00</updated>
<author>
<name>Max Filippov</name>
<email>jcmvbkbc@gmail.com</email>
</author>
<published>2016-02-03T09:33:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=7eafaa6f72bba5543c11177c5fe4845196c222fc'/>
<id>urn:sha1:7eafaa6f72bba5543c11177c5fe4845196c222fc</id>
<content type='text'>
Fixes:
  http://autobuild.buildroot.net/results/bff7436a800eeea92c0c92bd2846b0f2b31947fd/

Signed-off-by: Max Filippov &lt;jcmvbkbc@gmail.com&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>binutils: backport auto-litpools xtensa gas option</title>
<updated>2015-10-04T16:27:27+00:00</updated>
<author>
<name>Max Filippov</name>
<email>jcmvbkbc@gmail.com</email>
</author>
<published>2015-08-12T22:20:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=e0ae34b02943cc3d218ec4a489809c4848546a8c'/>
<id>urn:sha1:e0ae34b02943cc3d218ec4a489809c4848546a8c</id>
<content type='text'>
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 &lt;jcmvbkbc@gmail.com&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>binutils: fix xtensa gas segfault with --text-section-literals</title>
<updated>2015-07-11T10:33:13+00:00</updated>
<author>
<name>Max Filippov</name>
<email>jcmvbkbc@gmail.com</email>
</author>
<published>2015-05-26T08:24:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=c7e1c58fac893943d7679cc2905dab555f8d4c73'/>
<id>urn:sha1:c7e1c58fac893943d7679cc2905dab555f8d4c73</id>
<content type='text'>
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 &lt;jcmvbkbc@gmail.com&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>binutils: fix xtensa ld bug triggered by --gc-sections</title>
<updated>2015-05-16T16:28:06+00:00</updated>
<author>
<name>Max Filippov</name>
<email>jcmvbkbc@gmail.com</email>
</author>
<published>2015-05-14T04:38:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=384c919321a53bdb74539cd1c8e0f098e49e8f8e'/>
<id>urn:sha1:384c919321a53bdb74539cd1c8e0f098e49e8f8e</id>
<content type='text'>
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 &lt;jcmvbkbc@gmail.com&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>binutils: fix xtensa gas trampolines regression</title>
<updated>2015-05-10T21:08:54+00:00</updated>
<author>
<name>Max Filippov</name>
<email>jcmvbkbc@gmail.com</email>
</author>
<published>2015-05-10T13:43:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=af863a3bc0d3528031cad59dbf8a981f030d4be8'/>
<id>urn:sha1:af863a3bc0d3528031cad59dbf8a981f030d4be8</id>
<content type='text'>
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) &lt; 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 &lt;jcmvbkbc@gmail.com&gt;
Signed-off-by: Peter Korsgaard &lt;peter@korsgaard.com&gt;
</content>
</entry>
<entry>
<title>binutils: backport xtensa trampolines relaxation optimization</title>
<updated>2015-05-05T20:44:47+00:00</updated>
<author>
<name>Max Filippov</name>
<email>jcmvbkbc@gmail.com</email>
</author>
<published>2015-05-05T19:57:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=911c5e2dd30e9d96984dfaa03c9b1f3bc95ea2fa'/>
<id>urn:sha1:911c5e2dd30e9d96984dfaa03c9b1f3bc95ea2fa</id>
<content type='text'>
This optimization alone reduces gnuradio build time for xtensa from 2
hours to 40 minutes.

Signed-off-by: Max Filippov &lt;jcmvbkbc@gmail.com&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>binutils: backport xtensa ld optimizations</title>
<updated>2015-04-09T19:52:36+00:00</updated>
<author>
<name>Max Filippov</name>
<email>jcmvbkbc@gmail.com</email>
</author>
<published>2015-04-09T16:55:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=c6d9a92dbd173902b0fccd04ba613dcdce9494f8'/>
<id>urn:sha1:c6d9a92dbd173902b0fccd04ba613dcdce9494f8</id>
<content type='text'>
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 &lt;jcmvbkbc@gmail.com&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>binutils/2.24: add patch to warn about unsafe library paths</title>
<updated>2014-12-10T23:05:52+00:00</updated>
<author>
<name>Thomas Petazzoni</name>
<email>thomas.petazzoni@free-electrons.com</email>
</author>
<published>2014-12-10T22:53:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=48bc113e3f1abbe77ff96b76b2d34e40db7a0206'/>
<id>urn:sha1:48bc113e3f1abbe77ff96b76b2d34e40db7a0206</id>
<content type='text'>
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 &lt;thomas.petazzoni@free-electrons.com&gt;
Tested-by: Romain Naour &lt;romain.naour@openwide.fr&gt;
</content>
</entry>
<entry>
<title>binutils: fix xtensa trampolines search code for conditional branches</title>
<updated>2014-11-26T13:48:25+00:00</updated>
<author>
<name>Max Filippov</name>
<email>jcmvbkbc@gmail.com</email>
</author>
<published>2014-11-26T09:03:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=b20bb0c7b744b10fc875506549924641b79e5309'/>
<id>urn:sha1:b20bb0c7b744b10fc875506549924641b79e5309</id>
<content type='text'>
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 &lt;jcmvbkbc@gmail.com&gt;
Signed-off-by: Peter Korsgaard &lt;peter@korsgaard.com&gt;
</content>
</entry>
</feed>
