mesa > 23.1.9 [opencl,video_cards_nouveau] fails to build due to missing symbol vl_video_buffer_is_format_supported
System information
inxi -GSC -xx
System:
Host: xxxxxxxxxxxxxxx Kernel: 6.6.13-gentoo arch: x86_64 bits: 64
compiler: gcc v: 13.2.1 Desktop: GNOME v: 45.2 tk: GTK v: 3.24.39
wm: gnome-shell dm: GDM Distro: Gentoo Base System release 2.14
CPU:
Info: quad core model: Intel Core i7-4700HQ bits: 64 type: MT MCP
arch: Haswell rev: 3 cache: L1: 256 KiB L2: 1024 KiB L3: 6 MiB
Speed (MHz): avg: 1058 high: 1486 min/max: 800/3400 cores: 1: 1000 2: 1098
3: 1384 4: 998 5: 1486 6: 800 7: 900 8: 800 bogomips: 38314
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Graphics:
Device-1: Intel 4th Gen Core Processor Integrated Graphics vendor: ASUSTeK
driver: i915 v: kernel arch: Gen-7.5 ports: active: eDP-1
empty: DP-1,HDMI-A-1,HDMI-A-2 bus-ID: 00:02.0 chip-ID: 8086:0416
Device-2: NVIDIA GK107M [GeForce GT 750M] vendor: ASUSTeK driver: nvidia
v: 470.223.02 arch: Kepler pcie: speed: 2.5 GT/s lanes: 16 bus-ID: 01:00.0
chip-ID: 10de:0fe4
Device-3: IMC Networks USB2.0 UVC HD Webcam driver: uvcvideo type: USB
rev: 2.0 speed: 480 Mb/s lanes: 1 bus-ID: 3-7:4 chip-ID: 13d3:5188
Display: x11 server: X.org v: 1.21.1.11 with: Xwayland v: 23.2.4
compositor: gnome-shell driver: X: loaded: modesetting,nvidia
unloaded: nouveau alternate: fbdev,intel,nv,vesa dri: crocus gpu: i915
display-ID: :1 note: <missing: xdpyinfo/xrandr>
Monitor-1: eDP-1 model: LG Display 0x0323 res: 1920x1080 dpi: 141
diag: 396mm (15.6")
API: EGL v: 1.5 platforms: device: 0 drv: nvidia device: 1 drv: crocus
device: 3 drv: swrast gbm: drv: kms_swrast surfaceless: drv: swrast x11:
drv: crocus inactive: wayland,device-2
API: OpenGL v: 4.6 vendor: intel mesa v: 23.1.9 glx-v: 1.4 es-v: 3.2
direct-render: yes renderer: Mesa Intel HD Graphics 4600 (HSW GT2)
device-ID: 8086:0416
Describe the issue
Trying to build mesa on Gentoo, build fails with the following error:
[2027/2027] x86_64-pc-linux-gnu-g++ -o src/gallium/targets/rusticl/libRusticlOpenCL.so.1.0.0 src/gallium/targets/rusticl/libRusticlOpenCL.so.1.0.0.p/target.c.o -Wl,--as-needed -Wl,--no-undefined -shared -fPIC -Wl,--start-group -Wl,-soname,libRusticlOpenCL.so.1 -Wl,--whole-archive src/gallium/frontends/rusticl/librusticl.a -Wl,--no-whole-archive -march=core-avx2 -O2 -pipe -Wl,-O1 -Wl,--as-needed -Wl,--undefined-version -Wl,--undefined-version -Wl,-rpath,/usr/lib/llvm/17/lib64 -Wl,-rpath-link,/usr/lib/llvm/17/lib64 src/gallium/auxiliary/pipe-loader/libpipe_loader_static.a src/loader/libloader.a src/util/libxmlconfig.a src/util/libmesa_util.a src/util/libmesa_util_sse41.a src/util/blake3/libblake3.a src/c11/impl/libmesa_util_c11.a src/gallium/winsys/sw/dri/libswdri.a src/gallium/winsys/sw/kms-dri/libswkmsdri.a src/gallium/winsys/sw/wrapper/libwsw.a src/gallium/winsys/sw/null/libws_null.a src/gallium/drivers/iris/libiris.a src/gallium/drivers/iris/libiris_per_hw_ver80.a src/gallium/drivers/iris/libiris_per_hw_ver90.a src/gallium/drivers/iris/libiris_per_hw_ver110.a src/gallium/drivers/iris/libiris_per_hw_ver120.a src/gallium/drivers/iris/libiris_per_hw_ver125.a src/gallium/drivers/iris/libiris_per_hw_ver200.a src/intel/compiler/libintel_compiler.a src/intel/dev/libintel_dev.a src/intel/isl/libisl.a src/intel/isl/libisl_per_hw_ver40.a src/intel/isl/libisl_per_hw_ver50.a src/intel/isl/libisl_per_hw_ver60.a src/intel/isl/libisl_per_hw_ver70.a src/intel/isl/libisl_per_hw_ver75.a src/intel/isl/libisl_per_hw_ver80.a src/intel/isl/libisl_per_hw_ver90.a src/intel/isl/libisl_per_hw_ver110.a src/intel/isl/libisl_per_hw_ver120.a src/intel/isl/libisl_per_hw_ver125.a src/intel/isl/libisl_per_hw_ver200.a src/intel/isl/libisl_tiled_memcpy.a src/intel/isl/libisl_tiled_memcpy_sse41.a src/intel/blorp/libblorp.a src/intel/perf/libintel_perf.a src/intel/common/libintel_common.a src/intel/common/libintel_clflushopt.a src/intel/ds/libintel-driver-ds.a src/gallium/winsys/iris/drm/libiriswinsys.a src/gallium/winsys/nouveau/drm/libnouveauwinsys.a src/nouveau/codegen/libnouveau_codegen.a src/gallium/drivers/nouveau/libnouveau.a src/compiler/nir/libnir.a src/compiler/libcompiler.a src/gallium/drivers/llvmpipe/libllvmpipe.a src/gallium/drivers/softpipe/libsoftpipe.a src/compiler/spirv/libvtn.a src/gallium/frontends/rusticl/libmesa_rust.rlib src/gallium/frontends/rusticl/libmesa_rust_gen.rlib src/gallium/auxiliary/libgallium.a src/compiler/clc/liblibmesaclc.a src/gallium/frontends/rusticl/libmesa_rust_util.rlib src/gallium/frontends/rusticl/libmesa_bindings_inline_wrapper.a src/gallium/frontends/rusticl/libsystem_bindings.a src/gallium/frontends/rusticl/librusticl_opencl_gen.rlib -Wl,--build-id=sha1 -Wl,--gc-sections -Wl,--version-script /var/tmp/portage/media-libs/mesa-23.3.6/work/mesa-23.3.6/src/gallium/targets/rusticl/rusticl.sym /usr/lib64/libz.so -pthread -lm /usr/lib64/libzstd.so -L/usr/lib/llvm/17/lib64 -lLLVM-17 /usr/lib64/libdrm.so /usr/lib64/libexpat.so /usr/lib64/libxcb-randr.so /usr/lib64/libdrm_nouveau.so -L/usr/lib/llvm/17/lib64 -lLLVM-17 -lrt -lpthread -ldl -lutil -fPIC -L/usr/lib/llvm/17/lib64 -lLLVM-17 /usr/lib/llvm/17/lib64/libclang-cpp.so -L/usr/lib/llvm/17/lib64 -lLLVM-17 /usr/lib/llvm/17/lib64/libLLVMSPIRVLib.so /usr/lib64/libSPIRV-Tools-opt.so /usr/lib64/libSPIRV-Tools.so /usr/lib64/libSPIRV-Tools-link.so -Wl,--end-group
FAILED: src/gallium/targets/rusticl/libRusticlOpenCL.so.1.0.0
x86_64-pc-linux-gnu-g++ -o src/gallium/targets/rusticl/libRusticlOpenCL.so.1.0.0 src/gallium/targets/rusticl/libRusticlOpenCL.so.1.0.0.p/target.c.o -Wl,--as-needed -Wl,--no-undefined -shared -fPIC -Wl,--start-group -Wl,-soname,libRusticlOpenCL.so.1 -Wl,--whole-archive src/gallium/frontends/rusticl/librusticl.a -Wl,--no-whole-archive -march=core-avx2 -O2 -pipe -Wl,-O1 -Wl,--as-needed -Wl,--undefined-version -Wl,--undefined-version -Wl,-rpath,/usr/lib/llvm/17/lib64 -Wl,-rpath-link,/usr/lib/llvm/17/lib64 src/gallium/auxiliary/pipe-loader/libpipe_loader_static.a src/loader/libloader.a src/util/libxmlconfig.a src/util/libmesa_util.a src/util/libmesa_util_sse41.a src/util/blake3/libblake3.a src/c11/impl/libmesa_util_c11.a src/gallium/winsys/sw/dri/libswdri.a src/gallium/winsys/sw/kms-dri/libswkmsdri.a src/gallium/winsys/sw/wrapper/libwsw.a src/gallium/winsys/sw/null/libws_null.a src/gallium/drivers/iris/libiris.a src/gallium/drivers/iris/libiris_per_hw_ver80.a src/gallium/drivers/iris/libiris_per_hw_ver90.a src/gallium/drivers/iris/libiris_per_hw_ver110.a src/gallium/drivers/iris/libiris_per_hw_ver120.a src/gallium/drivers/iris/libiris_per_hw_ver125.a src/gallium/drivers/iris/libiris_per_hw_ver200.a src/intel/compiler/libintel_compiler.a src/intel/dev/libintel_dev.a src/intel/isl/libisl.a src/intel/isl/libisl_per_hw_ver40.a src/intel/isl/libisl_per_hw_ver50.a src/intel/isl/libisl_per_hw_ver60.a src/intel/isl/libisl_per_hw_ver70.a src/intel/isl/libisl_per_hw_ver75.a src/intel/isl/libisl_per_hw_ver80.a src/intel/isl/libisl_per_hw_ver90.a src/intel/isl/libisl_per_hw_ver110.a src/intel/isl/libisl_per_hw_ver120.a src/intel/isl/libisl_per_hw_ver125.a src/intel/isl/libisl_per_hw_ver200.a src/intel/isl/libisl_tiled_memcpy.a src/intel/isl/libisl_tiled_memcpy_sse41.a src/intel/blorp/libblorp.a src/intel/perf/libintel_perf.a src/intel/common/libintel_common.a src/intel/common/libintel_clflushopt.a src/intel/ds/libintel-driver-ds.a src/gallium/winsys/iris/drm/libiriswinsys.a src/gallium/winsys/nouveau/drm/libnouveauwinsys.a src/nouveau/codegen/libnouveau_codegen.a src/gallium/drivers/nouveau/libnouveau.a src/compiler/nir/libnir.a src/compiler/libcompiler.a src/gallium/drivers/llvmpipe/libllvmpipe.a src/gallium/drivers/softpipe/libsoftpipe.a src/compiler/spirv/libvtn.a src/gallium/frontends/rusticl/libmesa_rust.rlib src/gallium/frontends/rusticl/libmesa_rust_gen.rlib src/gallium/auxiliary/libgallium.a src/compiler/clc/liblibmesaclc.a src/gallium/frontends/rusticl/libmesa_rust_util.rlib src/gallium/frontends/rusticl/libmesa_bindings_inline_wrapper.a src/gallium/frontends/rusticl/libsystem_bindings.a src/gallium/frontends/rusticl/librusticl_opencl_gen.rlib -Wl,--build-id=sha1 -Wl,--gc-sections -Wl,--version-script /var/tmp/portage/media-libs/mesa-23.3.6/work/mesa-23.3.6/src/gallium/targets/rusticl/rusticl.sym /usr/lib64/libz.so -pthread -lm /usr/lib64/libzstd.so -L/usr/lib/llvm/17/lib64 -lLLVM-17 /usr/lib64/libdrm.so /usr/lib64/libexpat.so /usr/lib64/libxcb-randr.so /usr/lib64/libdrm_nouveau.so -L/usr/lib/llvm/17/lib64 -lLLVM-17 -lrt -lpthread -ldl -lutil -fPIC -L/usr/lib/llvm/17/lib64 -lLLVM-17 /usr/lib/llvm/17/lib64/libclang-cpp.so -L/usr/lib/llvm/17/lib64 -lLLVM-17 /usr/lib/llvm/17/lib64/libLLVMSPIRVLib.so /usr/lib64/libSPIRV-Tools-opt.so /usr/lib64/libSPIRV-Tools.so /usr/lib64/libSPIRV-Tools-link.so -Wl,--end-group
/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: src/gallium/drivers/nouveau/libnouveau.a.p/nv50_nv84_video.c.o: in function `nv84_decoder_decode_bitstream_mpeg12':
nv84_video.c:(.text.nv84_decoder_decode_bitstream_mpeg12+0x8): undefined reference to `vl_mpg12_bs_decode'
/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: src/gallium/drivers/nouveau/libnouveau.a.p/nv50_nv84_video.c.o: in function `nv84_create_decoder':
nv84_video.c:(.text.nv84_create_decoder+0x6f5): undefined reference to `vl_mpg12_bs_init'
/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: src/gallium/drivers/nouveau/libnouveau.a.p/nv50_nv84_video.c.o: in function `nv84_video_buffer_create':
nv84_video.c:(.text.nv84_video_buffer_create+0x426): undefined reference to `vl_video_buffer_create'
/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: src/gallium/drivers/nouveau/libnouveau.a.p/nv50_nv84_video.c.o: in function `nv84_screen_video_supported':
nv84_video.c:(.text.nv84_screen_video_supported+0x11): undefined reference to `vl_video_buffer_is_format_supported'
/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: src/gallium/drivers/nouveau/libnouveau.a.p/nouveau_video.c.o: in function `nouveau_screen_get_video_param':
nouveau_video.c:(.text.nouveau_screen_get_video_param+0x39): undefined reference to `vl_video_buffer_max_size'
/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: nouveau_video.c:(.text.nouveau_screen_get_video_param+0x51): undefined reference to `vl_level_supported'
/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: src/gallium/drivers/nouveau/libnouveau.a.p/nouveau_video.c.o: in function `nouveau_context_video_buffer_create':
nouveau_video.c:(.text.nouveau_context_video_buffer_create+0x1d2): undefined reference to `vl_video_buffer_create'
/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: src/gallium/drivers/nouveau/libnouveau.a.p/nouveau_video.c.o: in function `nouveau_context_create_decoder':
nouveau_video.c:(.text.nouveau_context_create_decoder+0x92): undefined reference to `vl_create_decoder'
/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: src/gallium/drivers/nouveau/libnouveau.a.p/nouveau_video.c.o: in function `nouveau_screen_init_vdec':
nouveau_video.c:(.text.nouveau_screen_init_vdec+0xe): undefined reference to `vl_video_buffer_is_format_supported'
/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: src/gallium/drivers/nouveau/libnouveau.a.p/nouveau_vp3_video.c.o: in function `nouveau_vp3_video_buffer_create':
nouveau_vp3_video.c:(.text.nouveau_vp3_video_buffer_create+0x60): undefined reference to `vl_video_buffer_create'
/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: src/gallium/drivers/nouveau/libnouveau.a.p/nouveau_vp3_video.c.o: in function `nouveau_vp3_screen_video_supported':
nouveau_vp3_video.c:(.text.nouveau_vp3_screen_video_supported+0x11): undefined reference to `vl_video_buffer_is_format_supported'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: /usr/bin/ninja -j 8 -v
The last version that I was able to build was 23.1.9. The bug has been reported to gentoo here https://bugs.gentoo.org/921658