Skip to content

mesa: update to 26.2.3 - #62137

Open
onlylunix wants to merge 2 commits into
void-linux:masterfrom
onlylunix:mesa26.2-update
Open

onlylunix wants to merge 2 commits into
void-linux:masterfrom
onlylunix:mesa26.2-update

Conversation

@onlylunix

Copy link
Copy Markdown
Contributor

Testing the changes

  • I tested the changes in this PR: YES

Local build testing

  • I built this PR locally for my native architecture, (x86_64-LIBC)

@onlylunix

Copy link
Copy Markdown
Contributor Author

@dkwo

dkwo commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

is it currently failing to cross compile to arm 32 bit also with llvm21? is it the same error as llvm22? I see now in ci:

In file included from ../src/amd/addrlib/src/core/addrswizzler.cpp:18:
../src/amd/addrlib/src/core/addrswizzlersimd.h: In static member function 'static void Addr::MicroSw_2D_1BPE_NEON::CopyMicroBlock(void*, const void*, size_t, size_t)':
../src/amd/addrlib/src/core/addrswizzlersimd.h:1157:29: error: 'vzip1q_u32' was not declared in this scope; did you mean 'vzipq_u32'?

@dkwo

dkwo commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Maybe we can restrict which drivers are built for arm32?

@onlylunix

Copy link
Copy Markdown
Contributor Author

Maybe we can restrict which drivers are built for arm32?

Yes, packages are created by adding the following:

@@ -157,6 +157,12 @@
 # amd implicitly enables clover opencl, also enable hwdec and virgl too
 case "$XBPS_TARGET_MACHINE" in
 	armv5*|mips*) ;;
+	armv[67]*)
+		_have_nv=yes
+		#_have_amd=yes
+		_have_hwdec=yes
+		_have_virgl=yes
+		;;
 	*)
 		_have_nv=yes
 		_have_amd=yes

@onlylunix

Copy link
Copy Markdown
Contributor Author

@dkwo
used llvm22

@onlylunix
onlylunix marked this pull request as draft August 23, 2026 13:04
@onlylunix

onlylunix commented Aug 23, 2026

Copy link
Copy Markdown
Contributor Author

@Duncaen , @dkwo
I discovered that after building Mesa with llvm22, Mesa OpenCL (RUSTICL) stops working.
An error occurs when running clinfo:

$ RUSTICL_ENABLE=iris clinfo
Libclc failed to load. Please make sure it is installed and provides
                spirv-mesa3d-.spv and/or spirv64-mesa3d-.spv
...

The problem was resolved only after making the following fixes to the mesa template, which indicates an error in the libclc22 (llvm22) package:

pre_configure() {
	vsed -i "s|libexecdir=/usr/lib/llvm/${_llvmver}/share/clc|libexecdir=/usr/lib/llvm/${_llvmver}/lib/clang/${_llvmver}/lib/libclc|" \
	/usr/lib/llvm/${_llvmver}/share/pkgconfig/libclc.pc
}

Add fixes to the template mesa or wait for a fix in the libclc22 (llvm22) package?

@onlylunix

Copy link
Copy Markdown
Contributor Author

Or rollback to llvm21?

@onlylunix

onlylunix commented Aug 24, 2026

Copy link
Copy Markdown
Contributor Author

Ok, create pull request "libclc22: fix libclc.pc" #62204

@onlylunix onlylunix changed the title mesa: update to 26.2.1 mesa: update to 26.2.2 Sep 3, 2026
@onlylunix
onlylunix force-pushed the mesa26.2-update branch 2 times, most recently from d239a13 to 7fcb09a Compare September 12, 2026 18:44
@onlylunix
onlylunix force-pushed the mesa26.2-update branch 3 times, most recently from 11cbc1e to d7c501e Compare September 14, 2026 04:52
@onlylunix
onlylunix marked this pull request as ready for review September 14, 2026 10:19
@onlylunix
onlylunix force-pushed the mesa26.2-update branch 2 times, most recently from 92e43b7 to 886ff7c Compare September 14, 2026 20:02
@onlylunix
onlylunix marked this pull request as draft September 16, 2026 12:38
@onlylunix onlylunix changed the title mesa: update to 26.2.2 mesa: update to 26.2.3 Sep 16, 2026
@onlylunix

