Yocto - Files/directories were installed but not shipped in any package
Andrew Mclaughlin
I'm using Yocto to install clBLAS library () using the recipe
But I'm getting the below warning everytime & .so file is not present in the built image.
WARNING: QA Issue: clblas: Files/directories were installed but not shipped in any package: /usr/lib /usr/lib/libclBLAS.so.2.12.0 /usr/lib/libclBLAS.so.2 /usr/lib/libclBLAS.so /usr/lib/.debug /usr/lib/pkgconfig /usr/lib/cmake /usr/lib/.debug/libclBLAS.so.2.12.0 /usr/lib/pkgconfig/clBLAS.pc /usr/lib/cmake/clBLAS /usr/lib/cmake/clBLAS/clBLASTargets-debug.cmake /usr/lib/cmake/clBLAS/clBLASConfigVersion.cmake /usr/lib/cmake/clBLAS/clBLASTargets.cmake /usr/lib/cmake/clBLAS/clBLASConfig.cmake
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
clblas: 14 installed and not shipped files. [installed-vs-shipped]How to overcome this warning & make the .so file present in the target's /usr/lib folder?
3 Answers
Add below lines to your clblas_git.bb
FILES_${PN} += "${libdir}/*" FILES_${PN}-dev = "${libdir}/* ${includedir}"For good explanation you will get it here
3If you are using new version of yocto this will help:
FILES:${PN} ="name of the dirs is not shipping";In old versions it is FILES_${PN}.
The problem is that multilib is not considered correctly during build, looking at cmake files in clBLAS, its using CMake variable for constructing multilib path SUFFIX_LIB and yocto recipe is setting it to be empty here however its not encoding the yocto logic for multilib paths. A potential fix would be in recipe as below
--- clblas_git.bb.org 2019-12-07 12:41:56.784649031 -0800
+++ clblas_git.bb 2019-12-07 12:42:25.317982206 -0800
@@ -16,7 +16,7 @@ S = "${WORKDIR}/git/src"
inherit cmake pythonnative
-EXTRA_OECMAKE += "-DSUFFIX_LIB= -DUSE_SYSTEM_GTEST=ON -DBUILD_TEST=OFF -DPREBUILT_CLT_PATH=${WORKDIR}/clt"
+EXTRA_OECMAKE += "-DSUFFIX_LIB=${@d.getVar('baselib', True).replace('lib', '')} -DUSE_SYSTEM_GTEST=ON -DBUILD_TEST=OFF -DPREBUILT_CLT_PATH=${WORKDIR}/clt"
DEPENDS += "virtual/opencl"