From 26e03d11a0392d003ea3889926ee2e19883b9d33 Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Sat, 9 May 2026 23:59:36 +0100 Subject: [PATCH] llvm-mesa: update to 22.1.5 / SPIRV-LLVM-Translator 22.1.2 Bump the Mesa-internal LLVM (kept in feeds/video/libs/llvm/) from 21.1.3 to 22.1.5, and the matching SPIRV-LLVM-Translator from 21.1.1 to 22.1.2. The SPIRV-LLVM-Translator's major version tracks LLVM's major, so it caps which LLVM major we can move to. Khronos has now shipped v22.1.2 (latest in the 22.x series), allowing the LLVM major bump. Mesa 26.0.6 sets only a minimum LLVM (>= 18 / 15 / 8 depending on the requested driver set); no upper bound, so LLVM 22.x is acceptable. Two LLVM 22 build-system changes need adapting in the Makefile: 1. LIBCLC_TARGETS_TO_BUILD got stricter target name validation: 'amdgcn--amdhsa' is rejected in favour of 'amdgcn-amd-amdhsa', and the 32-bit nvptx ('nvptx--', 'nvptx--nvidiacl') targets were dropped (the 64-bit equivalents remain). 2. libclc bytecode now installs under 'usr/lib/clang//lib/libclc/' rather than the previous 'usr/share/clc/'. Adjust the SPIR-V .spv copy in Build/Install to source from the new location (a glob on the major version avoids re-touching this on the next bump). The downstream 100-allow-arc-target.patch still applies unchanged. Link: https://github.com/llvm/llvm-project/releases/tag/llvmorg-22.1.5 Link: https://github.com/KhronosGroup/SPIRV-LLVM-Translator/releases/tag/v22.1.2 Signed-off-by: Daniel Golle --- libs/llvm/Makefile | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/libs/llvm/Makefile b/libs/llvm/Makefile index 7430641..17a7da1 100644 --- a/libs/llvm/Makefile +++ b/libs/llvm/Makefile @@ -1,17 +1,17 @@ include $(TOPDIR)/rules.mk PKG_NAME:=llvm-project -PKG_VERSION:=21.1.3 +PKG_VERSION:=22.1.5 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).src.tar.xz PKG_SOURCE_URL:=https://github.com/llvm/llvm-project/releases/download/llvmorg-$(PKG_VERSION) -PKG_HASH:=9c9db50d8046f668156d83f6b594631b4ca79a0d96e4f19bed9dc019b022e58f +PKG_HASH:=7972b87b705a003ce70ab55f9f0fb495d156887cba0eb296d284731139118e2c PKG_CPE_ID:=cpe:/a:llvm:llvm -SPIRV_LLVM_TRANSLATOR_VERSION:=21.1.1 +SPIRV_LLVM_TRANSLATOR_VERSION:=22.1.2 SPIRV_LLVM_TRANSLATOR_FILE:=SPIRV-LLVM-Translator-$(SPIRV_LLVM_TRANSLATOR_VERSION).tar.gz SPIRV_LLVM_TRANSLATOR_URL:=https://codeload.github.com/KhronosGroup/SPIRV-LLVM-Translator/tar.gz/v$(SPIRV_LLVM_TRANSLATOR_VERSION)? -SPIRV_LLVM_TRANSLATOR_HASH:=dda46febdb060a1d5cc2ceeb9682ccaf33e55ae294fd0793274531b54f07c46b +SPIRV_LLVM_TRANSLATOR_HASH:=b37196b1a1a60282a24cf937ab7d6807d7d54dc718f2a37a78e211be26df57ac HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/llvm-mesa/$(PKG_NAME)-$(PKG_VERSION).src PKG_BUILD_DIR:=$(BUILD_DIR)/llvm-mesa/$(PKG_NAME)-$(PKG_VERSION).src @@ -141,7 +141,7 @@ CMAKE_OPTIONS += \ -DCOMPILER_RT_BUILD_PROFILE=OFF \ -DCOMPILER_RT_BUILD_MEMPROF=OFF \ -DLIBCLC_CUSTOM_LLVM_TOOLS_BINARY_DIR="$(STAGING_DIR_HOST)/llvm-mesa/bin" \ - -DLIBCLC_TARGETS_TO_BUILD="amdgcn--;amdgcn--amdhsa;clspv--;clspv64--;r600--;nvptx--;nvptx64--;nvptx--nvidiacl;nvptx64--nvidiacl;amdgcn-mesa-mesa3d;spirv-mesa3d-;spirv64-mesa3d-" \ + -DLIBCLC_TARGETS_TO_BUILD="amdgcn--;amdgcn-amd-amdhsa;clspv--;clspv64--;r600--;nvptx64--;nvptx64--nvidiacl;amdgcn-mesa-mesa3d;spirv-mesa3d-;spirv64-mesa3d-" \ -DLLVM_TARGET_ARCH=$(LLVM_TARGET_ARCH) \ -DLLVM_TARGETS_TO_BUILD="$(subst $(space),;,$(LLVM_TARGETS_TO_BUILD))" \ -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="$(subst $(space),;,$(LLVM_EXPERIMENTAL_TARGETS_TO_BUILD))" \ @@ -255,8 +255,10 @@ endef define Build/Install $(call Build/Install/Default) # hack: install SPIRV OpenCL libs also to host build to avoid having to build LLVM three times +# (LLVM >= 22 installs libclc bytecode under usr/lib/clang//lib/libclc/ +# rather than the previous usr/share/clc/) $(INSTALL_DIR) $(CMAKE_HOST_INSTALL_PREFIX)/share/clc - $(CP) $(PKG_INSTALL_DIR)/usr/share/clc/spirv{,64}-mesa3d-.spv $(CMAKE_HOST_INSTALL_PREFIX)/share/clc + $(CP) $(PKG_INSTALL_DIR)/usr/lib/clang/*/lib/libclc/spirv{,64}-mesa3d-.spv $(CMAKE_HOST_INSTALL_PREFIX)/share/clc endef define Package/libclang/install