onlylunix commented Sep 17, 2026

Copy link
Copy Markdown
Contributor Author

@onlylunix
onlylunix marked this pull request as ready for review September 17, 2026 18:27
@onlylunix

Copy link
Copy Markdown
Contributor Author

@Duncaen , @dkwo

Comment thread srcpkgs/mesa-libclc/template Outdated
Comment thread srcpkgs/mesa-libclc/template Outdated
Comment thread srcpkgs/mesa-libclc/template
Comment thread srcpkgs/mesa-libclc/template
Comment thread srcpkgs/mesa/template
Comment thread srcpkgs/mesa/template Outdated
Comment on lines +327 to +331
# Fix error: Unable to generate bindings: clang diagnosed error: /usr/armv7l-linux-gnueabihf/usr/lib/llvm/22/include/llvm/ADT/DenseMapInfo.h:17:10: fatal error: 'cassert' file not found
# The sed patch adds three -I flags directly to the c_args array in the rust.bindgen() call for rusticl_llvm_bindings.
# These flags are passed to the clang command after --, so clang can locate <cassert>, bits/c++config.h, and the rest of the C++ headers for the target platform.
sed -i "s|rusticl_bindgen_c_args,|rusticl_bindgen_c_args, '-I${_incdir}', '-I${_cppdir}', '-I${_cpptargetdir}',|g" \
src/gallium/frontends/rusticl/meson.build

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems like a workaround , is it missing the --sysroot flag?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually I think that the whole pre_configure might be fixed by adding rust build helper? because it defines:

export BINDGEN_EXTRA_CLANG_ARGS+=" --sysroot=${XBPS_CROSS_BASE} -I${XBPS_CROSS_BASE}/usr/include"

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After adding rust build helper

-build_helper="qemu"
+build_helper="qemu rust"

the error remained the same as here: https://github.com/void-linux/void-packages/actions/runs/35151863888/job/104981865743?pr=62137#step:7:4737

@Duncaen Duncaen Sep 18, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like the issue is that llvm22-devel includes a copy of libc++ headers that are included for some reason.

FAILED: [code=1] src/gallium/frontends/rusticl/rusticl_llvm_bindings.rs                                                                                                                                           23:17 [2547/4604]
/usr/bin/bindgen ../src/gallium/frontends/rusticl/rusticl_llvm_bindings.hpp --output /builddir/mesa-26.2.3/build/src/gallium/frontends/rusticl/rusticl_llvm_bindings.rs --wrap-unsafe-ops --raw-line '#![allow(clippy::all)]' --raw
-line '#![allow(improper_ctypes)]' --raw-line '#![allow(unused_unsafe)]' --raw-line '#![allow(non_camel_case_types)]' --raw-line '#![allow(non_snake_case)]' --raw-line '#![allow(non_upper_case_globals)]' --raw-line '#![allow(un
safe_op_in_unsafe_fn)]' --raw-line '#![allow(unnecessary_transmutes)]' --generate constructors,functions,types,vars --opaque-type '.*' --allowlist-function clang::getClangFullVersion --allowlist-function llvm::LLVMContext::LLVM
Context --allowlist-function llvm::writeSpirv --allowlist-var 'LLVM_VERSION_.*' --rust-target 1.98.0 --rust-edition 2021 -- -fno-builtin-malloc -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS '-DPACKAGE_VE
RSION="26.2.3"' '-DPACKAGE_BUGREPORT="https://gitlab.freedesktop.org/mesa/mesa/-/issues"' -DHAVE_OPENGL=1 -DHAVE_OPENGL_ES_1=1 -DHAVE_OPENGL_ES_2=1 -DHAVE_SOFTPIPE -DHAVE_R300 -DHAVE_R600 -DHAVE_RADEONSI -DHAVE_NOUVEAU -DHAVE_T
EGRA -DHAVE_V3D -DHAVE_VC4 -DHAVE_FREEDRENO -DHAVE_ETNAVIV -DHAVE_LIMA -DHAVE_PANFROST -DHAVE_ASAHI -DHAVE_VIRGL -DHAVE_SVGA -DHAVE_D3D12 -DHAVE_ZINK -DHAVE_SWRAST -DMESA_SYSTEM_HAS_KMS_DRM=1 -DHAVE_NVK -DVIDEO_CODEC_VC1DEC=1 -
DVIDEO_CODEC_H264DEC=1 -DVIDEO_CODEC_H264ENC=1 -DVIDEO_CODEC_H265DEC=1 -DVIDEO_CODEC_H265ENC=1 -DVIDEO_CODEC_AV1DEC=1 -DVIDEO_CODEC_AV1ENC=1 -DVIDEO_CODEC_VP9DEC=1 -DVIDEO_CODEC_MPEG12DEC=1 -DVIDEO_CODEC_JPEGDEC=1 -DHAVE_LIBGBM
 -DHAVE_X11_PLATFORM -DHAVE_WAYLAND_PLATFORM -DHAVE_SURFACELESS_PLATFORM -DHAVE_DRM_PLATFORM -DHAVE_XCB_PLATFORM -DUSE_LIBGLVND=1 -DUSE_D3D12_PREVIEW_HEADERS=0 -DHAVE_GALLIUM_D3D12_VIDEO -DHAVE_VA_SURFACE_ATTRIB_DRM_FORMAT_MODI
