kumquat-buildroot/package/nvidia-driver/Config.in
Bernd Kuhls e3dab26f2e package/nvidia-driver: depends on xlib_libX11 & xlib_libXext
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>
2017-09-24 14:36:48 +02:00

89 lines
2.4 KiB
Plaintext

comment "nvidia-driver needs a glibc toolchain"
depends on BR2_i386 || BR2_x86_64
depends on !BR2_TOOLCHAIN_USES_GLIBC
config BR2_PACKAGE_NVIDIA_DRIVER
bool "nvidia-driver"
depends on BR2_i386 || BR2_x86_64
depends on BR2_TOOLCHAIN_USES_GLIBC
help
The binary-only driver blob for NVidia cards.
This is the userland part only.
http://www.nvidia.com/
if BR2_PACKAGE_NVIDIA_DRIVER
comment "nvidia-driver X.org drivers needs a modular Xorg server"
depends on !BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR
config BR2_PACKAGE_NVIDIA_DRIVER_XORG
bool "X.org drivers"
default y
depends on BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR
select BR2_PACKAGE_MESA3D_HEADERS
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
select BR2_PACKAGE_HAS_LIBGLES
if BR2_PACKAGE_NVIDIA_DRIVER_XORG
config BR2_PACKAGE_PROVIDES_LIBGL
default "nvidia-driver"
config BR2_PACKAGE_PROVIDES_LIBEGL
default "nvidia-driver"
config BR2_PACKAGE_PROVIDES_LIBGLES
default "nvidia-driver"
config BR2_PACKAGE_NVIDIA_DRIVER_PRIVATE_LIBS
bool "Install private libraries"
help
Two libraries require special agreement with NVidia to
develop code linking to those libraries: libnvidia-ifr.so
and libnvidia-fbc.so (to grab and encode an OpenGL buffer or
an X framebuffer.)
Say 'y' here if you plan on running a program that uses
those private libraries.
endif # BR2_PACKAGE_NVIDIA_DRIVER_XORG
config BR2_PACKAGE_NVIDIA_DRIVER_CUDA
bool "CUDA support"
if BR2_PACKAGE_NVIDIA_DRIVER_CUDA
config BR2_PACKAGE_NVIDIA_DRIVER_OPENCL
bool "OpenCL support"
config BR2_PACKAGE_NVIDIA_DRIVER_CUDA_PROGS
bool "CUDA MPS server and control"
help
Say 'y' here if you need to run more than one program
doing CUDA at the same time. The MPS server will be
launched automatically when needed.
endif # BR2_PACKAGE_NVIDIA_DRIVER_CUDA
comment "nvidia kernel module needs a kernel to be built"
depends on !BR2_LINUX_KERNEL
config BR2_PACKAGE_NVIDIA_DRIVER_MODULE
bool "nvidia kernel module"
depends on BR2_LINUX_KERNEL
select BR2_LINUX_NEEDS_MODULES # not using kernel-module infra
help
Build the nvidia.ko kernel module.
If CUDA support (above) is set, and the target is x86_64, then
this will also build the nvidia-uvm.ko kernel module, which
provides Unified Memory access to the GPU and CPU memories for
CUDA programs.
endif # BR2_PACKAGE_NVIDIA_DRIVER