package/nvidia-driver: depends on xlib_libX11 & xlib_libXext
authorBernd Kuhls <bernd.kuhls@t-online.de>
Wed, 13 Sep 2017 18:45:43 +0000 (20:45 +0200)
committerArnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Sun, 24 Sep 2017 12:36:48 +0000 (14:36 +0200)
Fix libglu build error

  CXXLD    libGLU.la
/home/buildroot/br4/output/host/lib/gcc/i586-buildroot-linux-gnu/6.4.0/../../../../i586-buildroot-linux-gnu/bin/ld: cannot find -lXext
/home/buildroot/br4/output/host/lib/gcc/i586-buildroot-linux-gnu/6.4.0/../../../../i586-buildroot-linux-gnu/bin/ld: cannot find -lX11
collect2: error: ld returned 1 exit status

using this defconfig

BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_PACKAGE_XORG7=y
BR2_PACKAGE_XSERVER_XORG_SERVER=y
BR2_PACKAGE_NVIDIA_DRIVER=y
BR2_PACKAGE_LIBGLU=y

The nvidia binary blob is linked to libX11.so & libEext.so

$ output/host/bin/i586-buildroot-linux-gnu-readelf -a output/target/usr/lib/libGL.so | grep NEEDED
 0x00000001 (NEEDED)                     Shared library: [libnvidia-tls.so.381.09]
 0x00000001 (NEEDED)                     Shared library: [libnvidia-glcore.so.381.09]
 0x00000001 (NEEDED)                     Shared library: [libX11.so.6]
 0x00000001 (NEEDED)                     Shared library: [libXext.so.6]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]
 0x00000001 (NEEDED)                     Shared library: [libdl.so.2]

which is also reflected by Libs-section of package/nvidia-driver/gl.pc.

To allow other packages linking to libGL.so provided by this package we
need to reflect the fact that xlib_libX11 & xlib_libXext are not
runtime-only dependencies.

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
package/nvidia-driver/Config.in
package/nvidia-driver/nvidia-driver.mk

index 1105ec63b64387d6c5a1dce2d3a1ef1ac757266b..732d9255c7ca31c507b5f0983088925b00a868b7 100644 (file)
@@ -22,8 +22,8 @@ config BR2_PACKAGE_NVIDIA_DRIVER_XORG
        default y
        depends on BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR
        select BR2_PACKAGE_MESA3D_HEADERS
-       select BR2_PACKAGE_XLIB_LIBX11 # runtime
-       select BR2_PACKAGE_XLIB_LIBXEXT # runtime
+       select BR2_PACKAGE_XLIB_LIBX11
+       select BR2_PACKAGE_XLIB_LIBXEXT
        select BR2_PACKAGE_HAS_LIBGL
        select BR2_PACKAGE_HAS_LIBEGL
        select BR2_PACKAGE_HAS_LIBEGL_WAYLAND
index 6746134a52e1d485176173a834267a5ae7a6f99d..1795434811586208c5e2e7b92818b776a582abf8 100644 (file)
@@ -20,7 +20,7 @@ ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_XORG),y)
 # are build dependencies of packages that depend on nvidia-driver, so
 # they should be built prior to those packages, and the only simple
 # way to do so is to make nvidia-driver depend on them.
-NVIDIA_DRIVER_DEPENDENCIES = mesa3d-headers
+NVIDIA_DRIVER_DEPENDENCIES = mesa3d-headers xlib_libX11 xlib_libXext
 NVIDIA_DRIVER_PROVIDES = libgl libegl libgles
 
 # libGL.so.$(NVIDIA_DRIVER_VERSION) is the legacy libGL.so library; it