ba6bac1383
Normally, the Buildroot toolchain logic copies all required libraries from the external toolchain to the staging directory, including the dynamic loader ld-*.so. There are cases, however, where the dynamic loader is _not_ automatically copied to staging. This happens when the dynamic loader is not inside ARCH_LIB_DIR itself (e.g. lib64), but instead resides in 'lib' (assume, of course, that ARCH_LIB_DIR != 'lib'). Currently, this is fixed in a toolchain-specific fixup, e.g. by recreating a missing symlink or copying over a missing file. Such toolchain specific fixups are not very nice. Moreover, in a subsequent patch, the value of ARCH_LIB_DIR changes for some toolchains, causing them to have the same problem of a missing dynamic loader. This used to be the case for older Linaro toolchains with libraries in 'lib/<tuple>': Buildroot used to set ARCH_LIB_DIR=lib but the mentioned patch changes it to 'lib/<tuple>' instead. As a result, the files directly under 'lib/' will no longer be copied. There should be none, but the dynamic loader is a notable exception. [Note: support for these older Linaro toolchain has been removed in 2016.11] Instead, copy over the ld.so file(s)/link(s) from the extracted toolchain into staging, in the central copy_toolchain_sysroot function. The existing toolchain logic will then handle the copy of these files from staging to target. This means the toolchain-specific fixups can be removed. Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> |
||
---|---|---|
.. | ||
toolchain | ||
toolchain-buildroot | ||
toolchain-external | ||
Config.in | ||
helpers.mk | ||
toolchain-common.in | ||
toolchain-wrapper.c | ||
toolchain-wrapper.mk | ||
toolchain.mk |