FIERS -DHAVE_GFX_COMPUTE -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_DRM -DGLAPI_EXPORT_PROTO_ENTRY_POINTS=0 -DALLOW_KCMP -DMESA_DEBUG=0 -DENABLE_SHADER_CACHE -DHAVE___BUILTIN_BSWAP32 -DHAVE___BUILTIN_BSWAP64 -DHA
VE___BUILTIN_CLZ -DHAVE___BUILTIN_CLZLL -DHAVE___BUILTIN_CTZ -DHAVE___BUILTIN_EXPECT -DHAVE___BUILTIN_FFS -DHAVE___BUILTIN_FFSLL -DHAVE___BUILTIN_POPCOUNT -DHAVE___BUILTIN_POPCOUNTLL -DHAVE___BUILTIN_UNREACHABLE -DHAVE___BUILTI
N_TYPES_COMPATIBLE_P -DHAVE___BUILTIN_ADD_OVERFLOW -DHAVE___BUILTIN_ADD_OVERFLOW_P -DHAVE___BUILTIN_SUB_OVERFLOW_P -DHAVE___BUILTIN_AARCH64_GET_FPCR -DHAVE___BUILTIN_AARCH64_SET_FPCR -DHAVE_FUNC_ATTRIBUTE_CONST -DHAVE_FUNC_ATTR
IBUTE_FLATTEN -DHAVE_FUNC_ATTRIBUTE_MALLOC -DHAVE_FUNC_ATTRIBUTE_PURE -DHAVE_FUNC_ATTRIBUTE_UNUSED -DHAVE_FUNC_ATTRIBUTE_WARN_UNUSED_RESULT -DHAVE_FUNC_ATTRIBUTE_WEAK -DHAVE_FUNC_ATTRIBUTE_FORMAT -DHAVE_FUNC_ATTRIBUTE_PACKED -D
HAVE_FUNC_ATTRIBUTE_RETURNS_NONNULL -DHAVE_FUNC_ATTRIBUTE_ALIAS -DHAVE_FUNC_ATTRIBUTE_NORETURN -DHAVE_FUNC_ATTRIBUTE_OPTIMIZE -DHAVE_FUNC_ATTRIBUTE_COLD -DHAVE_FUNC_ATTRIBUTE_VISIBILITY -DHAVE_UINT128 -DHAVE_REALLOCARRAY -DHAVE
_FMEMOPEN -D_GNU_SOURCE -DUSE_GCC_ATOMIC_BUILTINS -DMAJOR_IN_SYSMACROS -DHAS_SCHED_H -DHAS_SCHED_GETAFFINITY -DHAVE_LINUX_FUTEX_H -DHAVE_ENDIAN_H -DHAVE_DLFCN_H -DHAVE_SYS_SHM_H -DHAVE_POLL_H -DHAVE_SYS_INOTIFY_H -DHAVE_LINUX_U
DMABUF_H -DHAVE_STRTOF -DHAVE_MKOSTEMP -DHAVE_MEMFD_CREATE -DHAVE_RANDOM_R -DHAVE_FLOCK -DHAVE_STRTOK_R -DHAVE_GETRANDOM -DHAVE_POSIX_FALLOCATE -DHAVE_SECURE_GETENV -DHAVE_SYSCONF -DHAVE_GNU_QSORT_R -DHAVE_STRUCT_TIMESPEC -DHAV
E_PROGRAM_INVOCATION_NAME -DHAVE_ISSIGNALING -DHAVE_POSIX_MEMALIGN -DHAVE_DIRENT_D_TYPE -DHAVE_STRTOD_L -DHAVE_DLADDR -DHAVE_DL_ITERATE_PHDR -DHAVE_ZLIB -DHAVE_ZSTD -DHAVE_COMPRESSION -DHAVE_PTHREAD -DHAVE_PTHREAD_SETAFFINITY -
DHAVE_LIBDRM -DHAVE_LIBUDEV '-DMESA_LLVM_VERSION_STRING="22.1.4"' -DLLVM_IS_SHARED=1 -DDRAW_LLVM_AVAILABLE=1 -DAMD_LLVM_AVAILABLE=1 -DGALLIVM_USE_ORCJIT=0 -DHAVE_SPIRV_TOOLS -DUSE_LIBELF -DTHREAD_SANITIZER=0 -DWL_HIDE_DEPRECATE
D -DHAVE_WL_DISPATCH_QUEUE_TIMEOUT -DHAVE_WL_CREATE_QUEUE_WITH_NAME -DHAVE_X11_DRM -DHAVE_DRI -DHAVE_DRI2 -DHAVE_DRI3_EXPLICIT_SYNC -DHAVE_DRISW_KMS -DHAVE_LIBSENSORS=1 -DHAVE_RENDERDOC_INTEGRATION=1 -DHAVE_ETNAVIV_NO_PEST -tar
get aarch64-linux-gnu --target=aarch64-unknown-linux-gnu -D_FILE_OFFSET_BITS=64 -DNDEBUG -D_GNU_SOURCE -D_GLIBCXX_USE_CXX11_ABI=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -pthread -D__STDC_CONSTANT_
MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS '-DPACKAGE_VERSION="26.2.3"' '-DPACKAGE_BUGREPORT="https://gitlab.freedesktop.org/mesa/mesa/-/issues"' -DHAVE_OPENGL=1 -DHAVE_OPENGL_ES_1=1 -DHAVE_OPENGL_ES_2=1 -DHAVE_SOFTPIP
E -DHAVE_R300 -DHAVE_R600 -DHAVE_RADEONSI -DHAVE_NOUVEAU -DHAVE_TEGRA -DHAVE_V3D -DHAVE_VC4 -DHAVE_FREEDRENO -DHAVE_ETNAVIV -DHAVE_LIMA -DHAVE_PANFROST -DHAVE_ASAHI -DHAVE_VIRGL -DHAVE_SVGA -DHAVE_D3D12 -DHAVE_ZINK -DHAVE_SWRAS
T -DMESA_SYSTEM_HAS_KMS_DRM=1 -DHAVE_NVK -DVIDEO_CODEC_VC1DEC=1 -DVIDEO_CODEC_H264DEC=1 -DVIDEO_CODEC_H264ENC=1 -DVIDEO_CODEC_H265DEC=1 -DVIDEO_CODEC_H265ENC=1 -DVIDEO_CODEC_AV1DEC=1 -DVIDEO_CODEC_AV1ENC=1 -DVIDEO_CODEC_VP9DEC=
1 -DVIDEO_CODEC_MPEG12DEC=1 -DVIDEO_CODEC_JPEGDEC=1 -DHAVE_LIBGBM -DHAVE_X11_PLATFORM -DHAVE_WAYLAND_PLATFORM -DHAVE_SURFACELESS_PLATFORM -DHAVE_DRM_PLATFORM -DHAVE_XCB_PLATFORM -DUSE_LIBGLVND=1 -DUSE_D3D12_PREVIEW_HEADERS=0 -D
HAVE_GALLIUM_D3D12_VIDEO -DHAVE_VA_SURFACE_ATTRIB_DRM_FORMAT_MODIFIERS -DHAVE_GFX_COMPUTE -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_DRM -DGLAPI_EXPORT_PROTO_ENTRY_POINTS=0 -DALLOW_KCMP -DMESA_DEBUG=0 -DENABLE_SH
ADER_CACHE -DHAVE___BUILTIN_BSWAP32 -DHAVE___BUILTIN_BSWAP64 -DHAVE___BUILTIN_CLZ -DHAVE___BUILTIN_CLZLL -DHAVE___BUILTIN_CTZ -DHAVE___BUILTIN_EXPECT -DHAVE___BUILTIN_FFS -DHAVE___BUILTIN_FFSLL -DHAVE___BUILTIN_POPCOUNT -DHAVE_
__BUILTIN_POPCOUNTLL -DHAVE___BUILTIN_UNREACHABLE -DHAVE___BUILTIN_TYPES_COMPATIBLE_P -DHAVE___BUILTIN_ADD_OVERFLOW -DHAVE___BUILTIN_ADD_OVERFLOW_P -DHAVE___BUILTIN_SUB_OVERFLOW_P -DHAVE___BUILTIN_AARCH64_GET_FPCR -DHAVE___BUIL
TIN_AARCH64_SET_FPCR -DHAVE_FUNC_ATTRIBUTE_CONST -DHAVE_FUNC_ATTRIBUTE_FLATTEN -DHAVE_FUNC_ATTRIBUTE_MALLOC -DHAVE_FUNC_ATTRIBUTE_PURE -DHAVE_FUNC_ATTRIBUTE_UNUSED -DHAVE_FUNC_ATTRIBUTE_WARN_UNUSED_RESULT -DHAVE_FUNC_ATTRIBUTE_
WEAK -DHAVE_FUNC_ATTRIBUTE_FORMAT -DHAVE_FUNC_ATTRIBUTE_PACKED -DHAVE_FUNC_ATTRIBUTE_RETURNS_NONNULL -DHAVE_FUNC_ATTRIBUTE_ALIAS -DHAVE_FUNC_ATTRIBUTE_NORETURN -DHAVE_FUNC_ATTRIBUTE_OPTIMIZE -DHAVE_FUNC_ATTRIBUTE_COLD -DHAVE_FU
NC_ATTRIBUTE_VISIBILITY -DHAVE_UINT128 -DHAVE_REALLOCARRAY -DHAVE_FMEMOPEN -D_GNU_SOURCE -DUSE_GCC_ATOMIC_BUILTINS -DMAJOR_IN_SYSMACROS -DHAS_SCHED_H -DHAS_SCHED_GETAFFINITY -DHAVE_LINUX_FUTEX_H -DHAVE_ENDIAN_H -DHAVE_DLFCN_H -
DHAVE_SYS_SHM_H -DHAVE_POLL_H -DHAVE_SYS_INOTIFY_H -DHAVE_LINUX_UDMABUF_H -DHAVE_STRTOF -DHAVE_MKOSTEMP -DHAVE_MEMFD_CREATE -DHAVE_RANDOM_R -DHAVE_FLOCK -DHAVE_STRTOK_R -DHAVE_GETRANDOM -DHAVE_POSIX_FALLOCATE -DHAVE_SECURE_GETE
NV -DHAVE_SYSCONF -DHAVE_GNU_QSORT_R -DHAVE_STRUCT_TIMESPEC -DHAVE_PROGRAM_INVOCATION_NAME -DHAVE_ISSIGNALING -DHAVE_POSIX_MEMALIGN -DHAVE_DIRENT_D_TYPE -DHAVE_STRTOD_L -DHAVE_DLADDR -DHAVE_DL_ITERATE_PHDR -DHAVE_ZLIB -DHAVE_ZS
TD -DHAVE_COMPRESSION -DHAVE_PTHREAD -DHAVE_PTHREAD_SETAFFINITY -DHAVE_LIBDRM -DHAVE_LIBUDEV '-DMESA_LLVM_VERSION_STRING="22.1.4"' -DLLVM_IS_SHARED=1 -DDRAW_LLVM_AVAILABLE=1 -DAMD_LLVM_AVAILABLE=1 -DGALLIVM_USE_ORCJIT=0 -DHAVE_
SPIRV_TOOLS -DUSE_LIBELF -DTHREAD_SANITIZER=0 -DWL_HIDE_DEPRECATED -DHAVE_WL_DISPATCH_QUEUE_TIMEOUT -DHAVE_WL_CREATE_QUEUE_WITH_NAME -DHAVE_X11_DRM -DHAVE_DRI -DHAVE_DRI2 -DHAVE_DRI3_EXPLICIT_SYNC -DHAVE_DRISW_KMS -DHAVE_LIBSEN
SORS=1 -DHAVE_RENDERDOC_INTEGRATION=1 -D_FORTIFY_SOURCE=2 -I/usr/aarch64-linux-gnu/usr/include -x c++ -std=gnu++17 -MD -MQ ../src/gallium/frontends/rusticl/rusticl_llvm_bindings.hpp -MF src/gallium/frontends/rusticl/rusticl_llv
m_bindings.hpp.d -v                                                                                                                                                                                                                
clang version 22.1.4                                                                                                                                                                                                               
Target: aarch64-unknown-linux-gnu                                                                                                                                                                                                  
Thread model: posix                                                                                                                                                                                                                
InstalledDir:                                                                                                                                                                                                                      
System configuration file directory: /etc/clang22                                                                                                                                                                                  
Found candidate GCC installation: /../lib/gcc/aarch64-linux-gnu/14.2                                                                                                                                                               
Found candidate GCC installation: /../lib/gcc/aarch64-linux-gnu/14.2.1                                                                                                                                                             
Found candidate GCC installation: /../lib64/gcc/aarch64-linux-gnu/14.2                                                                                                                                                             
Found candidate GCC installation: /../lib64/gcc/aarch64-linux-gnu/14.2.1                                                                                                                                                           
Selected GCC installation: /../lib64/gcc/aarch64-linux-gnu/14.2                                                                                                                                                                    
Candidate multilib: .;@m64                                                                                                                                                                                                         
Selected multilib: .;@m64                                                                                                                                                                                                          
ignoring nonexistent directory "lib/clang/22/include"                                                                                                                                                                              
ignoring duplicate directory "/usr/aarch64-linux-gnu/usr/include"                                                                                                                                                                  
ignoring duplicate directory "/usr/aarch64-linux-gnu/include"                                                                                                                                                                      
  as it is a non-system directory that duplicates a system directory                                                                                                                                                               
