diff --git a/local/recipes/dev/libclc/recipe.toml b/local/recipes/dev/libclc/recipe.toml index acff2a1477..7e222228d5 100644 --- a/local/recipes/dev/libclc/recipe.toml +++ b/local/recipes/dev/libclc/recipe.toml @@ -70,16 +70,25 @@ set(LIBCLC_STANDALONE_BUILD TRUE CACHE BOOL "" FORCE) NATIVE_EOF # Run cmake with the host-native toolchain. LIBCLC_TARGETS_TO_BUILD -# is the list of GPU targets Mesa consumes. Default "all" includes -# targets Mesa does not need (ptx-nvidiacl for nvidia, clspv for -# Vulkan-SPIR-V path). Restrict to what Mesa's clc tool actually -# requires: amdgcn, amdgcn-amdhsa, r600, generic, spirv. +# is the list of GPU targets Mesa consumes. The target-name syntax +# in upstream libclc is `--` (double-dash suffix for the +# unspecified-ABI variant) plus the Mesa-specific `amdgcn-mesa-mesa3d` +# for the Mesa3D frontend. Targets not consumed by Mesa (ptx-nvidiacl +# for NVIDIA, clspv for Vulkan-SPIR-V) are excluded. The full set +# covers all gallium drivers Mesa 26.1.4 supports via the clc tool: +# r600 -> r600 (Southern Islands / Evergreen) +# amdgcn-- -> GCN GFX6..GFX12 (default-ABI) +# amdgcn--amdhsa -> GCN with HSA runtime +# amdgcn-mesa-mesa3d -> GCN via the Mesa3D-specific path +# The `spirv` target is handled by Mesa's own clc tool (not libclc +# bitcode); libclc's spirv files are used for mesa's SPIR-V codegen +# in clc, but the .bc files themselves are produced by Mesa's clc. COOKBOOK_CMAKE_FLAGS+=( -DCMAKE_TOOLCHAIN_FILE="$(realpath native_libclc.cmake)" -DCMAKE_BUILD_TYPE=Release -DLLVM_DIR="${COOKBOOK_SYSROOT}/lib/cmake/llvm" -DLIBCLC_STANDALONE_BUILD=TRUE - -DLIBCLC_TARGETS_TO_BUILD="amdgcn;amdgcn-amdhsa;r600;generic;spirv" + -DLIBCLC_TARGETS_TO_BUILD="r600--;amdgcn--;amdgcn--amdhsa;amdgcn-mesa-mesa3d" -DENABLE_RUNTIME_SUBNORMAL=OFF -DCMAKE_INSTALL_PREFIX="${COOKBOOK_STAGE}/usr" -DCMAKE_INSTALL_LIBDIR=lib