[Buildroot] Analysis of build results for 2017-02-13
Bernd Kuhls
bernd.kuhls at t-online.de
Thu Feb 16 20:34:14 UTC 2017
Hi Thomas,
Am Tue, 14 Feb 2017 14:27:25 +0100 schrieb Thomas Petazzoni:
>> i586 | libcec-4.0.2 | NOK | http://
autobuild.buildroot.net/results/95bbcebc8768d1be026a83d9437a9b206b94df20
>
> /usr/lib32/libstdc++.so.6: undefined reference to
`__towlower_l at GLIBC_2.1'
> /usr/lib32/libstdc++.so.6: undefined reference to `wmemchr at GLIBC_2.0'
> /usr/lib32/libstdc++.so.6: undefined reference to `fputs at GLIBC_2.0'
>
> It's incorrectly picking some host libraries, which is wrong. Bernd,
> you did the bump of libcec, could you fix this?
I think I found the reason but I have no idea to fix it, sorry.
libcec-4.0.2/CMakeCache.txt contains these lines:
p8-platform_DIR:PATH=/home/bernd/buildroot/buildroot/output/host/usr/i586-
buildroot-linux-musl/sysroot/usr/lib32/p8-platform
This CMake build step
[ 97%] Linking C executable cecc-client
is done by using these commands:
/home/buildroot/buildroot/output/host/usr/bin/i586-linux-gcc --sysroot=/
home/buildroot/buildroot/output/host/usr/i586-buildroot-linux-musl/
sysroot -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -
Os -DNDEBUG CMakeFiles/cecc-client.dir/cecc-client.c.o -o cecc-
client-4.0.2 -Wl,-rpath,/usr/lib32: -rdynamic /home/bernd/buildroot/
buildroot/output/host/usr/i586-buildroot-linux-musl/sysroot/usr/lib32/
libp8-platform.so -ldl
"-Wl,-rpath,/usr/lib32" is the reason for the linking error, imho.
Now the interesting solution:
$ cd /home/buildroot/buildroot/output/host/usr/i586-buildroot-linux-musl/
sysroot/usr/
$ LC_ALL=C ls -la
total 24
drwxr-xr-x 6 buildroot buildroot 4096 Feb 16 21:27 .
drwxr-xr-x 6 buildroot buildroot 4096 Feb 16 21:24 ..
drwxr-xr-x 2 buildroot buildroot 4096 Dec 3 16:55 bin
drwxr-xr-x 20 buildroot buildroot 4096 Feb 16 21:24 include
drwxr-xr-x 4 buildroot buildroot 4096 Feb 16 21:24 lib
lrwxrwxrwx 1 buildroot buildroot 3 Dec 3 16:55 lib32 -> lib
drwxr-xr-x 2 buildroot buildroot 4096 Dec 3 16:55 sbin
$ rm lib32
Now building libcec will work, most likely because the value of p8-
platform_DIR changed:
p8-platform_DIR:PATH=/home/bernd/buildroot/buildroot/output/host/usr/i586-
buildroot-linux-musl/sysroot/usr/lib/p8-platform
Regards, Bernd
More information about the buildroot
mailing list