]> code.ossystems Code Review - openembedded-core.git/commit
binutils: apply RPATH fixes from our libtool patches
authorRoss Burton <ross.burton@intel.com>
Mon, 3 Oct 2016 14:16:32 +0000 (15:16 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 18 May 2017 12:13:33 +0000 (13:13 +0100)
commit29ddf96f8db2ac8d1aabbac21514ab3865603dcd
tree5b5e00d28a46fa384a0baf1fb288276f331f5cfc
parent6470e50928ad330a76442541ec5d864701c7fc68
binutils: apply RPATH fixes from our libtool patches

We don't autoreconf/libtoolize binutils as it has very strict requirements, so
extend our patching of the stock libtool to include two fixes to RPATH
behaviour, as part of the solution to ensure that native binaries don't have
RPATHs pointing at the host system's /usr/lib.

This generally doesn't cause a problem but it can cause some binaries (such as
ar) to abort on startup:

./x86_64-pokysdk-linux-ar: relocation error: /usr/lib/libc.so.6: symbol
_dl_starting_up, version GLIBC_PRIVATE not defined in file ld-linux.so.2 with
link time reference

The situation here is that ar is built and as it links to the host libc/loader
has an RPATH for /usr/lib.  If tmp is wiped and then binutils is installed from
sstate relocation occurs and the loader changed to the sysroot, but there
remains a RPATH for /usr/lib.  This means that the sysroot loader is used with
the host libc, which can be incompatible.  By telling libtool that the host
library paths are in the default search path, and ensuring that all default
search paths are not added as RPATHs by libtool, the result is a binary that
links to what it should be linking to and nothing else.

[ YOCTO #9287 ]

(From OE-Core rev: 6b201081b622cc083cc2b1a8ad99d6f7d2bea480)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
meta/recipes-devtools/binutils/binutils-2.26.inc
meta/recipes-devtools/binutils/binutils/0014-libtool-remove-rpath.patch [new file with mode: 0644]