]> code.ossystems Code Review - openembedded-core.git/commit
staging: Handle races between binaries and their libs
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 14 Feb 2020 12:50:18 +0000 (12:50 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sat, 15 Feb 2020 10:22:05 +0000 (10:22 +0000)
commit29d17fe23265bf0c7defa14ffc0f677af15c6818
treea02f95550b879e60566d856d20a2ec85738e782f
parent7331062f82d3fa9d9ac69efc2e3cb05a6f120239
staging: Handle races between binaries and their libs

There is a long standing issue where a binary could be installed into the
sysroot before its library dependencies. We've always argued nothing should
use the binary until it has been installed by a dependency but there are issues
around binaries which conflict with the host system, for example patch,
python3, gzip and more.

With the recent patch changes we've seen issues like:
ERROR: gdb-cross-canadian-powerpc-8.3.1-r0 do_patch: Command Error: 'quilt --quiltrc /home/pokybuild/yocto-worker/qemuppc/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/gdb-cross-canadian-powerpc/8.3.1-r0/recipe-sysroot-native/etc/quiltrc push' exited with 0  Output:
Applying patch 0009-Change-order-of-CFLAGS.patch
patch: /lib64/libattr.so.1: version `ATTR_1.3' not found (required by patch)
Patch 0009-Change-order-of-CFLAGS.patch does not apply (enforce with -f)

which is a symptom of this issue (libattr-native is a dependency of patch-native).

There are other ways to fix this such as disabling libattr in patch, installing
patch to a subdirectory and requiring PATH manipulation and so on.

We can simply fix the staging code to handle /bin/ after everything else so
do that and avoid all these other complications.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/staging.bbclass