Mesa master build started failing with llvm 11 (undefined reference to `tigetnum')
I just tried building Mesa master (limited to radv and radeonsi), and it's now failing like:
[1215/1218] Linking target src/gallium/targets/dri/libgallium_dri.so
FAILED: src/gallium/targets/dri/libgallium_dri.so
c++ -o src/gallium/targets/dri/libgallium_dri.so 'src/gallium/targets/dri/8381c20@@gallium_dri@sha/target.c.o' -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -shared -fPIC -Wl,--start-group -Wl,-soname,libgallium_dri.so -march=znver2 -fdebug-prefix-map=/home/user/build=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z,relro src/gallium/state_trackers/dri/libdri.a src/mesa/libmesa_gallium.a src/mesa/libmesa_common.a src/compiler/glsl/libglsl.a src/compiler/glsl/glcpp/libglcpp.a src/util/libmesa_util.a src/util/format/libmesa_format.a src/compiler/nir/libnir.a src/compiler/libcompiler.a src/mesa/libmesa_sse41.a src/mesa/drivers/dri/common/libdricommon.a src/mesa/drivers/dri/common/libmegadriver_stub.a src/gallium/auxiliary/libgalliumvl.a src/gallium/auxiliary/libgallium.a src/mapi/shared-glapi/libglapi.so.0.0.0 src/gallium/auxiliary/pipe-loader/libpipe_loader_static.a src/loader/libloader.a src/util/libxmlconfig.a src/gallium/winsys/sw/null/libws_null.a src/gallium/winsys/sw/wrapper/libwsw.a src/gallium/winsys/sw/dri/libswdri.a src/gallium/winsys/sw/kms-dri/libswkmsdri.a src/gallium/drivers/radeonsi/libradeonsi.a src/gallium/winsys/radeon/drm/libradeonwinsys.a src/gallium/winsys/amdgpu/drm/libamdgpuwinsys.a src/amd/addrlib/libaddrlib.a src/amd/common/libamd_common.a src/amd/llvm/libamd_common_llvm.a -Wl,--build-id=sha1 -Wl,--gc-sections -Wl,--version-script /home/user/build/mesa/src/gallium/targets/dri/dri.sym -Wl,--dynamic-list /home/user/build/mesa/src/gallium/targets/dri/../dri-vdpau.dyn /usr/lib/x86_64-linux-gnu/libdrm.so -lpthread /usr/lib/llvm-9/lib/libLLVMAMDGPUAsmParser.a /usr/lib/llvm-9/lib/libLLVMAMDGPUCodeGen.a /usr/lib/llvm-9/lib/libLLVMAMDGPUDesc.a /usr/lib/llvm-9/lib/libLLVMAMDGPUDisassembler.a /usr/lib/llvm-9/lib/libLLVMAMDGPUInfo.a /usr/lib/llvm-9/lib/libLLVMAMDGPUUtils.a /usr/lib/llvm-9/lib/libLLVMAggressiveInstCombine.a /usr/lib/llvm-9/lib/libLLVMAnalysis.a /usr/lib/llvm-9/lib/libLLVMAsmParser.a /usr/lib/llvm-9/lib/libLLVMAsmPrinter.a /usr/lib/llvm-9/lib/libLLVMBinaryFormat.a /usr/lib/llvm-9/lib/libLLVMBitReader.a /usr/lib/llvm-9/lib/libLLVMBitWriter.a /usr/lib/llvm-9/lib/libLLVMBitstreamReader.a /usr/lib/llvm-9/lib/libLLVMCodeGen.a /usr/lib/llvm-9/lib/libLLVMCore.a /usr/lib/llvm-9/lib/libLLVMCoroutines.a /usr/lib/llvm-9/lib/libLLVMDebugInfoCodeView.a /usr/lib/llvm-9/lib/libLLVMDebugInfoDWARF.a /usr/lib/llvm-9/lib/libLLVMDebugInfoMSF.a /usr/lib/llvm-9/lib/libLLVMDemangle.a /usr/lib/llvm-9/lib/libLLVMExecutionEngine.a /usr/lib/llvm-9/lib/libLLVMGlobalISel.a /usr/lib/llvm-9/lib/libLLVMIRReader.a /usr/lib/llvm-9/lib/libLLVMInstCombine.a /usr/lib/llvm-9/lib/libLLVMInstrumentation.a /usr/lib/llvm-9/lib/libLLVMLinker.a /usr/lib/llvm-9/lib/libLLVMMC.a /usr/lib/llvm-9/lib/libLLVMMCDisassembler.a /usr/lib/llvm-9/lib/libLLVMMCJIT.a /usr/lib/llvm-9/lib/libLLVMMCParser.a /usr/lib/llvm-9/lib/libLLVMMIRParser.a /usr/lib/llvm-9/lib/libLLVMObject.a /usr/lib/llvm-9/lib/libLLVMProfileData.a /usr/lib/llvm-9/lib/libLLVMRemarks.a /usr/lib/llvm-9/lib/libLLVMRuntimeDyld.a /usr/lib/llvm-9/lib/libLLVMScalarOpts.a /usr/lib/llvm-9/lib/libLLVMSelectionDAG.a /usr/lib/llvm-9/lib/libLLVMSupport.a /usr/lib/llvm-9/lib/libLLVMTarget.a /usr/lib/llvm-9/lib/libLLVMTransformUtils.a /usr/lib/llvm-9/lib/libLLVMVectorize.a /usr/lib/llvm-9/lib/libLLVMX86AsmParser.a /usr/lib/llvm-9/lib/libLLVMX86CodeGen.a /usr/lib/llvm-9/lib/libLLVMX86Desc.a /usr/lib/llvm-9/lib/libLLVMX86Disassembler.a /usr/lib/llvm-9/lib/libLLVMX86Info.a /usr/lib/llvm-9/lib/libLLVMX86Utils.a /usr/lib/llvm-9/lib/libLLVMipo.a /usr/lib/x86_64-linux-gnu/libz3.so -pthread /usr/lib/x86_64-linux-gnu/libexpat.so /usr/lib/x86_64-linux-gnu/libz.so -lm -ldl -lsensors /usr/lib/x86_64-linux-gnu/libdrm_radeon.so /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so /usr/lib/x86_64-linux-gnu/libelf.so -Wl,--end-group '-Wl,-rpath,$ORIGIN/../../state_trackers/dri:$ORIGIN/../../../mesa:$ORIGIN/../../../compiler/glsl:$ORIGIN/../../../compiler/glsl/glcpp:$ORIGIN/../../../util:$ORIGIN/../../../util/format:$ORIGIN/../../../compiler/nir:$ORIGIN/../../../compiler:$ORIGIN/../../../mesa/drivers/dri/common:$ORIGIN/../../auxiliary:$ORIGIN/../../../mapi/shared-glapi:$ORIGIN/../../auxiliary/pipe-loader:$ORIGIN/../../../loader:$ORIGIN/../../winsys/sw/null:$ORIGIN/../../winsys/sw/wrapper:$ORIGIN/../../winsys/sw/dri:$ORIGIN/../../winsys/sw/kms-dri:$ORIGIN/../../drivers/radeonsi:$ORIGIN/../../winsys/radeon/drm:$ORIGIN/../../winsys/amdgpu/drm:$ORIGIN/../../../amd/addrlib:$ORIGIN/../../../amd/common:$ORIGIN/../../../amd/llvm' -Wl,-rpath-link,/home/user/build/mesa/build/src/gallium/state_trackers/dri -Wl,-rpath-link,/home/user/build/mesa/build/src/mesa -Wl,-rpath-link,/home/user/build/mesa/build/src/compiler/glsl -Wl,-rpath-link,/home/user/build/mesa/build/src/compiler/glsl/glcpp -Wl,-rpath-link,/home/user/build/mesa/build/src/util -Wl,-rpath-link,/home/user/build/mesa/build/src/util/format -Wl,-rpath-link,/home/user/build/mesa/build/src/compiler/nir -Wl,-rpath-link,/home/user/build/mesa/build/src/compiler -Wl,-rpath-link,/home/user/build/mesa/build/src/mesa/drivers/dri/common -Wl,-rpath-link,/home/user/build/mesa/build/src/gallium/auxiliary -Wl,-rpath-link,/home/user/build/mesa/build/src/mapi/shared-glapi -Wl,-rpath-link,/home/user/build/mesa/build/src/gallium/auxiliary/pipe-loader -Wl,-rpath-link,/home/user/build/mesa/build/src/loader -Wl,-rpath-link,/home/user/build/mesa/build/src/gallium/winsys/sw/null -Wl,-rpath-link,/home/user/build/mesa/build/src/gallium/winsys/sw/wrapper -Wl,-rpath-link,/home/user/build/mesa/build/src/gallium/winsys/sw/dri -Wl,-rpath-link,/home/user/build/mesa/build/src/gallium/winsys/sw/kms-dri -Wl,-rpath-link,/home/user/build/mesa/build/src/gallium/drivers/radeonsi -Wl,-rpath-link,/home/user/build/mesa/build/src/gallium/winsys/radeon/drm -Wl,-rpath-link,/home/user/build/mesa/build/src/gallium/winsys/amdgpu/drm -Wl,-rpath-link,/home/user/build/mesa/build/src/amd/addrlib -Wl,-rpath-link,/home/user/build/mesa/build/src/amd/common -Wl,-rpath-link,/home/user/build/mesa/build/src/amd/llvm
/usr/bin/ld: /usr/lib/llvm-9/lib/libLLVMSupport.a(Process.cpp.o): in function `llvm::sys::Process::FileDescriptorHasColors(int)':
(.text._ZN4llvm3sys7Process23FileDescriptorHasColorsEi+0x5c): undefined reference to `setupterm'
/usr/bin/ld: (.text._ZN4llvm3sys7Process23FileDescriptorHasColorsEi+0x6c): undefined reference to `tigetnum'
/usr/bin/ld: (.text._ZN4llvm3sys7Process23FileDescriptorHasColorsEi+0x78): undefined reference to `set_curterm'
/usr/bin/ld: (.text._ZN4llvm3sys7Process23FileDescriptorHasColorsEi+0x80): undefined reference to `del_curterm'
collect2: error: ld returned 1 exit status
[1216/1218] Compiling C++ object 'src/amd/compiler/3c53451@@aco@sta/aco_instruction_selection.cpp.o'
<command-line>: warning: "_GNU_SOURCE" redefined
<command-line>: note: this is the location of the previous definition
ninja: build stopped: subcommand failed.
build failed!
So it's not pulling in llvm 11 anymore and instead tries to use llvm 9 for some reason. The way I set llvm 11 for the build is through --native-file
in Meson (I also link llvm statically):
read -r -d '' native_config <<EOF
[binaries]
llvm-config = "/usr/bin/llvm-config-11"
EOF
...
--native-file=<(echo "$native_config")\
-Dshared-llvm=false \
...
Does this require some changes now?