<feed xmlns='http://www.w3.org/2005/Atom'>
<title>buildroot/toolchain, branch 2016.05</title>
<subtitle>OpenPOWER buildroot sources</subtitle>
<id>https://git.raptorcs.com/git/buildroot/atom?h=2016.05</id>
<link rel='self' href='https://git.raptorcs.com/git/buildroot/atom?h=2016.05'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/'/>
<updated>2016-05-30T20:53:54+00:00</updated>
<entry>
<title>toolchain/helper: don't follow symlinks when copying libs to target</title>
<updated>2016-05-30T20:53:54+00:00</updated>
<author>
<name>Yann E. MORIN</name>
<email>yann.morin.1998@free.fr</email>
</author>
<published>2016-05-29T21:58:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=49648d4b01e8056c294001e80bf4bd487593a5a5'/>
<id>urn:sha1:49648d4b01e8056c294001e80bf4bd487593a5a5</id>
<content type='text'>
In 2a87b64 (toolchain-external: align library locations in target and
staging dir), copying the libraries from the sysroot to the target was
changed to a simple find-based solution.

To be sure that the staging directory was entered to find the libraries,
in case the variable was pointing to a symlink, the -L clause to find
was used.

However, that causes extraneous libraries to be copied over.

For example, a ct-ng toolchain would have this sysroot (e.g for an arm
32-bit toolchain):

    .../sysroot/lib/
    .../sysroot/lib32 -&gt; lib
    .../sysroot/lib64 -&gt; lib
    .../sysroot/usr/lib/
    .../sysroot/usr/lib32 -&gt; lib
    .../sysroot/usr/lib64 -&gt; lib

Which we would carry as-is to our own sysroot.

But then, in target, our skeleton creates the /lib/ and /usr/lib
directories, with the necessary lib32 or lib64 symlink pointing to it.
In this case, a lib32-&gt;lib symlink is created, but no lib64 symlink
since this is a 32-bit architecture.

To copy the required libraries from staging into target, we scan the
staging directory for all occurences of the required libraries, and copy
them over to target, keeping the same directory layout relative to the
sysroot.

For example:
    .../sysroot/usr/lib/libfoo.so   --&gt;  .../target/usr/lib/libfoo.so
    .../sysroot/usr/lib32/libbar.so --&gt;  .../target/usr/lib32/libbar.so
    .../sysroot/usr/lib64/libbuz.so --&gt;  .../target/usr/lib64/libbuz.so

So, when we copy over the libraries from our staging to the target
directory, the "find -L .../sysroot -name libblabla.so.*" would find
multiple instances of libblabla, each in the /usr/lib /usr/lib32 and
/usr/lib64 locations (they are all the exact same file, though).

Since we do have the /usr/lib32-&gt;lib symlink, all is OK (but there are
two copies going on, which could be avoided). However, since we do not
have the /usr/lib64-&gt;lib symlink, the /usr/lib64/ directory is created.

This was very difficult to observe, as no /lib64/ directory is created,
only the /usr/lib64/ one was. To top it off, this only happens with a
merged /usr, which does not seem like not a common case without systemd.

Since the reason to use -L was to be sure to enter our staging
directory, we just need to ensure that the path ends up with a slash, as
was already talked about in this thread:
    http://lists.busybox.net/pipermail/buildroot/2016-April/159737.html

After further discussion, it turns out that the original patch came along
because of the confusion between output/staging (which is a symlink) and
$(STAGING_DIR) which expands to output/host/usr/&lt;tupple&gt;/sysroot (which is
never a symlink), so the symlink handling isn't really needed at all.

[Peter: drop description comment, extend description]
Signed-off-by: "Yann E. MORIN" &lt;yann.morin.1998@free.fr&gt;
Cc: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
Cc: Arnout Vandecappelle &lt;arnout@mind.be&gt;
Cc: Thomas De Schampheleire &lt;patrickdepinguin@gmail.com&gt;
Cc: Peter Korsgaard &lt;peter@korsgaard.com&gt;
Signed-off-by: Peter Korsgaard &lt;peter@korsgaard.com&gt;
</content>
</entry>
<entry>
<title>toolchain-external: correct hash value for Linaro AArch64 toolchain source</title>
<updated>2016-05-24T15:32:47+00:00</updated>
<author>
<name>Clayton Shotwell</name>
<email>clayton.shotwell@rockwellcollins.com</email>
</author>
<published>2016-05-24T14:04:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=9891e5cbfa35c660362c032a06d1270f3ff37479'/>
<id>urn:sha1:9891e5cbfa35c660362c032a06d1270f3ff37479</id>
<content type='text'>
The aarch64 Linaro toolchain source hash is not correct, probably due
to a copy/paste error. The new hash has been verified by downloading
the tarball, validating the signature, and computing the hash.

