kumquat-buildroot/toolchain
Thomas Petazzoni b3cc7e65ee toolchain/helpers.mk: re-evaluate DESTDIR in copy_toolchain_lib_root
copy_toolchain_lib_root copies libraries from staging to target,
resolving and copying symbolic links along the way.

The most inner loop, a "while" loop, starts from an initial name, and
if it's a symbolic link, gets resolved to the target, and the loop
iterates until we reach a real file. However, the destination folder
where the symbolic link or real file is created is computed in DESTDIR
only once, before this loop starts. Therefore, this loop works fine
when all symbolic links in the chain, and the real file all belong to
the same directory. But it doesn't do the correct thing when the
symbolic link and/or real file are in different folder.

An example is Crosstool-NG musl toolchains, where the dynamic loader
is in /lib/ld-musl*.so but points to ../usr/lib/libc.so. With the
current logic, we copy /lib/ld-musl*.so to /lib, but we also copy
libc.so to /lib instead of the expected /usr/lib.

This currently doesn't cause any problem because the musl dynamic
linker is manually created by the TOOLCHAIN_EXTERNAL_MUSL_LD_LINK
hook. However, this logic has a number of problems, so in a followup
commit, we are going to put the musl dynamic linker in
TOOLCHAIN_EXTERNAL_LIBS, which will cause it to be copied by
copy_toolchain_lib_root. But we obviously want the link and its target
to be copied to the right place, hence this fix.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-07-05 12:20:05 +02:00
..
toolchain pkg-cmake: move configuration files out of $(HOST_DIR)/usr 2017-07-05 11:50:14 +02:00
toolchain-buildroot glibc: remove version choice 2017-06-24 17:42:50 +02:00
toolchain-external Eliminate $(HOST_DIR)/usr 2017-07-05 11:45:35 +02:00
Config.in toolchain: introduce BR2_TOOLCHAIN_HAS_FULL_GETTEXT 2017-07-04 19:09:50 +02:00
helpers.mk toolchain/helpers.mk: re-evaluate DESTDIR in copy_toolchain_lib_root 2017-07-05 12:20:05 +02:00
toolchain-common.in toolchain: drop BR2_NEEDS_GETTEXT{,_IF_LOCALE} 2017-07-05 01:37:35 +02:00
toolchain-wrapper.c Eliminate $(HOST_DIR)/usr 2017-07-05 11:45:35 +02:00
toolchain-wrapper.mk
toolchain.mk