toolchain: detect external glibc in merged /usr
authorCam Hutchison <camh@xdna.net>
Sun, 3 Sep 2017 21:00:43 +0000 (07:00 +1000)
committerArnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Tue, 19 Sep 2017 20:43:10 +0000 (22:43 +0200)
When using an external toolchain that was built with Buildroot and a
merged /usr, the dynamic linker is actually in /usr/lib.

But the check_glibc macro limits the depth it is looking for the dynamic
linker, and misses it when it is in /usr/lib because it is too deep.

We could fix that in two ways: increase the depth in which we look
for it, or follow symlinks. We choose the second solution.

Signed-off-by: Cam Hutchison <camh@xdna.net>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Cc: "Yann E. MORIN" <yann.morin.1998@free.fr>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
toolchain/helpers.mk

index e9e36d2069afe70d80d1dfa49b7fcff6c84269b3..63ef6fb4b07ef16ef9315c32dcd75b9f0c14163e 100644 (file)
@@ -227,7 +227,7 @@ check_glibc_rpc_feature = \
 #
 check_glibc = \
        SYSROOT_DIR="$(strip $1)"; \
-       if test `find $${SYSROOT_DIR}/ -maxdepth 2 -name 'ld-linux*.so.*' -o -name 'ld.so.*' -o -name 'ld64.so.*' | wc -l` -eq 0 ; then \
+       if test `find -L $${SYSROOT_DIR}/ -maxdepth 2 -name 'ld-linux*.so.*' -o -name 'ld.so.*' -o -name 'ld64.so.*' | wc -l` -eq 0 ; then \
                echo "Incorrect selection of the C library"; \
                exit -1; \
        fi; \