ignoring duplicate directory "/usr/aarch64-linux-gnu/usr/local/include"                                                                                                                                                            
ignoring duplicate directory "/../lib64/gcc/aarch64-linux-gnu/14.2/../../../../aarch64-linux-gnu/include"                                                                                                                          
ignoring duplicate directory "/usr/aarch64-linux-gnu/include"                                                                                                                                                                      
ignoring duplicate directory "/usr/aarch64-linux-gnu/usr/include"                                                                                                                                                                  
#include "..." search starts here:                                                                                                                                                                                                 
#include <...> search starts here:                                                                                                                                                                                                 
 /usr/lib/llvm/22/lib/clang/22/include                                                                                                                                                                                             
 /usr/aarch64-linux-gnu/usr/local/include                                                                                                                                                                                          
 /usr/aarch64-linux-gnu/include                                                                                                                                                                                                    
 /../lib64/gcc/aarch64-linux-gnu/14.2/../../../../aarch64-linux-gnu/include/c++/14.2
 /../lib64/gcc/aarch64-linux-gnu/14.2/../../../../aarch64-linux-gnu/include/c++/14.2/aarch64-linux-gnu
 /../lib64/gcc/aarch64-linux-gnu/14.2/../../../../aarch64-linux-gnu/include/c++/14.2/backward
