This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/AM3358: Yocto build issues

Part Number: AM3358


Tool/software: Linux

Hi,

We are using Rocko build for our am335x starter kit. While building core-image-minimal (rootfs) we are facing a strange problem, some of the libs we have included are getting build but the version appended to libs names are not proper, as show in the examples below.

1) Building eventlog

  • BB file: "./sources/meta-openembedded/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb"
  • Lib formed after compiling (under rootfs folder)

sudo find . -name "*evt*"
./usr/lib/libevtlog.so.0.0.0
./usr/lib/libevtlog.so.0

ls -l ./usr/lib/libevtlog.so*
lrwxrwxrwx 1 root root 18 Aug 6 15:36 ./usr/lib/libevtlog.so.0 -> libevtlog.so.0.0.0
-rwxr-xr-x 1 root root 13840 Aug 6 15:36 ./usr/lib/libevtlog.so.0.0.0

Here the version number appended after libevtlog.so under "./usr/lib/" is 0.0.0 instead of 0.2.13 which is the version number of the package as described by BB file eventlog_0.2.13.bb.

2) Building libffi

  • BB file: "./sources/oe-core/meta/recipes-support/libffi/libffi_3.2.1.bb"
  • Lib formed after compiling (under rootfs folder)

sudo find . -name "*libffi*"
./usr/lib/libffi.so.6.0.4
./usr/lib/libffi.so.6

ls -l ./usr/lib/libffi.so*
lrwxrwxrwx 1 root root 15 Jul 23 12:18 ./usr/lib/libffi.so.6 -> libffi.so.6.0.4
-rwxr-xr-x 1 root root 26220 Jul 23 12:18 ./usr/lib/libffi.so.6.0.4

Here the version number appended after libffi.so under "./usr/lib/" is 6.0.4 instead of 3.2.1 which is the version number of the package as described by BB file libffi_3.2.1.bb.

3) Building libgcrypt

  • BB file: "./sources/oe-core/meta/recipes-support/libgcrypt/libgcrypt_1.8.0.bb"
  • Lib formed after compiling under rootfs

sudo find . -name "*gcrypt*"
./usr/lib/libgcrypt.so.20
./usr/lib/libgcrypt.so.20.2.0

ls -l ./usr/lib/libgcrypt.so*
lrwxrwxrwx 1 root root 19 Aug 6 20:24 ./usr/lib/libgcrypt.so.20 -> libgcrypt.so.20.2.0
-rwxr-xr-x 1 root root 803960 Aug 6 20:24 ./usr/lib/libgcrypt.so.20.2.0

Here the version number appended after libgcrypt.so under "./usr/lib/" is 20.2.0 instead of 1.8.0 which is the version number of the package as described by BB file libgcrypt_1.8.0.bb.

4) Building opkg

  • BB file: "./sources/oe-core/meta/recipes-devtools/opkg/opkg_0.3.5.bb"
  • Lib formed after compiling under rootfs

sudo find . -name "*opkg*"
./usr/bin/opkg-check-config
./usr/bin/opkg
./usr/share/opkg
./usr/lib/libopkg.so.1
./usr/lib/libopkg.so.1.0.0
./usr/lib/opkg
./var/lib/opkg
./var/cache/opkg
./lib/systemd/system/opkg-configure.service
./etc/opkg
./etc/opkg/opkg.conf

ls -l ./usr/lib/libopkg.so*
lrwxrwxrwx 1 root root 16 Aug 9 14:46 ./usr/lib/libopkg.so.1 -> libopkg.so.1.0.0
-rwxr-xr-x 1 root root 143316 Aug 9 14:46 ./usr/lib/libopkg.so.1.0.0

Here the version number appended after libopkg.so under "./usr/lib/" is 1.0.0 instead of 0.3.5 which is the version number of the package as described by BB file opkg_0.3.5.bb.

5) Building libarchive

  • BB file: "./sources/oe-core/meta/recipes-extended/libarchive/libarchive_3.3.2.bb"
  • Lib formed after compiling under rootfs

sudo find . -name "*libarchive*"
./usr/lib/libarchive.so.13
./usr/lib/libarchive.so.13.3.2

ls -l ./usr/lib/libarchive.so*
lrwxrwxrwx 1 root root 20 Aug 3 15:09 ./usr/lib/libarchive.so.13 -> libarchive.so.13.3.2
-rwxr-xr-x 1 root root 568860 Aug 3 15:09 ./usr/lib/libarchive.so.13.3.2

Here the version number appended after libarchive.so under "./usr/lib/" is 3.3.2 which is same as that of 3.3.2 version number of the package as described by BB file libarchive_3.3.2.bb.

In all of the above examples from number 1 to 4 the name of shared object files has a version number not matching the version number of BB files. We have tried to use LEAD_SONAME and DEBIANNAME_${PN} variables in related BB files but still we didn't get the desired versions appended to the libs created.

For example we want the following output (similar to that of example 5)

For Building eventlog

  • BB file: "./sources/meta-openembedded/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb"
  • Lib formed after compiling under rootfs should be as follows

sudo find . -name "*evt*"
./usr/lib/libevtlog.so.0.2.13
./usr/lib/libevtlog.so.0

ls -l ./usr/lib/libevtlog.so*
lrwxrwxrwx 1 root root 18 Aug 6 15:36 ./usr/lib/libevtlog.so.0 -> libevtlog.so.0.2.13
-rwxr-xr-x 1 root root 13840 Aug 6 15:36 ./usr/lib/libevtlog.so.0.2.13

As described above, one can notice that what we need is that the version appended after libevtlog.so (libevtlog.so.0.2.13) in "./usr/lib/" is same as that of the version of the BB file eventlog_0.2.13.bb. We are unable to achieve this. Let us know what are we missing for the same.

Regards,
Sunny