[meta-freescale] [PATCH] imx-gpu-viv: fix libvulkan soname issue

Max Krummenacher max.oss.09 at gmail.com
Wed Oct 2 00:51:08 PDT 2019


Hi Ming

While this fixes the conflict I believe (or hope) that
imx-gpu-viv/libvulkan_VSI provides the vulkan ICD (installable client
driver) for the Vivante GPU while libvulkan from vulkan_loader provides the
vulkan_loader.

So we likely need both shared objects to use vulkan.

I guess the proper fix is to change the soname to something different,
preferably in the upstream binary, until then by patching the shared
object. I sent a pull request on github.

https://github.com/Freescale/meta-freescale/pull/178

Max

Am Di., 1. Okt. 2019 um 22:30 Uhr schrieb <liu.ming50 at gmail.com>:

> From: Ming Liu <liu.ming50 at gmail.com>
>
> Installing the vulkan driver in ${D}${libdir}/vulkan subdirectory is
> not a proper fix for the conflict with vulkan-loader. The root cause
> of this conflict is that both our libvulkan and vulkan-loader's
> libvulkan have a same soname libvulkan.so.1, we should set PRIVATE_LIBS
> in this case to fix the conflict. Or else, the soname would still be
> detected during package_do_shlibs, and hence will lead to other
> dependency problems for the recipes that depending on vulkan-loader.
>
> For instance, this patch fixes a following error:
> | ERROR: gstreamer1.0-plugins-bad-1.14.imx-r0 do_package_qa:
> | QA Issue: /usr/lib/gstreamer-1.0/libgstvulkan.so contained in package
> gstreamer1.0-plugins-bad-vulkan requires libvulkan.so.1()(64bit),
> | but no providers found in RDEPENDS_gstreamer1.0-plugins-bad-vulkan?
> [file-rdeps]
> | ERROR: gstreamer1.0-plugins-bad-1.14.imx-r0 do_package_qa: QA run found
> fatal errors. Please consider fixing them.
>
> Signed-off-by: Ming Liu <liu.ming50 at gmail.com>
> ---
>  recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc | 13 ++++---------
>  1 file changed, 4 insertions(+), 9 deletions(-)
>
> diff --git a/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc
> b/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc
> index ef10c96..e75ada0 100644
> --- a/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc
> +++ b/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc
> @@ -233,12 +233,7 @@ do_install () {
>      ln -sf libGLESv2.so.2.0.0 ${D}${libdir}/libGLESv2.so
>
>      if [ "${IS_MX8}" = "1" ]; then
> -        # Install the vulkan driver in a sub-folder. When installed in
> the same
> -        # folder as the vulkan loader layer library, an incorrect linkage
> is
> -        # created from libvulkan.so.1 to our library instead of the loader
> -        # layer library.
> -        install -d ${D}${libdir}/vulkan
> -        mv ${D}${libdir}/libvulkan-${backend}.so
> ${D}${libdir}/vulkan/libvulkan_VSI.so
> +        mv ${D}${libdir}/libvulkan-${backend}.so
> ${D}${libdir}/libvulkan_VSI${SOLIBS}
>      fi
>      for header in ${GLES3_HEADER_REMOVALS}; do
>          rm -f ${D}${includedir}/GLES3/${header}
> @@ -307,9 +302,9 @@ FILES_libgbm-imx_mx8           =
> "${libdir}/libgbm${SOLIBS} ${libdir}/gbm_viv${S
>  FILES_libgbm-imx-dev_mx8       = "${libdir}/pkgconfig/gbm.pc
> ${includedir}/gbm.h ${libdir}/libgbm${SOLIBSDEV}"
>  RDEPENDS_libgbm-imx_append_mx8 = " libdrm"
>
> -FILES_libvulkan-imx = "${libdir}/vulkan/libvulkan_VSI${SOLIBS}
> ${libdir}/libSPIRV_viv${SOLIBS}"
> -FILES_libvulkan-imx-dev = "${includedir}/vulkan
> ${libdir}/vulkan/libvulkan_VSI${SOLIBSDEV}"
> -INSANE_SKIP_libvulkan-imx += "dev-deps dev-so"
> +FILES_libvulkan-imx = "${libdir}/libvulkan_VSI${SOLIBS}
> ${libdir}/libSPIRV_viv${SOLIBS}"
> +FILES_libvulkan-imx-dev = "${includedir}/vulkan"
> +PRIVATE_LIBS_libvulkan-imx = "libvulkan.so.1"
>
>  FILES_libopenvx-imx = "${libdir}/libOpenVX${SOLIBS}
> ${libdir}/libOpenVXC${SOLIBS} ${libdir}/libOpenVXU${SOLIBS}"
>  FILES_libopenvx-imx-dev = "${includedir}/VX
> ${libdir}/libopenVX${SOLIBSDEV}"
> --
> 2.7.4
>
> --
> _______________________________________________
> meta-freescale mailing list
> meta-freescale at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-freescale
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/meta-freescale/attachments/20191002/53dd5ac7/attachment.html>


More information about the meta-freescale mailing list