Signed-off-by: Clayton Shotwell &lt;clayton.shotwell@rockwellcollins.com&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>toolchain: improve SSP logic</title>
<updated>2016-05-23T19:07:24+00:00</updated>
<author>
<name>Vicente Olivert Riera</name>
<email>Vincent.Riera@imgtec.com</email>
</author>
<published>2016-03-15T16:40:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=794935068bf67171dd101c673c3cb4954035a413'/>
<id>urn:sha1:794935068bf67171dd101c673c3cb4954035a413</id>
<content type='text'>
Don't enable SSP support on external toolchains just because they use
glibc or musl. Instead of that, make the external toolchains explictily
declare if they support SSP or not. And also add a check to detect SSP
support when using custom external toolchains.

For internal toolchains we always enable SSP support for glibc and musl.

Fixes:

  http://autobuild.buildroot.net/results/ac7c9b3ad2e52abfe6b79a80045e4218eeb87175/

Signed-off-by: Vicente Olivert Riera &lt;Vincent.Riera@imgtec.com&gt;
[Thomas:
 - remove uClibc-specific SSP check, since there is now a generic
   check being done.
 - send potential compilation errors caused by the SSP check to
   oblivion, in order to avoid causing confusion for the user.
 - add autobuilder reference.]
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>toolchain-external: fix user provided libraries deployment</title>
<updated>2016-05-13T13:05:25+00:00</updated>
<author>
<name>Romain Naour</name>
<email>romain.naour@gmail.com</email>
</author>
<published>2016-05-13T08:41:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=8389b623528016d83c7e54a59fbecdc02c846836'/>
<id>urn:sha1:8389b623528016d83c7e54a59fbecdc02c846836</id>
<content type='text'>
In commit 919b4f9eab3e6dcd18cf9220af2c9bb2ca3e5098 the internal symbol
LIB_EXTERNAL_LIBS was renamed TOOLCHAIN_EXTERNAL_LIBS but the find and
replace command also renamed BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS to
BR2_TOOLCHAIN_EXTRA_TOOLCHAIN_EXTERNAL_LIBS which doesn't exist.

So user provided libraries defined in BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS
are not copied anymore to staging and target directories.

For example:
BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS="libasan.* libubsan.*"

Simply revert this change by renaming
BR2_TOOLCHAIN_EXTRA_TOOLCHAIN_EXTERNAL_LIBS to BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS

