GCNANO-USERLAND: add symlinks to shared libs in /usr/lib for SDK usage

When gcnano-userland libs are installed on /vendor/lib folder, we are not
able to link them under SDK.
Add additional symlinks to these shared libs into /usr/lib to fix linking
issue under SDK.

Signed-off-by: Romuald JEANNE <romuald.jeanne@st.com>
Change-Id: Ibac80cd9924487d917cd4bab44c98edd3db3f7ed
This commit is contained in:
Romuald JEANNE
2022-06-23 11:53:41 +02:00
committed by bernard PUEL
parent d00d3a076e
commit 965e27650a

View File

@ -155,6 +155,29 @@ do_install() {
"${B}/${GCNANO_FLAVOUR}/include" "${D}${includedir}" \
"${B}/pkgconfig" "${D}${libdir}/pkgconfig"
# Manage creation of additional symlinks to solve missing libs issue on SDK side
# when GCNANO_USERLAND_OUTPUT_LIBDIR differs from libdir
if [ "${GCNANO_USERLAND_OUTPUT_LIBDIR}" != "${libdir}" ]; then
bbnote "Create symlinks to shared libs in ${libdir} folder (mandatory for SDK)"
# Init relative path for symlinks
relative_path=$(realpath -m --relative-to=${D}/${libdir} ${D}${GCNANO_USERLAND_OUTPUT_LIBDIR})
# Move to libdir for symlinks
cwd=${PWD}
cd "${D}${libdir}"
for sharelib in $(find ${D}${GCNANO_USERLAND_OUTPUT_LIBDIR}/* -type f -name "*.so*"); do
# Get SONAME
link_name=$(objdump -x ${sharelib} 2>/dev/null | grep SONAME | awk -F' ' '{print $NF}')
sharelib_name=$(basename ${sharelib})
# Create symlink
if [ -e "${relative_path}/${sharelib_name}" ]; then
ln -sf ${relative_path}/${sharelib_name} ${link_name}
else
bbnote "Not able to find share lib: ${relative_path}/${sharelib_name}. No symlink created in ${libdir}."
fi
done
cd "${PWD}"
fi
if [ -s "${B}/${GCNANO_USERLAND_LDCONF}" ]; then
install -d ${D}${sysconfdir}/ld.so.conf.d/
install -m 0644 "${B}/${GCNANO_USERLAND_LDCONF}" ${D}${sysconfdir}/ld.so.conf.d/
@ -164,6 +187,8 @@ do_install() {
# Manage install for gcnano-userland libs into specific folder for sysroot as well
gcnano_sysroot() {
if [ "${GCNANO_USERLAND_OUTPUT_LIBDIR}" != "${libdir}" ]; then
# Cleanup targeted folder from unexpected symlinks
rm -f $(find ${SYSROOT_DESTDIR}${libdir}/* -type l -name "*.so*")
install -d ${SYSROOT_DESTDIR}${libdir}
cp -aR ${D}${GCNANO_USERLAND_OUTPUT_LIBDIR}/* ${SYSROOT_DESTDIR}${libdir}/
fi
@ -214,11 +239,23 @@ FILES:libgles2-gcnano += "${GCNANO_USERLAND_OUTPUT_LIBDIR}/libGLSLC.so"
FILES:libopenvg-gcnano = "${GCNANO_USERLAND_OUTPUT_LIBDIR}/libOpenVG*.so*"
FILES:${PN}-dev = ""
FILES:libgal-gcnano-dev = ""
FILES:libegl-gcnano-dev = "${includedir}/EGL ${includedir}/KHR ${libdir}/pkgconfig/egl.pc"
FILES:libgbm-gcnano-dev = "${includedir}/gbm.h ${libdir}/pkgconfig/gbm.pc"
FILES:libgles1-gcnano-dev = "${includedir}/GLES ${libdir}/pkgconfig/glesv1*.pc"
FILES:libgles2-gcnano-dev = "${includedir}/GLES2 ${libdir}/pkgconfig/glesv2.pc"
FILES:libopenvg-gcnano-dev = "${includedir}/VG ${libdir}/pkgconfig/vg.pc"
# Append additional symlinks to *-dev packages for delivered shared libs
# when GCNANO_USERLAND_OUTPUT_LIBDIR differs from libdir
FILES:libgal-gcnano-dev += "${@bb.utils.contains('GCNANO_USERLAND_OUTPUT_LIBDIR', '${libdir}', '', '${libdir}/libGAL.so', d)}"
FILES:libgal-gcnano-dev += "${@bb.utils.contains('GCNANO_USERLAND_OUTPUT_LIBDIR', '${libdir}', '', '${libdir}/libVSC.so', d)}"
FILES:libegl-gcnano-dev += "${@bb.utils.contains('GCNANO_USERLAND_OUTPUT_LIBDIR', '${libdir}', '', '${libdir}/libEGL.so*', d)}"
FILES:libgbm-gcnano-dev += "${@bb.utils.contains('GCNANO_USERLAND_OUTPUT_LIBDIR', '${libdir}', '', '${libdir}/libgbm.so*', d)}"
FILES:libgbm-gcnano-dev += "${@bb.utils.contains('GCNANO_USERLAND_OUTPUT_LIBDIR', '${libdir}', '', '${libdir}/libgbm_viv.so', d)}"
FILES:libgles1-gcnano-dev += "${@bb.utils.contains('GCNANO_USERLAND_OUTPUT_LIBDIR', '${libdir}', '', '${libdir}/libGLESv1*.so', d)}"
FILES:libgles2-gcnano-dev += "${@bb.utils.contains('GCNANO_USERLAND_OUTPUT_LIBDIR', '${libdir}', '', '${libdir}/libGLESv2.so', d)}"
FILES:libgles2-gcnano-dev += "${@bb.utils.contains('GCNANO_USERLAND_OUTPUT_LIBDIR', '${libdir}', '', '${libdir}/libGLSLC.so', d)}"
FILES:libopenvg-gcnano-dev += "${@bb.utils.contains('GCNANO_USERLAND_OUTPUT_LIBDIR', '${libdir}', '', '${libdir}/libOpenVG*.so*', d)}"
# Set gcnano-userland package with runtime dependencies on all packages
RDEPENDS:${PN} += "\