summaryrefslogtreecommitdiffstats
path: root/recipes-graphics
diff options
context:
space:
mode:
authorMax Krummenacher <max.krummenacher@toradex.com>2019-10-02 09:11:56 +0200
committerOtavio Salvador <otavio@ossystems.com.br>2019-10-09 16:35:20 -0300
commite7e0a3ebfa6a42e2a65642051a9c18ae90de320d (patch)
tree5d408cf4336cb79e4726f4619013b35672323694 /recipes-graphics
parentb61675eccc5ac3cf73f9e24bc651a08ab37110de (diff)
downloadmeta-freescale-e7e0a3ebfa6a42e2a65642051a9c18ae90de320d.tar.gz
imx-gpu-viv: fix build with libvulkan
vulkan-loader and imx-gpu-viv both provide a libvulkan.so with the same soname. (The vulkan-loader provides the vulkan-loader while imx-gpu-viv provides the instalable client driver for the Vivante GPU). readelf -a .../recipe-sysroot/usr/lib/libvulkan.so | grep soname 0x000000000000000e (SONAME) Library soname: [libvulkan.so.1] readelf -a .../recipe-sysroot/usr/lib/vulkan/libvulkan_VSI.so | grep soname 0x000000000000000e (SONAME) Library soname: [libvulkan.so.1] This leads to the following build error. | # ERROR: gstreamer1.0-plugins-bad-1.14.imx-r0 do_package: gstreamer1.0-plugins-bad-vulkan: Multiple shlib providers for libvulkan.so.1: libvulkan-imx, vulkan-loader (used by files: ...libgstvulkan.so) | # 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? [filed] Fix this by changing the soname of the Vivante provided libvulkan. With this change we can drop the /usr/lib/vulkan install directory and install directly in /usr/lib/. This additionally allows to reenable QA warnings for the libvulkan-imx package. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Diffstat (limited to 'recipes-graphics')
-rw-r--r--recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc16
1 files changed, 7 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 ef10c961..2c61c101 100644
--- a/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc
+++ b/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc
@@ -18,6 +18,7 @@ DEPENDS += " \
18 '', d)} \ 18 '', d)} \
19" 19"
20DEPENDS_append_imxdrm = " libdrm wayland" 20DEPENDS_append_imxdrm = " libdrm wayland"
21DEPENDS_append_mx8 = " patchelf-native"
21 22
22# imx-gpu-viv does not provide everything it needs to for virtual/libgl 23# imx-gpu-viv does not provide everything it needs to for virtual/libgl
23# on x11 backend or on Wayland backend with XWayland support. 24# on x11 backend or on Wayland backend with XWayland support.
@@ -233,12 +234,10 @@ do_install () {
233 ln -sf libGLESv2.so.2.0.0 ${D}${libdir}/libGLESv2.so 234 ln -sf libGLESv2.so.2.0.0 ${D}${libdir}/libGLESv2.so
234 235
235 if [ "${IS_MX8}" = "1" ]; then 236 if [ "${IS_MX8}" = "1" ]; then
236 # Install the vulkan driver in a sub-folder. When installed in the same 237 # Change libvulkon.so driver soname, so that it does not clash with the
237 # folder as the vulkan loader layer library, an incorrect linkage is 238 # vulkan-loader libvulkan.so
238 # created from libvulkan.so.1 to our library instead of the loader 239 patchelf --set-soname libvulkan_VSI.so.1 ${D}${libdir}/libvulkan-${backend}.so
239 # layer library. 240 mv ${D}${libdir}/libvulkan-${backend}.so ${D}${libdir}/libvulkan_VSI.so
240 install -d ${D}${libdir}/vulkan
241 mv ${D}${libdir}/libvulkan-${backend}.so ${D}${libdir}/vulkan/libvulkan_VSI.so
242 fi 241 fi
243 for header in ${GLES3_HEADER_REMOVALS}; do 242 for header in ${GLES3_HEADER_REMOVALS}; do
244 rm -f ${D}${includedir}/GLES3/${header} 243 rm -f ${D}${includedir}/GLES3/${header}
@@ -307,9 +306,8 @@ FILES_libgbm-imx_mx8 = "${libdir}/libgbm${SOLIBS} ${libdir}/gbm_viv${S
307FILES_libgbm-imx-dev_mx8 = "${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h ${libdir}/libgbm${SOLIBSDEV}" 306FILES_libgbm-imx-dev_mx8 = "${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h ${libdir}/libgbm${SOLIBSDEV}"
308RDEPENDS_libgbm-imx_append_mx8 = " libdrm" 307RDEPENDS_libgbm-imx_append_mx8 = " libdrm"
309 308
310FILES_libvulkan-imx = "${libdir}/vulkan/libvulkan_VSI${SOLIBS} ${libdir}/libSPIRV_viv${SOLIBS}" 309FILES_libvulkan-imx = "${libdir}/libvulkan_VSI${SOLIBS} ${libdir}/libSPIRV_viv${SOLIBS}"
311FILES_libvulkan-imx-dev = "${includedir}/vulkan ${libdir}/vulkan/libvulkan_VSI${SOLIBSDEV}" 310FILES_libvulkan-imx-dev = "${includedir}/vulkan ${libdir}/libvulkan_VSI${SOLIBSDEV}"
312INSANE_SKIP_libvulkan-imx += "dev-deps dev-so"
313 311
314FILES_libopenvx-imx = "${libdir}/libOpenVX${SOLIBS} ${libdir}/libOpenVXC${SOLIBS} ${libdir}/libOpenVXU${SOLIBS}" 312FILES_libopenvx-imx = "${libdir}/libOpenVX${SOLIBS} ${libdir}/libOpenVXC${SOLIBS} ${libdir}/libOpenVXU${SOLIBS}"
315FILES_libopenvx-imx-dev = "${includedir}/VX ${libdir}/libopenVX${SOLIBSDEV}" 313FILES_libopenvx-imx-dev = "${includedir}/VX ${libdir}/libopenVX${SOLIBSDEV}"