End of search list.

Adding the glibc include dirs on top as -I includes makes them higher priority, even if they are already in the list too.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was not actually the real issue, I fixed the useless libc++ duplication in clang, but that didn't solve it.

The real issue is the order of the include directories, at least for this issue:

Unable to generate bindings: clang diagnosed error: /../lib64/gcc/aarch64-linux-gnu/14.2/../../../../aarch64-linux-gnu/include/c++/14.2/cstdlib:79:15: fatal error: 'stdlib.h' file not found
    76  // Need to ensure this finds the C library's <stdlib.h> not a libstdc++
    77  // wrapper that might already be installed later in the include search path.
    78  #define _GLIBCXX_INCLUDE_NEXT_C_HEADERS
    79  #include_next <stdlib.h>                
    80  #undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS

The search list is backwards for this to work when its using --target/--sysroot.

A native builds search path looks like this:

 clang++ -v /tmp/test.cpp                                                                           
clang version 22.1.8
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/lib/llvm/22/bin
System configuration file directory: /etc/clang22
Found candidate GCC installation: /usr/lib/gcc/x86_64-unknown-linux-gnu/14.2
Found candidate GCC installation: /usr/lib/gcc/x86_64-unknown-linux-gnu/14.2.1
Found candidate GCC installation: /usr/lib64/gcc/x86_64-unknown-linux-gnu/14.2
Found candidate GCC installation: /usr/lib64/gcc/x86_64-unknown-linux-gnu/14.2.1
Selected GCC installation: /usr/lib64/gcc/x86_64-unknown-linux-gnu/14.2
Candidate multilib: .;@m64
Selected multilib: .;@m64
 "/usr/lib/llvm/22/bin/clang-22" -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -dumpdir a- -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name test.cpp -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/builddir/mesa-26.2.3 -v -fcoverage-compilation-dir=/builddir/mesa-26.2.3 -resource-dir /usr/lib/llvm/22/lib/clang/22 -internal-isystem /usr/lib64/gcc/x86_64-unknown-linux-gnu/14.2/../../../../include/c++/14.2 -internal-isystem /usr/lib64/gcc/x86_64-unknown-linux-gnu/14.2/../../../../include/c++/14.2/x86_64-unknown-linux-gnu -internal-isystem /usr/lib64/gcc/x86_64-unknown-linux-gnu/14.2/../../../../include/c++/14.2/backward -internal-isystem /usr/lib/llvm/22/lib/clang/22/include -internal-isystem /usr/local/include -internal-isystem /usr/lib64/gcc/x86_64-unknown-linux-gnu/14.2/../../../../x86_64-unknown-linux-gnu/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdeprecated-macro -ferror-limit 19 -fmessage-length=227 -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -fcolor-diagnostics -faddrsig -fdwarf2-cfi-asm -o /tmp/test-82f9c4.o -x c++ /tmp/test.cpp
