llvm-mesa: update to 23.1.1 / SPIRV-LLVM-Translator 23.1.1

Update LLVM and SPIRV-LLVM-Translator, which are used for the Mesa
build, to the latest release. libclc is no longer a standalone LLVM
project and is no longer built either, as the Intel GPU drivers do not
need it any more. Give the refreshed ARC patch the git header the
OpenWrt patch guidelines require.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
This commit is contained in:
Daniel Golle committed 2026-09-18 16:16:45 +01:00
1 parent b1f2e305d9
commit 938621437f
2 files changed
+21 -23

No files matched your search

+6 -22
View File
@@ -1,18 +1,18 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=llvm-project
PKG_VERSION:=22.1.5
PKG_VERSION:=23.1.1
PKG_RELEASE:=1
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:=7972b87b705a003ce70ab55f9f0fb495d156887cba0eb296d284731139118e2c
PKG_HASH:=ebe9be46fe8756d58c5b198ffad0fa2a766257add81a4dc52179bfacc7888ee6
PKG_CPE_ID:=cpe:/a:llvm:llvm
SPIRV_LLVM_TRANSLATOR_VERSION:=22.1.2
SPIRV_LLVM_TRANSLATOR_VERSION:=23.1.1
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:=b37196b1a1a60282a24cf937ab7d6807d7d54dc718f2a37a78e211be26df57ac
SPIRV_LLVM_TRANSLATOR_HASH:=9e0bf1beb0ab7edca6cd8c17fd9bbb7ce3dcd520f3e969e0485ff5b00931f929
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
@@ -52,10 +52,9 @@ CMAKE_HOST_OPTIONS += \
-DCOMPILER_RT_BUILD_LIBFUZZER=OFF \
-DCOMPILER_RT_BUILD_PROFILE=OFF \
-DCOMPILER_RT_BUILD_MEMPROF=OFF \
-DLIBCLC_TARGETS_TO_BUILD= \
-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD= \
-DLLVM_TARGETS_TO_BUILD= \
-DLLVM_ENABLE_PROJECTS="libclc;clang" \
-DLLVM_ENABLE_PROJECTS="clang" \
-DLLVM_INCLUDE_BENCHMARKS=OFF \
-DLLVM_INCLUDE_DOCS=OFF \
-DLLVM_INCLUDE_EXAMPLES=OFF \
@@ -142,15 +141,13 @@ CMAKE_OPTIONS += \
-DCOMPILER_RT_BUILD_LIBFUZZER=OFF \
-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-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))" \
-DLLVM_DEFAULT_TARGET_TRIPLE=$(LLVM_TARGET_TRIPLE) \
-DLLVM_HOST_TRIPLE=$(LLVM_TARGET_TRIPLE) \
-DLLVM_NATIVE_TOOL_DIR="$(STAGING_DIR_HOST)/llvm-mesa/bin" \
-DLLVM_ENABLE_PROJECTS="libclc;clang" \
-DLLVM_ENABLE_PROJECTS="clang" \
-DLLVM_INCLUDE_BENCHMARKS=OFF \
-DLLVM_INCLUDE_DOCS=OFF \
-DLLVM_INCLUDE_EXAMPLES=OFF \
@@ -236,16 +233,12 @@ define Host/Install
STRIP_KMOD= PATCHELF= STRIP=strip $(SCRIPT_DIR)/rstrip.sh $(STAGING_DIR_HOST)/llvm-mesa
echo "$(PKG_VERSION)" > $(CMAKE_HOST_INSTALL_PREFIX)/.llvm-version
$(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/lib/pkgconfig
$(INSTALL_DATA) $(STAGING_DIR_HOST)/llvm-mesa/share/pkgconfig/libclc.pc $(STAGING_DIR_HOSTPKG)/lib/pkgconfig
$(INSTALL_DATA) $(STAGING_DIR_HOST)/llvm-mesa/lib/pkgconfig/LLVMSPIRVLib.pc $(STAGING_DIR_HOSTPKG)/lib/pkgconfig
$(INSTALL_DATA) $(STAGING_DIR_HOST)/llvm-mesa/lib/libLLVMSPIRVLib.a $(STAGING_DIR_HOSTPKG)/lib
endef
define Host/Uninstall
rm -rf $(STAGING_DIR_HOST)/llvm-mesa*
rm -rf $(STAGING_DIR_HOSTPKG)/include/clc
rm -rf $(STAGING_DIR_HOSTPKG)/share/clc
rm -f $(STAGING_DIR_HOSTPKG)/lib/pkgconfig/libclc.pc
rm -f $(STAGING_DIR_HOSTPKG)/lib/pkgconfig/LLVMSPIRVLib.pc
endef
@@ -254,15 +247,6 @@ define Build/Prepare
$(STAGING_DIR_HOST)/bin/libdeflate-gzip -dc $(DL_DIR)/$(SPIRV_LLVM_TRANSLATOR_FILE) | $(TAR) -C $(PKG_BUILD_DIR)/llvm/projects $(TAR_OPTIONS)
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/<major>/lib/libclc/
# rather than the previous usr/share/clc/)
$(INSTALL_DIR) $(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
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libclang.so* $(1)/usr/lib
+15 -1
View File
@@ -1,6 +1,20 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Daniel Golle <daniel@makrotopia.org>
Date: Mon, 25 Nov 2024 22:34:54 +0100
Subject: [PATCH] cmake: recognise arc as a native target architecture
LLVM_NATIVE_ARCH is derived from the host triple, so an ARC host ends
up unmapped and the native target is left unset. Map it to the ARC
backend the same way the other architectures are mapped.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
---
llvm/cmake/config-ix.cmake | 2 ++
1 file changed, 2 insertions(+)
--- a/llvm/cmake/config-ix.cmake
+++ b/llvm/cmake/config-ix.cmake
@@ -555,6 +555,8 @@ elseif (LLVM_NATIVE_ARCH MATCHES "aarch6
@@ -560,6 +560,8 @@ elseif (LLVM_NATIVE_ARCH MATCHES "aarch6
set(LLVM_NATIVE_ARCH AArch64)
elseif (LLVM_NATIVE_ARCH MATCHES "arm64")
set(LLVM_NATIVE_ARCH AArch64)