diff options
author | Max Krummenacher <max.krummenacher@toradex.com> | 2019-10-02 09:11:56 +0200 |
---|---|---|
committer | Otavio Salvador <otavio@ossystems.com.br> | 2019-10-09 16:35:20 -0300 |
commit | e7e0a3ebfa6a42e2a65642051a9c18ae90de320d (patch) | |
tree | 5d408cf4336cb79e4726f4619013b35672323694 | |
parent | b61675eccc5ac3cf73f9e24bc651a08ab37110de (diff) | |
download | meta-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>
-rw-r--r-- | recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc | 16 |
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 | " |
20 | DEPENDS_append_imxdrm = " libdrm wayland" | 20 | DEPENDS_append_imxdrm = " libdrm wayland" |
21 | DEPENDS_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 | |||
307 | FILES_libgbm-imx-dev_mx8 = "${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h ${libdir}/libgbm${SOLIBSDEV}" | 306 | FILES_libgbm-imx-dev_mx8 = "${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h ${libdir}/libgbm${SOLIBSDEV}" |
308 | RDEPENDS_libgbm-imx_append_mx8 = " libdrm" | 307 | RDEPENDS_libgbm-imx_append_mx8 = " libdrm" |
309 | 308 | ||
310 | FILES_libvulkan-imx = "${libdir}/vulkan/libvulkan_VSI${SOLIBS} ${libdir}/libSPIRV_viv${SOLIBS}" | 309 | FILES_libvulkan-imx = "${libdir}/libvulkan_VSI${SOLIBS} ${libdir}/libSPIRV_viv${SOLIBS}" |
311 | FILES_libvulkan-imx-dev = "${includedir}/vulkan ${libdir}/vulkan/libvulkan_VSI${SOLIBSDEV}" | 310 | FILES_libvulkan-imx-dev = "${includedir}/vulkan ${libdir}/libvulkan_VSI${SOLIBSDEV}" |
312 | INSANE_SKIP_libvulkan-imx += "dev-deps dev-so" | ||
313 | 311 | ||
314 | FILES_libopenvx-imx = "${libdir}/libOpenVX${SOLIBS} ${libdir}/libOpenVXC${SOLIBS} ${libdir}/libOpenVXU${SOLIBS}" | 312 | FILES_libopenvx-imx = "${libdir}/libOpenVX${SOLIBS} ${libdir}/libOpenVXC${SOLIBS} ${libdir}/libOpenVXU${SOLIBS}" |
315 | FILES_libopenvx-imx-dev = "${includedir}/VX ${libdir}/libopenVX${SOLIBSDEV}" | 313 | FILES_libopenvx-imx-dev = "${includedir}/VX ${libdir}/libopenVX${SOLIBSDEV}" |