-Wl,--fatal-warnings
I assume while enabling -Wl,--fatal-warnings
sounds like a good idea, current linker warnings aren't serious enough.
If there are any ideas how to deal with these warnings, feel free to share. Most of them are due to having possibility to build with static LLVM.
debian-clover-testing (OK):
c++ -o src/gallium/targets/pipe-loader/pipe_swrast.so src/gallium/targets/pipe-loader/pipe_swrast.so.p/pipe_swrast.c.o -Wl,--as-needed -Wl,--no-undefined -shared -fPIC -Wl,--start-group -Wl,-soname,pipe_swrast.so -Wl,--fatal-warnings -Wl,-rpath,/usr/local/lib/x86_64-linux-gnu -Wl,-rpath-link,/usr/local/lib/x86_64-linux-gnu src/gallium/auxiliary/libgallium.a src/compiler/nir/libnir.a src/compiler/libcompiler.a src/util/libmesa_util.a src/util/format/libmesa_format.a src/util/libmesa_util_sse41.a src/c11/impl/libmesa_util_c11.a src/gallium/auxiliary/libgalliumvl_stub.a src/gallium/winsys/sw/wrapper/libwsw.a src/gallium/winsys/sw/null/libws_null.a src/gallium/drivers/llvmpipe/libllvmpipe.a src/gallium/drivers/softpipe/libsoftpipe.a -Wl,--gc-sections -Wl,--build-id=sha1 -Wl,--version-script /builds/mesa/mesa/src/gallium/targets/pipe-loader/pipe.sym /usr/lib/x86_64-linux-gnu/libz.so -pthread -lm -ldl /usr/lib/x86_64-linux-gnu/libunwind.so -L/usr/lib/llvm-13/lib -lLLVM-13 /usr/local/lib/x86_64-linux-gnu/libdrm.so -L/usr/lib/llvm-13/lib -lLLVM-13 -L/usr/lib/llvm-13/lib -lLLVM-13 -Wl,--end-group
mold: error: /builds/mesa/mesa/src/gallium/targets/pipe-loader/pipe.sym: cannot assign version `global` to symbol `driver_descriptor`: symbol not found
mold: error: /builds/mesa/mesa/src/gallium/targets/pipe-loader/pipe.sym: cannot assign version `global` to symbol `radeon_drm_winsys_create`: symbol not found
mold: error: /builds/mesa/mesa/src/gallium/targets/pipe-loader/pipe.sym: cannot assign version `global` to symbol `amdgpu_winsys_create`: symbol not found
mold: error: /builds/mesa/mesa/src/gallium/targets/pipe-loader/pipe.sym: cannot assign version `global` to symbol `ac_init_shared_llvm_once`: symbol not found
collect2: error: ld returned 1 exit status
debian-clover (OK):
c++ -o src/gallium/targets/pipe-loader/pipe_r600.so src/gallium/targets/pipe-loader/pipe_r600.so.p/pipe_r600.c.o -Wl,--as-needed -Wl,--no-undefined -shared -fPIC -Wl,--start-group -Wl,-soname,pipe_r600.so -Wl,--fatal-warnings -Wl,-rpath,/usr/local/lib/x86_64-linux-gnu -Wl,-rpath-link,/usr/local/lib/x86_64-linux-gnu src/gallium/auxiliary/libgallium.a src/compiler/nir/libnir.a src/compiler/libcompiler.a src/util/libmesa_util.a src/util/format/libmesa_format.a src/util/libmesa_util_sse41.a src/c11/impl/libmesa_util_c11.a src/gallium/auxiliary/libgalliumvl.a src/gallium/drivers/r600/libr600.a src/mesa/libmesa.a src/compiler/glsl/libglsl.a src/compiler/glsl/glcpp/libglcpp.a src/mesa/libmesa_sse41.a src/gallium/winsys/radeon/drm/libradeonwinsys.a -Wl,--gc-sections -Wl,--build-id=sha1 -Wl,--version-script /builds/mesa/mesa/src/gallium/targets/pipe-loader/pipe.sym /usr/lib/x86_64-linux-gnu/libz.so -pthread -lm -ldl /usr/lib/x86_64-linux-gnu/libunwind.so /usr/local/lib/x86_64-linux-gnu/libdrm.so -L/usr/lib/llvm-13/lib -lLLVM-13 /usr/local/lib/x86_64-linux-gnu/libdrm_radeon.so /usr/lib/x86_64-linux-gnu/libelf.so -L/usr/lib/llvm-13/lib -lLLVM-13 -Wl,--end-group
mold: error: /builds/mesa/mesa/src/gallium/targets/pipe-loader/pipe.sym: cannot assign version `global` to symbol `swrast_driver_descriptor`: symbol not found
mold: error: /builds/mesa/mesa/src/gallium/targets/pipe-loader/pipe.sym: cannot assign version `global` to symbol `amdgpu_winsys_create`: symbol not found
mold: error: /builds/mesa/mesa/src/gallium/targets/pipe-loader/pipe.sym: cannot assign version `global` to symbol `ac_init_shared_llvm_once`: symbol not found
collect2: error: ld returned 1 exit status
[1388/1447] Compiling C object src/gallium/drivers/radeonsi/libradeonsi.a.p/radeon_video.c.o
[1389/1447] Linking target src/gallium/targets/pipe-loader/pipe_swrast.so
FAILED: src/gallium/targets/pipe-loader/pipe_swrast.so
debian-build-testing (OK):
c++ -o src/gallium/targets/omx/libomx_mesa.so src/gallium/targets/omx/libomx_mesa.so.p/target.c.o -flto -Wl,--as-needed -Wl,--no-undefined -shared -fPIC -Wl,--start-group -Wl,-soname,libomx_mesa.so -Wl,--whole-archive src/gallium/frontends/omx/libomx_st.a -Wl,--no-whole-archive -Wl,--fatal-warnings -Wl,-rpath,/usr/local/lib/x86_64-linux-gnu -Wl,-rpath-link,/usr/local/lib/x86_64-linux-gnu src/gallium/auxiliary/libgalliumvlwinsys.a src/util/libmesa_util.a src/util/format/libmesa_format.a src/util/libmesa_util_sse41.a src/c11/impl/libmesa_util_c11.a src/gallium/auxiliary/libgalliumvl.a src/gallium/auxiliary/libgallium.a src/compiler/nir/libnir.a src/compiler/libcompiler.a 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/r600/libr600.a src/mesa/libmesa.a src/compiler/glsl/libglsl.a src/compiler/glsl/glcpp/libglcpp.a src/mesa/libmesa_sse41.a src/gallium/winsys/radeon/drm/libradeonwinsys.a src/gallium/winsys/nouveau/drm/libnouveauwinsys.a src/nouveau/codegen/libnouveau_codegen.a src/gallium/drivers/nouveau/libnouveau.a -Wl,--version-script /builds/mesa/mesa/src/gallium/targets/omx/omx.sym -Wl,--gc-sections /usr/lib/x86_64-linux-gnu/libz.so -pthread -lm -ldl /usr/lib/x86_64-linux-gnu/libunwind.so /usr/local/lib/x86_64-linux-gnu/libdrm.so /usr/lib/x86_64-linux-gnu/libxcb-sync.so /usr/lib/x86_64-linux-gnu/libxcb-present.so /usr/lib/x86_64-linux-gnu/libxshmfence.so /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so /usr/lib/x86_64-linux-gnu/libxcb-dri3.so -L/usr/lib/llvm-13/lib -lLLVM-13 /usr/lib/x86_64-linux-gnu/libexpat.so /usr/local/lib/x86_64-linux-gnu/libdrm_radeon.so /usr/lib/x86_64-linux-gnu/libelf.so -L/usr/lib/llvm-13/lib -lLLVM-13 /usr/local/lib/x86_64-linux-gnu/libdrm_nouveau.so /usr/lib/x86_64-linux-gnu/libomxil-bellagio.so /usr/lib/x86_64-linux-gnu/libX11-xcb.so /usr/lib/x86_64-linux-gnu/libX11.so /usr/lib/x86_64-linux-gnu/libxcb.so /usr/lib/x86_64-linux-gnu/libxcb-dri2.so -Wl,--end-group
mold: error: /builds/mesa/mesa/src/gallium/targets/omx/omx.sym: cannot assign version `global` to symbol `OMX_ComponentInit`: symbol not found
mold: error: /builds/mesa/mesa/src/gallium/targets/omx/omx.sym: cannot assign version `global` to symbol `amdgpu_winsys_create`: symbol not found
mold: error: /builds/mesa/mesa/src/gallium/targets/omx/omx.sym: cannot assign version `global` to symbol `ac_init_shared_llvm_once`: symbol not found
mold: error: /builds/mesa/mesa/src/gallium/targets/omx/omx.sym: cannot assign version `global` to symbol `OMX_ComponentInit`: symbol not found
mold: error: /builds/mesa/mesa/src/gallium/targets/omx/omx.sym: cannot assign version `global` to symbol `amdgpu_winsys_create`: symbol not found
mold: error: /builds/mesa/mesa/src/gallium/targets/omx/omx.sym: cannot assign version `global` to symbol `ac_init_shared_llvm_once`: symbol not found
mold: error: /builds/mesa/mesa/src/gallium/targets/omx/omx.sym: cannot assign version `global` to symbol `OMX_ComponentInit`: symbol not found
mold: error: /builds/mesa/mesa/src/gallium/targets/omx/omx.sym: cannot assign version `global` to symbol `amdgpu_winsys_create`: symbol not found
mold: error: /builds/mesa/mesa/src/gallium/targets/omx/omx.sym: cannot assign version `global` to symbol `ac_init_shared_llvm_once`: symbol not found
collect2: error: ld returned 1 exit status
debian-clang and debian-clang-release (OK):
clang++ -o src/gallium/targets/pipe-loader/pipe_i915.so src/gallium/targets/pipe-loader/pipe_i915.so.p/pipe_i915.c.o -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -shared -fPIC -Wl,--start-group -Wl,-soname,pipe_i915.so -Wl,--fatal-warnings -Wl,-rpath,/usr/local/lib/x86_64-linux-gnu -Wl,-rpath-link,/usr/local/lib/x86_64-linux-gnu src/gallium/auxiliary/libgallium.a src/compiler/nir/libnir.a src/compiler/libcompiler.a src/util/libmesa_util.a src/util/format/libmesa_format.a src/util/libmesa_util_sse41.a src/c11/impl/libmesa_util_c11.a src/gallium/auxiliary/libgalliumvl.a src/gallium/auxiliary/libgalliumvlwinsys.a src/gallium/drivers/i915/libi915.a src/gallium/winsys/i915/drm/libi915drm.a src/intel/common/libintel_common.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_tiled_memcpy.a src/intel/isl/libisl_tiled_memcpy_sse41.a -Wl,--gc-sections -Wl,--build-id=sha1 -Wl,--version-script /builds/mesa/mesa/src/gallium/targets/pipe-loader/pipe.sym /usr/lib/x86_64-linux-gnu/libz.so -pthread -lm -ldl /usr/lib/x86_64-linux-gnu/libunwind.so /usr/local/lib/x86_64-linux-gnu/libdrm.so -L/usr/lib/llvm-13/lib -lLLVM-13 /usr/lib/x86_64-linux-gnu/libxcb-sync.so /usr/lib/x86_64-linux-gnu/libxcb-present.so /usr/lib/x86_64-linux-gnu/libxshmfence.so /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so /usr/lib/x86_64-linux-gnu/libxcb-dri3.so /usr/local/lib/x86_64-linux-gnu/libdrm_intel.so /usr/lib/x86_64-linux-gnu/libexpat.so -Wl,--end-group
mold: error: /builds/mesa/mesa/src/gallium/targets/pipe-loader/pipe.sym: cannot assign version `global` to symbol `driver_descriptor`: symbol not found
mold: error: /builds/mesa/mesa/src/gallium/targets/pipe-loader/pipe.sym: cannot assign version `global` to symbol `swrast_driver_descriptor`: symbol not found
mold: error: /builds/mesa/mesa/src/gallium/targets/pipe-loader/pipe.sym: cannot assign version `global` to symbol `radeon_drm_winsys_create`: symbol not found
mold: error: /builds/mesa/mesa/src/gallium/targets/pipe-loader/pipe.sym: cannot assign version `global` to symbol `amdgpu_winsys_create`: symbol not found
mold: error: /builds/mesa/mesa/src/gallium/targets/pipe-loader/pipe.sym: cannot assign version `global` to symbol `ac_init_shared_llvm_once`: symbol not found
clang: error: linker command failed with exit code 1 (use -v to see invocation)
debian-testing (OK):
FAILED: src/gallium/targets/vdpau/libvdpau_gallium.so.1.0.0
c++ -o src/gallium/targets/vdpau/libvdpau_gallium.so.1.0.0 src/gallium/targets/vdpau/libvdpau_gallium.so.1.0.0.p/target.c.o -flto -Wl,--as-needed -Wl,--no-undefined -shared -fPIC -Wl,--start-group -Wl,-soname,libvdpau_gallium.so.1.0.0 -Wl,--whole-archive src/gallium/frontends/vdpau/libvdpau_st.a -Wl,--no-whole-archive -Wl,--fatal-warnings -Wl,-rpath,/usr/local/lib/x86_64-linux-gnu -Wl,-rpath-link,/usr/local/lib/x86_64-linux-gnu src/gallium/auxiliary/libgalliumvlwinsys.a src/util/libmesa_util.a src/util/format/libmesa_format.a src/util/libmesa_util_sse41.a src/c11/impl/libmesa_util_c11.a subprojects/perfetto/libperfetto.a src/gallium/auxiliary/libgalliumvl.a src/gallium/auxiliary/libgallium.a src/compiler/nir/libnir.a src/compiler/libcompiler.a 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_gfx6.a src/gallium/drivers/radeonsi/libradeonsi_gfx7.a src/gallium/drivers/radeonsi/libradeonsi_gfx8.a src/gallium/drivers/radeonsi/libradeonsi_gfx9.a src/gallium/drivers/radeonsi/libradeonsi_gfx10.a src/gallium/drivers/radeonsi/libradeonsi_gfx103.a src/gallium/drivers/radeonsi/libradeonsi_gfx11.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 src/gallium/drivers/virgl/libvirgl.a src/gallium/winsys/virgl/drm/libvirgldrm.a src/gallium/winsys/virgl/common/libvirglcommon.a src/gallium/winsys/virgl/vtest/libvirglvtest.a -Wl,--version-script /builds/mesa/mesa/src/gallium/targets/vdpau/vdpau.sym -Wl,--dynamic-list /builds/mesa/mesa/src/gallium/targets/vdpau/../dri-vdpau.dyn -Wl,--gc-sections /usr/lib/x86_64-linux-gnu/libz.so -pthread -lm -ldl /usr/lib/x86_64-linux-gnu/libunwind.so /usr/local/lib/x86_64-linux-gnu/libdrm.so /usr/lib/x86_64-linux-gnu/libxcb-sync.so /usr/lib/x86_64-linux-gnu/libxcb-present.so /usr/lib/x86_64-linux-gnu/libxshmfence.so /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so /usr/lib/x86_64-linux-gnu/libxcb-dri3.so -L/usr/lib/llvm-13/lib -lLLVM-13 /usr/lib/x86_64-linux-gnu/libexpat.so -L/usr/lib/llvm-13/lib -lLLVM-13 /usr/local/lib/x86_64-linux-gnu/libdrm_radeon.so -L/usr/lib/llvm-13/lib -lLLVM-13 -L/usr/lib/llvm-13/lib -lLLVM-13 -L/usr/lib/llvm-13/lib -lLLVM-13 -L/usr/lib/llvm-13/lib -lLLVM-13 -L/usr/lib/llvm-13/lib -lLLVM-13 -L/usr/lib/llvm-13/lib -lLLVM-13 -L/usr/lib/llvm-13/lib -lLLVM-13 -L/usr/lib/llvm-13/lib -lLLVM-13 /usr/local/lib/x86_64-linux-gnu/libdrm_amdgpu.so /usr/lib/x86_64-linux-gnu/libelf.so -L/usr/lib/llvm-13/lib -lLLVM-13 /usr/lib/x86_64-linux-gnu/libxcb.so /usr/lib/x86_64-linux-gnu/libX11-xcb.so /usr/lib/x86_64-linux-gnu/libX11.so /usr/lib/x86_64-linux-gnu/libxcb-dri2.so -Wl,--end-group
mold: error: /builds/mesa/mesa/src/gallium/targets/vdpau/vdpau.sym: cannot assign version `global` to symbol `nouveau_drm_screen_create`: symbol not found
mold: error: /builds/mesa/mesa/src/gallium/targets/vdpau/../dri-vdpau.dyn: cannot assign version `global` to symbol `nouveau_drm_screen_create`: symbol not found
mold: error: /builds/mesa/mesa/src/gallium/targets/vdpau/vdpau.sym: cannot assign version `global` to symbol `nouveau_drm_screen_create`: symbol not found
mold: error: /builds/mesa/mesa/src/gallium/targets/vdpau/../dri-vdpau.dyn: cannot assign version `global` to symbol `nouveau_drm_screen_create`: symbol not found
mold: error: /builds/mesa/mesa/src/gallium/targets/vdpau/vdpau.sym: cannot assign version `global` to symbol `nouveau_drm_screen_create`: symbol not found
mold: error: /builds/mesa/mesa/src/gallium/targets/vdpau/../dri-vdpau.dyn: cannot assign version `global` to symbol `nouveau_drm_screen_create`: symbol not found
collect2: error: ld returned 1 exit status