Signed-off-by: Romain Naour &lt;romain.naour@gmail.com&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>toolchain-external: fix registration of hook for Sourcery Aarch64 toolchain</title>
<updated>2016-05-08T13:05:14+00:00</updated>
<author>
<name>Thomas Petazzoni</name>
<email>thomas.petazzoni@free-electrons.com</email>
</author>
<published>2016-05-08T13:05:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=60b843edf0b53397b6712a3a3b30bdf9f5ff7237'/>
<id>urn:sha1:60b843edf0b53397b6712a3a3b30bdf9f5ff7237</id>
<content type='text'>
As noticed by Romain Naour, commit
4d39ca1c2ab19766abf0430abe9b65ba0e16602b ("toolchain-external: fix
installation for CodeSourcery AArch64 toolchain") has a small bug where
a post-install hook doing fixups in TARGET_DIR was registered as a
staging installation hook while it should have been registered as a
target installation hook. This commit fixes this inconsistency.

Reported-by: Romain Naour &lt;romain.naour@gmail.com&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>toolchain-external: remove Sourcery PowerPC toolchains</title>
<updated>2016-05-01T13:05:34+00:00</updated>
<author>
<name>Gustavo Zacarias</name>
<email>gustavo@zacarias.com.ar</email>
</author>
<published>2016-04-29T13:18:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=8490e8333d85acae429afb76a1b2403b9aa8d810'/>
<id>urn:sha1:8490e8333d85acae429afb76a1b2403b9aa8d810</id>
<content type='text'>
These are running long on the teeth - the bundled (e)glibc versions
are very old with several security bugs, they don't work reliably with
-Os and have several build failures related to internal compiler
errors such as:

http://autobuild.buildroot.net/results/fe7/fe7bdba5faf199275aedea2918705b5d19d228bf/
http://autobuild.buildroot.net/results/935/935ac42c30ed893939c06c077534f060aed80e9a/
http://autobuild.buildroot.net/results/a47/a476af82c8fe4a279117314b278b08af9a08fe54/
http://autobuild.buildroot.net/results/cae/cae720b5096be2672b4dc1311ae3fc4ed06a3b53/

The situation will not provide, and will in fact get worse with older kernel
headers precluding modern package versions and the old gcc version doing as
well so remove them.

Signed-off-by: Gustavo Zacarias &lt;gustavo@zacarias.com.ar&gt;
Reviewed-by: Romain Naour &lt;romain.naour@gmail.com&gt;
[Thomas:
 - remove no longer needed comment in liquid-dsp Config.in file, as
   noticed by Romain Naour.
 - add Config.in.legacy options, as noticed by Romain Naour.]
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>toolchain-external: bump CodeSourcery MIPS to 2016.06-8</title>
<updated>2016-05-01T12:56:06+00:00</updated>
<author>
<name>Romain Naour</name>
<email>romain.naour@gmail.com</email>
</author>
<published>2016-04-30T21:10:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=230cfce93d2e1840c136972b8b2de523e20fdba9'/>
<id>urn:sha1:230cfce93d2e1840c136972b8b2de523e20fdba9</id>
<content type='text'>
Add hash for the toolchain sources.

Runtime tested with Qemu with qemu_mips_malta_defconfig

Signed-off-by: Romain Naour &lt;romain.naour@gmail.com&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>toolchain-external: bump CodeSourcery AMD64 to 2015.11-139</title>
<updated>2016-05-01T12:46:17+00:00</updated>
<author>
<name>Romain Naour</name>
<email>romain.naour@gmail.com</email>
</author>
<published>2016-04-30T21:10:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=14a75e09b92e164b7f0ca834dde2779e3cb05e03'/>
<id>urn:sha1:14a75e09b92e164b7f0ca834dde2779e3cb05e03</id>
<content type='text'>
&gt;From getting-started.pdf:
- Linker bug fix.
- Fix CVE 2015-7547 getaddrinfo.
- Breakpoint in non-existent file bug fix.

Signed-off-by: Romain Naour &lt;romain.naour@gmail.com&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>toolchain-external: bump CodeSourcery NiosII to 2015.11-130</title>
<updated>2016-05-01T12:46:06+00:00</updated>
<author>
<name>Romain Naour</name>
<email>romain.naour@gmail.com</email>
</author>
<published>2016-04-30T19:41:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=8ed38d8b4b67ff15f672a8489a9b17c7384a1feb'/>
<id>urn:sha1:8ed38d8b4b67ff15f672a8489a9b17c7384a1feb</id>
<content type='text'>
&gt;From getting-started.pdf:
- DWARF signed LEB128 encoding fix
- Fix CVE 2015-7547 getaddrinfo
- Breakpoint in non-existent file bug fix

Signed-off-by: Romain Naour &lt;romain.naour@gmail.com&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>toolchain-external: add GCC 6.x option</title>
<updated>2016-05-01T12:41:47+00:00</updated>
<author>
<name>Jörg Krause</name>
<email>joerg.krause@embedded.rocks</email>
</author>
<published>2016-05-01T07:29:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=8f972c2aeda83dfeae8b5e7c66ffaa8e5d8a9361'/>
<id>urn:sha1:8f972c2aeda83dfeae8b5e7c66ffaa8e5d8a9361</id>
<content type='text'>
Commit 519d83bfa0442439026db4e71e605a5c1347e566 adds support for GCC
6. Add an GCC 6.x option for external toolchains, too.

Signed-off-by: Jörg Krause &lt;joerg.krause@embedded.rocks&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
</feed>
