Fixed
Created: Jun 13, 2014
Updated: Mar 31, 2016
Resolved Date: Jun 24, 2014
Found In Version: 7.0
Fix Version: 7.0
Severity: Standard
Applicable for: Wind River Linux 7
Component/s: Build & Config
As part of the "do_rootfs" step of an image build, ldconfig is run to update the /etc/ld.so.cache file.
This works good for a 32-bit build, but for a 64bit it produces an almost empty file.
This is because ldconfig is only looking in /lib and /usr/lib, but for 64bit builds the libraries are in /lib64 and /usr/lib64.
This causes problems for example when libraries or application uses dlopen.
libc is one such case that will fail in some cases when it cannot find a shared library.
For majority of programs this will not be noticed, but never the less it does cause problems.
( The code that calls ldconfig is in oe-core/meta/classes/image.bbclass)
After booting the target a 'ldconfig' will correctly create the cache.
Build a 32bit image and look at the size of /etc/ld.so.cache (also see in the do_rootfs bitbake log file) to see that it indeed is looking good.
Do the same for a 64bit build and see that the file is more or less empty.
(Seen comparing inte-xeon-core to a p4080 32bit build, but also just comparing inte-xeon-core 32 <> 64bit)
Ex:
configure --enable-board=intel-xeon-core --enable-kernel=standard --enable-rootfs=glibc_small
configure --enable-board=intel-xeon-core-32 --enable-kernel=standard --enable-rootfs=glibc_small