clang -cc1 version 22.1.8 based upon LLVM 22.1.8 default target x86_64-unknown-linux-gnu
ignoring nonexistent directory "/usr/lib64/gcc/x86_64-unknown-linux-gnu/14.2/../../../../x86_64-unknown-linux-gnu/include"
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib64/gcc/x86_64-unknown-linux-gnu/14.2/../../../../include/c++/14.2
 /usr/lib64/gcc/x86_64-unknown-linux-gnu/14.2/../../../../include/c++/14.2/x86_64-unknown-linux-gnu
 /usr/lib64/gcc/x86_64-unknown-linux-gnu/14.2/../../../../include/c++/14.2/backward
 /usr/lib/llvm/22/lib/clang/22/include
 /usr/local/include
 /usr/include
End of search list.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems to work without it now, but build_helper="rust" adding:

	# Crates that use bindgen via build.rs are not cross-aware unless these are set
	export BINDGEN_EXTRA_CLANG_ARGS+=" --sysroot=${XBPS_CROSS_BASE} -I${XBPS_CROSS_BASE}/usr/include"

messes it up. With --sysroot its unable to find the gcc installation, because there is not a real gcc installation in the sysroot.

[duncan@/home/duncan/repos/void-packages/masterdir-x86_64 /]$ clang++ -target aarch64-linux-gnu /tmp/test.cpp -v
clang version 22.1.8
Target: aarch64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/lib/llvm/22/bin
System configuration file directory: /etc/clang22
Found candidate GCC installation: /usr/lib/gcc/aarch64-linux-gnu/14.2
Found candidate GCC installation: /usr/lib/gcc/aarch64-linux-gnu/14.2.1
Found candidate GCC installation: /usr/lib64/gcc/aarch64-linux-gnu/14.2
Found candidate GCC installation: /usr/lib64/gcc/aarch64-linux-gnu/14.2.1
Selected GCC installation: /usr/lib64/gcc/aarch64-linux-gnu/14.2
Candidate multilib: .;@m64
Selected multilib: .;@m64
 "/usr/lib/llvm/22/bin/clang-22" -cc1 -triple aarch64-unknown-linux-gnu -emit-obj -dumpdir a- -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name test.cpp -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=non-leaf-no-reserve -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -enable-tlsdesc -target-cpu generic -target-feature +v8a -target-feature +fp-armv8 -target-feature +neon -target-abi aapcs -debugger-tuning=gdb -fdebug-compilation-dir=/ -v -fcoverage-compilation-dir=/ -resource-dir /usr/lib/llvm/22/lib/clang/22 -internal-isystem /usr/lib64/gcc/aarch64-linux-gnu/14.2/../../../../aarch64-linux-gnu/include/c++/14.2 -internal-isystem /usr/lib64/gcc/aarch64-linux-gnu/14.2/../../../../aarch64-linux-gnu/include/c++/14.2/aarch64-linux-gnu -internal-isystem /usr/lib64/gcc/aarch64-linux-gnu/14.2/../../../../aarch64-linux-gnu/include/c++/14.2/backward -internal-isystem /usr/lib/llvm/22/lib/clang/22/include -internal-isystem /usr/local/include -internal-isystem /usr/lib64/gcc/aarch64-linux-gnu/14.2/../../../../aarch64-linux-gnu/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdeprecated-macro -ferror-limit 19 -fmessage-length=227 -fno-signed-char -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -fcolor-diagnostics -target-feature +outline-atomics -target-feature -fmv -faddrsig -fdwarf2-cfi-asm -o /tmp/test-961f7b.o -x c++ /tmp/test.cpp
clang -cc1 version 22.1.8 based upon LLVM 22.1.8 default target x86_64-unknown-linux-gnu
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib64/gcc/aarch64-linux-gnu/14.2/../../../../aarch64-linux-gnu/include/c++/14.2
 /usr/lib64/gcc/aarch64-linux-gnu/14.2/../../../../aarch64-linux-gnu/include/c++/14.2/aarch64-linux-gnu
 /usr/lib64/gcc/aarch64-linux-gnu/14.2/../../../../aarch64-linux-gnu/include/c++/14.2/backward
 /usr/lib/llvm/22/lib/clang/22/include
 /usr/local/include
 /usr/lib64/gcc/aarch64-linux-gnu/14.2/../../../../aarch64-linux-gnu/include
 /usr/include
End of search list.

Comment thread srcpkgs/mesa/template Outdated
@onlylunix
onlylunix force-pushed the mesa26.2-update branch 2 times, most recently from 73cbef2 to a6ed986 Compare September 18, 2026 03:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants