mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-08-08 08:30:47 -09:00
package/llvm-project: bump to version 20.1.5
Release: https://github.com/llvm/llvm-project/releases/tag/llvmorg-20.1.5 Major Changes and Fixes: -- CMake 3.20 minimum required -- Issue encountered during standalone LLVM build: CMake Error at CMakeLists.txt:8 (include): include could not find requested file: This error is due to the line: include(${LLVM_COMMON_CMAKE_UTILS}/Modules/CMakePolicy.cmake) Upstream commit [1] harmonized policy handling by introducing this shared include for all LLVM sub-projects. However, in the LLVM CMakeLists, LLVM_COMMON_CMAKE_UTILS is set unconditionally, preventing external override — which is required in Buildroot when building from separated archives. To solve this: We apply a patch to wrap the assignment of LLVM_COMMON_CMAKE_UTILS in an `if(NOT DEFINED ...)` block, allowing Buildroot to set the path externally. In the `llvm-cmake` package, we also **adjust the installation path** of the CMake modules: instead of installing directly into `lib/cmake/llvm`, we now install them under `lib/cmake/llvm/Modules` to match the expected layout. This ensures that: LLVM can include `${LLVM_COMMON_CMAKE_UTILS}/Modules/CMakePolicy.cmake` without errors. -- Also the Clang build system has removed support for the GCC_INSTALL_PREFIX option, raising a fatal error when attempting to use it: CMake Error at CMakeLists.txt:211 (message): GCC_INSTALL_PREFIX is deprecated and will be removed. Use configuration files (https://clang.llvm.org/docs/UsersManual.html#configuration-files) to specify the default --gcc-install-dir= or --gcc-triple=. --gcc-toolchain= is discouraged. See https://github.com/llvm/llvm-project/pull/77537 for details. Remove the use of GCC_INSTALL_PREFIX and replace it with a Clang configuration file as recommended by upstream. A configuration file is now automatically generated at: $(HOST_DIR)/lib/clang/$(CLANG_VERSION_MAJOR)/$(GNU_TARGET_NAME).cfg It contains: --gcc-install-dir=<path to external toolchain's lib/gcc/...> --target=<GNU target triplet> We dynamically detect the GCC install path by scanning $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/lib/gcc/<target>/<version>/ The Clang toolchain wrapper was also updated to add --config=<file> when BR_CLANG_CONFIG_FILE is defined. -- Fix LLVM_MAIN_SRC_DIR path: set(LLVM_MAIN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../llvm" CACHE PATH ...) This path isn't correct when using standalone archive builds. We explicitly pass LLVM_MAIN_SRC_DIR=$(BUILD_DIR)/llvm-$(LLVM_PROJECT_VERSION) to fix the path. [2] -- Add LLVM_ENABLE_RUNTIMES: Upstream added LLVM_ENABLE_RUNTIMES for runtimes [3] -- Removed LLVM_INCLUDE_GO_TESTS: Upstream dropped this option; we remove it too [4] -- Disable TensorFlow Lite integration: LLVM_HAVE_TFLITE is added to the CMakelist We now explicitly disable it to avoid unexpected TensorFlow Lite dependency. -- Clang introduced CLANG_ENABLE_LIBXML2 [5] We now explicitly disable it by setting CLANG_ENABLE_LIBXLM2=OFF since we set LLVM_ENABLE_LIBXML2 to OFF in LLVM -- Host-python3, which is now always needed by Clang’s resource bundling script. [6] -- Clang explicitly request to disable llvm tests when llvm_gtest is missing.[7] CMake Error at CMakeLists.txt:126 (message): llvm-gtest not found. Please install llvm-gtest or disable tests with -DLLVM_INCLUDE_TESTS=OFF -- Also update the installation path in COMPILER_RT_SETUP_RUNTIME_LIBS to use CLANG_VERSION_MAJOR instead of HOST_CLANG_VERSION, ensuring that the runtime files are placed correctly in the /lib/clang/<major>/ folder. [8] -- Add llvm-runtimes dependency libunwind needs runtimes [9] -- Fix for libclc out of tree patch Due to upstream changes in libclc, the old patch no longer applies. Only the fix related to invoking './prepare_builtins' directly is still relevant and preserved, as it is required to avoid a build failure when the binary is not in PATH. -- Upstream commit [10] removed the use of llvm-config in libclc and replaced it with proper use of LLVM_CMAKE_DIR. We now pass -DLLVM_CMAKE_DIR instead of DLLVM_CONFIG -- Libclc expects to invoke some LLVM tools. We explicitly set LIBCLC_CUSTOM_LLVM_TOOLS_BINARY_DIR to ensure it finds these tools. [11] -- Remove LLAsm_COMPILER and CLC_COMPILER [12] -- LIBUNWIND_INSTALL_HEADERS is On by default [13] -- Update spirv-llvm-translator to align with LLVM 20.1.5 Release: https://github.com/KhronosGroup/SPIRV-LLVM-Translator/releases/tag/v20.1.2 [1]9dd01a5241[2]d2b158e29e[3]176db3b3ab[4]6ce8727248[5]df239a6c17[6]96962d5512[7]8216910395[8]e1b88c8a09[9]0af67d167d[10]b264787453[11]0aeeff3059[12]72f9881c3f[13]f8409af354Signed-off-by: El Mehdi YOUNES <elmehdi.younes@smile.fr> Signed-off-by: Bernd Kuhls <bernd@kuhls.net> [Bernd: rebased, removed gcc-15 patches for llvm 15, bumped to 20.1.5] used 'git describe' to set the version number for spirv-llvm-translator] [Mehdi: changed llvm-runtimes version to $(LLVM_PROJECT_VERSION)] Signed-off-by: Julien Olivain <ju.o@free.fr>
This commit is contained in:
committed by
Julien Olivain
parent
395568599c
commit
e29dae109a
@@ -743,8 +743,6 @@ package/lirc-tools/0002-configure-add-disable-doc-option.patch lib_patch.Upstrea
|
|||||||
package/lirc-tools/S25lircd lib_sysv.Indent lib_sysv.Variables
|
package/lirc-tools/S25lircd lib_sysv.Indent lib_sysv.Variables
|
||||||
package/live555/0001-Add-a-pkg-config-file-for-the-shared-libraries.patch lib_patch.Upstream
|
package/live555/0001-Add-a-pkg-config-file-for-the-shared-libraries.patch lib_patch.Upstream
|
||||||
package/lldpd/S60lldpd Shellcheck lib_sysv.Indent lib_sysv.Variables
|
package/lldpd/S60lldpd Shellcheck lib_sysv.Indent lib_sysv.Variables
|
||||||
package/llvm-project/clang/0001-lib-Driver-ToolChains-Gnu-Use-GCC_INSTALL_PREFIX-in-.patch lib_patch.Upstream
|
|
||||||
package/llvm-project/libclc/0001-support-out-of-tree-build.patch lib_patch.Upstream
|
|
||||||
package/lm-sensors/0001-static-build.patch lib_patch.Upstream
|
package/lm-sensors/0001-static-build.patch lib_patch.Upstream
|
||||||
package/lm-sensors/0002-no-host-ldconfig.patch lib_patch.Upstream
|
package/lm-sensors/0002-no-host-ldconfig.patch lib_patch.Upstream
|
||||||
package/lmbench/0001-scripts-build-use-bin-bash-as-shell.patch lib_patch.Upstream
|
package/lmbench/0001-scripts-build-use-bin-bash-as-shell.patch lib_patch.Upstream
|
||||||
|
|||||||
@@ -1,78 +0,0 @@
|
|||||||
From fe21cede3939a435d62efbd5799547fab6af1b0a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Romain Naour <romain.naour@smile.fr>
|
|
||||||
Date: Mon, 5 Aug 2019 16:06:48 +0200
|
|
||||||
Subject: [PATCH] lib/Driver/ToolChains/Gnu: Use GCC_INSTALL_PREFIX in the set
|
|
||||||
of prefixes for searching the gcc toolchain
|
|
||||||
|
|
||||||
By default, the Gnu Toolchains driver is looking at the parent
|
|
||||||
directory while looking for the gcc toolchain when clang is installed
|
|
||||||
at "D.InstalledDir"
|
|
||||||
|
|
||||||
But this doesn't work with Buildroot since the external
|
|
||||||
toolchain is installed in host/opt/ext-toolchain and the sysroot is
|
|
||||||
moved to host/<arch>-buildroot-linux-gnu/sysroot/ directory.
|
|
||||||
|
|
||||||
We tried by setting GCC_INSTALL_PREFIX in clang.mk for host-clang
|
|
||||||
but it doesn't work since we already provide a sysroot [1].
|
|
||||||
|
|
||||||
Help the Gnu Toolchains driver by using GCC_INSTALL_PREFIX path.
|
|
||||||
|
|
||||||
Since we want to be able to relocate the clang toolchain,
|
|
||||||
allow to use a relative path with GCC_INSTALL_PREFIX.
|
|
||||||
|
|
||||||
Buildroot will provide such relative path by using:
|
|
||||||
HOST_CLANG_CONF_OPTS += -DGCC_INSTALL_PREFIX:PATH=`realpath --relative-to=$(HOST_DIR)/bin/ $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)`
|
|
||||||
|
|
||||||
Doing so allow to use clang without providing additional search
|
|
||||||
paths with -B option on the clang's command line.
|
|
||||||
|
|
||||||
[1] https://reviews.llvm.org/D49244
|
|
||||||
[2] http://lists.busybox.net/pipermail/buildroot/2019-August/256204.html
|
|
||||||
|
|
||||||
Signed-off-by: Romain Naour <romain.naour@smile.fr>
|
|
||||||
Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com>
|
|
||||||
---
|
|
||||||
Pending, access to llvm mailing lists to submit it is pending. They
|
|
||||||
seem to be having issues with their listserv.
|
|
||||||
---
|
|
||||||
lib/Driver/ToolChains/Gnu.cpp | 17 +++++++++++++++++
|
|
||||||
1 file changed, 17 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp
|
|
||||||
index 2ad45097dc..90d6b5b748 100644
|
|
||||||
--- a/lib/Driver/ToolChains/Gnu.cpp
|
|
||||||
+++ b/lib/Driver/ToolChains/Gnu.cpp
|
|
||||||
@@ -1725,6 +1725,8 @@ void Generic_GCC::GCCInstallationDetector::init(
|
|
||||||
|
|
||||||
Prefixes.push_back(std::string(GCCToolchainDir));
|
|
||||||
} else {
|
|
||||||
+ StringRef GccIinstallPrefix = GCC_INSTALL_PREFIX;
|
|
||||||
+
|
|
||||||
// If we have a SysRoot, try that first.
|
|
||||||
if (!D.SysRoot.empty()) {
|
|
||||||
Prefixes.push_back(D.SysRoot);
|
|
||||||
@@ -1734,6 +1736,21 @@ void Generic_GCC::GCCInstallationDetector::init(
|
|
||||||
// Then look for gcc installed alongside clang.
|
|
||||||
Prefixes.push_back(D.InstalledDir + "/..");
|
|
||||||
|
|
||||||
+ // Use GCC_INSTALL_PREFIX if provided by the buildsystem.
|
|
||||||
+ if (!GccIinstallPrefix.empty())
|
|
||||||
+ {
|
|
||||||
+ if (llvm::sys::path::is_relative(GccIinstallPrefix))
|
|
||||||
+ {
|
|
||||||
+ // Use a relative path to gcc from clang install path.
|
|
||||||
+ Prefixes.push_back(D.InstalledDir + "/" + GccIinstallPrefix.str());
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ {
|
|
||||||
+ // Hardcode the absolute path provided by GCC_INSTALL_PREFIX.
|
|
||||||
+ Prefixes.push_back(GCC_INSTALL_PREFIX);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
// Next, look for prefix(es) that correspond to distribution-supplied gcc
|
|
||||||
// installations.
|
|
||||||
if (D.SysRoot.empty()) {
|
|
||||||
--
|
|
||||||
2.20.1
|
|
||||||
|
|
||||||
@@ -8,6 +8,7 @@ config BR2_PACKAGE_CLANG
|
|||||||
depends on !BR2_STATIC_LIBS
|
depends on !BR2_STATIC_LIBS
|
||||||
depends on BR2_USE_WCHAR # std::wstring
|
depends on BR2_USE_WCHAR # std::wstring
|
||||||
depends on BR2_HOST_GCC_AT_LEAST_7
|
depends on BR2_HOST_GCC_AT_LEAST_7
|
||||||
|
select BR2_HOST_CMAKE_AT_LEAST_3_20 # cmake required version at least 3.20
|
||||||
select BR2_PACKAGE_LLVM
|
select BR2_PACKAGE_LLVM
|
||||||
help
|
help
|
||||||
Clang is a C/C++, Objective C/C++ and OpenCL C front-end
|
Clang is a C/C++, Objective C/C++ and OpenCL C front-end
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
# locally calculated
|
# locally calculated
|
||||||
sha256 a6b673ef15377fb46062d164e8ddc4d05c348ff8968f015f7f4af03f51000067 clang-15.0.7.src.tar.xz
|
sha256 97025772b25c6694db049d3c4be5a72d926299aa1a9b861f490d66750e31c9dd clang-20.1.5.src.tar.xz
|
||||||
sha256 ebcd9bbf783a73d05c53ba4d586b8d5813dcdf3bbec50265860ccc885e606f47 LICENSE.TXT
|
sha256 ebcd9bbf783a73d05c53ba4d586b8d5813dcdf3bbec50265860ccc885e606f47 LICENSE.TXT
|
||||||
|
|||||||
@@ -14,9 +14,12 @@ CLANG_CPE_ID_VENDOR = llvm
|
|||||||
CLANG_SUPPORTS_IN_SOURCE_BUILD = NO
|
CLANG_SUPPORTS_IN_SOURCE_BUILD = NO
|
||||||
CLANG_INSTALL_STAGING = YES
|
CLANG_INSTALL_STAGING = YES
|
||||||
|
|
||||||
HOST_CLANG_DEPENDENCIES = host-llvm host-libxml2
|
HOST_CLANG_DEPENDENCIES = host-llvm host-libxml2 host-python3
|
||||||
CLANG_DEPENDENCIES = llvm host-clang
|
CLANG_DEPENDENCIES = llvm host-clang
|
||||||
|
|
||||||
|
# since we have LLVM_ENABLE_LIBXML2=OFF, set CLANG_ENABLE_LIBXML2=OFF
|
||||||
|
CLANG_CONF_OPTS += -DCLANG_ENABLE_LIBXML2=OFF
|
||||||
|
|
||||||
# This option is needed, otherwise multiple shared libs
|
# This option is needed, otherwise multiple shared libs
|
||||||
# (libclangAST.so, libclangBasic.so, libclangFrontend.so, etc.) will
|
# (libclangAST.so, libclangBasic.so, libclangFrontend.so, etc.) will
|
||||||
# be generated. As a final shared lib containing all these components
|
# be generated. As a final shared lib containing all these components
|
||||||
@@ -45,12 +48,14 @@ CLANG_CONF_OPTS += -DCLANG_BUILD_TOOLS=ON
|
|||||||
HOST_CLANG_CONF_OPTS += \
|
HOST_CLANG_CONF_OPTS += \
|
||||||
-DCLANG_BUILD_EXAMPLES=OFF \
|
-DCLANG_BUILD_EXAMPLES=OFF \
|
||||||
-DCLANG_INCLUDE_DOCS=OFF \
|
-DCLANG_INCLUDE_DOCS=OFF \
|
||||||
-DCLANG_INCLUDE_TESTS=OFF
|
-DCLANG_INCLUDE_TESTS=OFF \
|
||||||
|
-DLLVM_INCLUDE_TESTS=OFF
|
||||||
|
|
||||||
CLANG_CONF_OPTS += \
|
CLANG_CONF_OPTS += \
|
||||||
-DCLANG_BUILD_EXAMPLES=OFF \
|
-DCLANG_BUILD_EXAMPLES=OFF \
|
||||||
-DCLANG_INCLUDE_DOCS=OFF \
|
-DCLANG_INCLUDE_DOCS=OFF \
|
||||||
-DCLANG_INCLUDE_TESTS=OFF
|
-DCLANG_INCLUDE_TESTS=OFF \
|
||||||
|
-DLLVM_INCLUDE_TESTS=OFF
|
||||||
|
|
||||||
HOST_CLANG_CONF_OPTS += -DLLVM_DIR=$(HOST_DIR)/lib/cmake/llvm \
|
HOST_CLANG_CONF_OPTS += -DLLVM_DIR=$(HOST_DIR)/lib/cmake/llvm \
|
||||||
-DCLANG_DEFAULT_LINKER=$(TARGET_LD)
|
-DCLANG_DEFAULT_LINKER=$(TARGET_LD)
|
||||||
@@ -59,6 +64,12 @@ CLANG_CONF_OPTS += -DLLVM_DIR=$(STAGING_DIR)/usr/lib/cmake/llvm \
|
|||||||
-DCLANG_TABLEGEN:FILEPATH=$(HOST_DIR)/bin/clang-tblgen \
|
-DCLANG_TABLEGEN:FILEPATH=$(HOST_DIR)/bin/clang-tblgen \
|
||||||
-DLLVM_TABLEGEN_EXE:FILEPATH=$(HOST_DIR)/bin/llvm-tblgen
|
-DLLVM_TABLEGEN_EXE:FILEPATH=$(HOST_DIR)/bin/llvm-tblgen
|
||||||
|
|
||||||
|
HOST_CLANG_CONF_OPTS += -DLLVM_COMMON_CMAKE_UTILS=$(HOST_DIR)/lib/cmake/llvm
|
||||||
|
CLANG_CONF_OPTS += -DLLVM_COMMON_CMAKE_UTILS=$(HOST_DIR)/lib/cmake/llvm
|
||||||
|
|
||||||
|
+HOST_CLANG_CONF_OPTS += -DLLVM_MAIN_SRC_DIR=$(BUILD_DIR)/llvm-$(LLVM_PROJECT_VERSION)
|
||||||
|
+CLANG_CONF_OPTS += -DLLVM_MAIN_SRC_DIR=$(BUILD_DIR)/llvm-$(LLVM_PROJECT_VERSION)
|
||||||
|
|
||||||
# Clang can't be used as compiler on the target since there are no
|
# Clang can't be used as compiler on the target since there are no
|
||||||
# development files (headers) and other build tools. So remove clang
|
# development files (headers) and other build tools. So remove clang
|
||||||
# binaries and some other unnecessary files from target.
|
# binaries and some other unnecessary files from target.
|
||||||
@@ -102,7 +113,15 @@ CLANG_CONF_OPTS += -DLLVM_DYLIB_COMPONENTS=all
|
|||||||
# installation directory to the external toolchain installation directory in order to
|
# installation directory to the external toolchain installation directory in order to
|
||||||
# not hardcode the toolchain absolute path.
|
# not hardcode the toolchain absolute path.
|
||||||
ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
|
ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
|
||||||
HOST_CLANG_CONF_OPTS += -DGCC_INSTALL_PREFIX:PATH=`realpath --relative-to=$(HOST_DIR)/bin/ $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)`
|
define HOST_CLANG_INSTALL_CONFIG_FILE
|
||||||
|
mkdir -p $(HOST_DIR)/lib/clang/$(CLANG_VERSION_MAJOR)
|
||||||
|
touch $(HOST_DIR)/lib/clang/$(CLANG_VERSION_MAJOR)/$(GNU_TARGET_NAME).cfg
|
||||||
|
echo "--gcc-install-dir=$(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/lib/gcc/$$(ls $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/lib/gcc/)/$$(ls $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/lib/gcc/$$(ls $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/lib/gcc/)/)" > $(HOST_DIR)/lib/clang/$(CLANG_VERSION_MAJOR)/$(GNU_TARGET_NAME).cfg
|
||||||
|
echo "--target=$(GNU_TARGET_NAME)" >> $(HOST_DIR)/lib/clang/$(CLANG_VERSION_MAJOR)/$(GNU_TARGET_NAME).cfg
|
||||||
|
endef
|
||||||
|
|
||||||
|
HOST_CLANG_POST_INSTALL_HOOKS += HOST_CLANG_INSTALL_CONFIG_FILE
|
||||||
|
HOST_CLANG_TOOLCHAIN_WRAPPER_ARGS += -DBR_CLANG_CONFIG_FILE="\"--config=$(HOST_DIR)/lib/clang/$(CLANG_VERSION_MAJOR)/$(GNU_TARGET_NAME).cfg\""
|
||||||
endif
|
endif
|
||||||
|
|
||||||
define HOST_CLANG_INSTALL_WRAPPER_AND_SIMPLE_SYMLINKS
|
define HOST_CLANG_INSTALL_WRAPPER_AND_SIMPLE_SYMLINKS
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ config BR2_PACKAGE_COMPILER_RT
|
|||||||
depends on BR2_TOOLCHAIN_USES_GLIBC # asan lib requires
|
depends on BR2_TOOLCHAIN_USES_GLIBC # asan lib requires
|
||||||
depends on BR2_HOST_GCC_AT_LEAST_7 # host-clang
|
depends on BR2_HOST_GCC_AT_LEAST_7 # host-clang
|
||||||
select BR2_PACKAGE_LIBXCRYPT
|
select BR2_PACKAGE_LIBXCRYPT
|
||||||
|
select BR2_HOST_CMAKE_AT_LEAST_3_20 # cmake required version at least 3.20
|
||||||
help
|
help
|
||||||
A collection of runtime libraries primarily used by clang and
|
A collection of runtime libraries primarily used by clang and
|
||||||
llvm to provide builtins, sanitizer runtimes, and profiling
|
llvm to provide builtins, sanitizer runtimes, and profiling
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
# Locally computed:
|
# Locally computed:
|
||||||
sha256 353832c66cce60931ea0413b3c071faad59eefa70d02c97daa8978b15e4b25b7 compiler-rt-15.0.7.src.tar.xz
|
sha256 bdcebca627f377ffcff5405cd5694efbddb14c89ad7d0ea481b1646a42bfeca3 compiler-rt-20.1.5.src.tar.xz
|
||||||
sha256 1a8f1058753f1ba890de984e48f0242a3a5c29a6a8f2ed9fd813f36985387e8d LICENSE.TXT
|
sha256 1a8f1058753f1ba890de984e48f0242a3a5c29a6a8f2ed9fd813f36985387e8d LICENSE.TXT
|
||||||
|
|||||||
@@ -20,7 +20,8 @@ COMPILER_RT_CONF_OPTS = \
|
|||||||
-DCOMPILER_RT_STANDALONE_BUILD=ON \
|
-DCOMPILER_RT_STANDALONE_BUILD=ON \
|
||||||
-DCOMPILER_RT_DEFAULT_TARGET_TRIPLE=$(GNU_TARGET_NAME) \
|
-DCOMPILER_RT_DEFAULT_TARGET_TRIPLE=$(GNU_TARGET_NAME) \
|
||||||
-DLLVM_CONFIG_PATH=$(HOST_DIR)/bin/llvm-config \
|
-DLLVM_CONFIG_PATH=$(HOST_DIR)/bin/llvm-config \
|
||||||
-DCMAKE_MODULE_PATH=$(HOST_DIR)/lib/cmake/llvm
|
-DCMAKE_MODULE_PATH=$(HOST_DIR)/lib/cmake/llvm \
|
||||||
|
-DLLVM_COMMON_CMAKE_UTILS=$(HOST_DIR)/lib/cmake/llvm
|
||||||
|
|
||||||
# The installation of the target runtime libraries defaults to DESTDIR, however
|
# The installation of the target runtime libraries defaults to DESTDIR, however
|
||||||
# host-clang resources directory needs a link so Clang can find the runtime
|
# host-clang resources directory needs a link so Clang can find the runtime
|
||||||
@@ -29,9 +30,9 @@ COMPILER_RT_CONF_OPTS = \
|
|||||||
# assumed, as compiler-rt is usually build at the same time as Clang and not
|
# assumed, as compiler-rt is usually build at the same time as Clang and not
|
||||||
# standalone.
|
# standalone.
|
||||||
define COMPILER_RT_SETUP_RUNTIME_LIBS
|
define COMPILER_RT_SETUP_RUNTIME_LIBS
|
||||||
mkdir -p $(HOST_DIR)/lib/clang/$(HOST_CLANG_VERSION)/lib
|
mkdir -p $(HOST_DIR)/lib/clang/$(CLANG_VERSION_MAJOR)/lib
|
||||||
ln -sf ../../../../$(GNU_TARGET_NAME)/sysroot/usr/lib/linux $(HOST_DIR)/lib/clang/$(HOST_CLANG_VERSION)/lib/linux
|
ln -sf ../../../../$(GNU_TARGET_NAME)/sysroot/usr/lib/linux $(HOST_DIR)/lib/clang/$(CLANG_VERSION_MAJOR)/lib/linux
|
||||||
ln -sf ../../../../$(GNU_TARGET_NAME)/sysroot/usr/share $(HOST_DIR)/lib/clang/$(HOST_CLANG_VERSION)/share
|
ln -sf ../../../../$(GNU_TARGET_NAME)/sysroot/usr/share $(HOST_DIR)/lib/clang/$(CLANG_VERSION_MAJOR)/share
|
||||||
endef
|
endef
|
||||||
COMPILER_RT_POST_INSTALL_STAGING_HOOKS += COMPILER_RT_SETUP_RUNTIME_LIBS
|
COMPILER_RT_POST_INSTALL_STAGING_HOOKS += COMPILER_RT_SETUP_RUNTIME_LIBS
|
||||||
|
|
||||||
|
|||||||
@@ -1,71 +1,32 @@
|
|||||||
From 495491e9d53bfb184c15753b5187e4bb55b19511 Mon Sep 17 00:00:00 2001
|
From a435f3c9318935ba29b04dabe7342cd6160711e0 Mon Sep 17 00:00:00 2001
|
||||||
From: Matt Weber <matthew.weber@rockwellcollins.com>
|
From: El Mehdi YOUNES <elmehdi.younes@smile.fr>
|
||||||
Date: Tue, 9 Mar 2021 15:55:17 -0600
|
Date: Thu, 15 May 2025 10:02:12 +0200
|
||||||
Subject: [PATCH] support out of tree build
|
Subject: [PATCH] support out of tree build
|
||||||
|
|
||||||
(1) The package has a prepare_builtins tool which is built
|
prepare_builtins tool is built
|
||||||
but not placed in the path for later use in the build. This
|
but not placed in the path for later use in the build. This
|
||||||
fix allows the later build steps to use the binary in-place.
|
fix allows the later build steps to use the binary in-place.
|
||||||
|
|
||||||
(2) With cmake, find_file() when used for non-host builds is
|
Upstream: Not submitted
|
||||||
limited by CMAKE_FIND_ROOT_PATH* scope.
|
|
||||||
|
|
||||||
In $(HOST_DIR)/share/buildroot/toolchainfile.cmake we set the
|
Signed-off-by: El Mehdi YOUNES <elmehdi.younes@smile.fr>
|
||||||
following target settings for CMAKE_FIND_ROOT_PATH* which
|
|
||||||
limit the scope.
|
|
||||||
set(CMAKE_FIND_ROOT_PATH "${RELOCATED_HOST_DIR}/aarch64-buildroot-linux-gnu/sysroot")
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
|
||||||
|
|
||||||
|
|
||||||
Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com>
|
|
||||||
---
|
---
|
||||||
CMakeLists.txt | 2 +-
|
libclc/CMakeLists.txt | 2 +-
|
||||||
cmake/CMakeDetermineCLCCompiler.cmake | 4 ++++
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
cmake/CMakeDetermineLLAsmCompiler.cmake | 4 ++++
|
|
||||||
3 files changed, 9 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
index 9472f19..a784519 100644
|
index d651a9bf506b..18bd7efe8217 100644
|
||||||
--- a/CMakeLists.txt
|
--- a/CMakeLists.txt
|
||||||
+++ b/CMakeLists.txt
|
+++ b/CMakeLists.txt
|
||||||
@@ -279,7 +279,7 @@ foreach( t ${LIBCLC_TARGETS_TO_BUILD} )
|
@@ -180,7 +180,7 @@ set(LLVM_LINK_COMPONENTS
|
||||||
|
)
|
||||||
# Add prepare target
|
if( LIBCLC_STANDALONE_BUILD )
|
||||||
add_custom_command( OUTPUT "${obj_suffix}"
|
add_llvm_executable( prepare_builtins utils/prepare-builtins.cpp )
|
||||||
- COMMAND prepare_builtins -o
|
- set( prepare_builtins_exe prepare_builtins )
|
||||||
+ COMMAND ./prepare_builtins -o
|
+ set( prepare_builtins_exe ./prepare_builtins )
|
||||||
"${obj_suffix}"
|
set( prepare_builtins_target prepare_builtins )
|
||||||
"builtins.opt.${obj_suffix}"
|
else()
|
||||||
DEPENDS "opt.${obj_suffix}"
|
add_llvm_utility( prepare_builtins utils/prepare-builtins.cpp )
|
||||||
diff --git a/cmake/CMakeDetermineCLCCompiler.cmake b/cmake/CMakeDetermineCLCCompiler.cmake
|
|
||||||
index 94d85d9..5de6a48 100644
|
|
||||||
--- a/cmake/CMakeDetermineCLCCompiler.cmake
|
|
||||||
+++ b/cmake/CMakeDetermineCLCCompiler.cmake
|
|
||||||
@@ -12,7 +12,7 @@ mark_as_advanced(CMAKE_CLC_ARCHIVE)
|
|
||||||
|
|
||||||
set(CMAKE_CLC_COMPILER_ENV_VAR "CLC_COMPILER")
|
|
||||||
set(CMAKE_CLC_ARCHIVE_ENV_VAR "CLC_LINKER")
|
|
||||||
-find_file(clc_comp_in CMakeCLCCompiler.cmake.in PATHS ${CMAKE_ROOT}/Modules ${CMAKE_MODULE_PATH})
|
|
||||||
+set(clc_comp_in "${CMAKE_MODULE_PATH}/CMakeCLCCompiler.cmake.in" )
|
|
||||||
# configure all variables set in this file
|
|
||||||
configure_file(${clc_comp_in} ${CMAKE_PLATFORM_INFO_DIR}/CMakeCLCCompiler.cmake @ONLY)
|
|
||||||
mark_as_advanced(clc_comp_in)
|
|
||||||
diff --git a/cmake/CMakeDetermineLLAsmCompiler.cmake b/cmake/CMakeDetermineLLAsmCompiler.cmake
|
|
||||||
index 1c424c7..dd3bfb6 100644
|
|
||||||
--- a/cmake/CMakeDetermineLLAsmCompiler.cmake
|
|
||||||
+++ b/cmake/CMakeDetermineLLAsmCompiler.cmake
|
|
||||||
@@ -18,7 +18,7 @@ mark_as_advanced(CMAKE_LLAsm_ARCHIVE)
|
|
||||||
set(CMAKE_LLAsm_PREPROCESSOR_ENV_VAR "LL_PREPROCESSOR")
|
|
||||||
set(CMAKE_LLAsm_COMPILER_ENV_VAR "LL_ASSEMBLER")
|
|
||||||
set(CMAKE_LLAsm_ARCHIVE_ENV_VAR "LL_LINKER")
|
|
||||||
-find_file(ll_comp_in CMakeLLAsmCompiler.cmake.in PATHS ${CMAKE_ROOT}/Modules ${CMAKE_MODULE_PATH})
|
|
||||||
+set(ll_comp_in "${CMAKE_MODULE_PATH}/CMakeLLAsmCompiler.cmake.in" )
|
|
||||||
# configure all variables set in this file
|
|
||||||
configure_file(${ll_comp_in} ${CMAKE_PLATFORM_INFO_DIR}/CMakeLLAsmCompiler.cmake @ONLY)
|
|
||||||
mark_as_advanced(ll_comp_in)
|
|
||||||
--
|
--
|
||||||
2.17.1
|
2.43.0
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ config BR2_PACKAGE_LIBCLC
|
|||||||
bool "libclc"
|
bool "libclc"
|
||||||
depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS
|
depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS
|
||||||
depends on BR2_HOST_GCC_AT_LEAST_7 # host-llvm
|
depends on BR2_HOST_GCC_AT_LEAST_7 # host-llvm
|
||||||
|
select BR2_HOST_CMAKE_AT_LEAST_3_20 # cmake required version at least 3.20
|
||||||
help
|
help
|
||||||
libclc is an open source, BSD licensed implementation of
|
libclc is an open source, BSD licensed implementation of
|
||||||
the library requirements of the OpenCL C programming language,
|
the library requirements of the OpenCL C programming language,
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
# locally calculated
|
# locally calculated
|
||||||
sha256 35731fea7be224f21acf5bf3cd9f0ed058bf4ada5eceaf7f10ee96e139bd3389 libclc-15.0.7.src.tar.xz
|
sha256 7aabcc31eff12bc54778c38752192939df8d983002c961cb1ac97f57e50ccff1 libclc-20.1.5.src.tar.xz
|
||||||
sha256 3c536c052db9afd997809e38785c9f2a9e54e2892330fa7c5b438e18a7413479 LICENSE.TXT
|
sha256 3c536c052db9afd997809e38785c9f2a9e54e2892330fa7c5b438e18a7413479 LICENSE.TXT
|
||||||
|
|||||||
@@ -27,8 +27,6 @@ LIBCLC_CONF_OPTS = \
|
|||||||
-DCMAKE_SYSROOT="" \
|
-DCMAKE_SYSROOT="" \
|
||||||
-DCMAKE_C_COMPILER_FORCED=ON \
|
-DCMAKE_C_COMPILER_FORCED=ON \
|
||||||
-DCMAKE_CXX_COMPILER_FORCED=ON \
|
-DCMAKE_CXX_COMPILER_FORCED=ON \
|
||||||
-DCMAKE_CLC_COMPILER_FORCED=ON \
|
|
||||||
-DCMAKE_LLAsm_COMPILER_FORCED=ON \
|
|
||||||
-DCMAKE_INSTALL_DATADIR="share" \
|
-DCMAKE_INSTALL_DATADIR="share" \
|
||||||
-DCMAKE_FIND_ROOT_PATH="$(HOST_DIR)" \
|
-DCMAKE_FIND_ROOT_PATH="$(HOST_DIR)" \
|
||||||
-DCMAKE_C_FLAGS="$(HOST_CFLAGS)" \
|
-DCMAKE_C_FLAGS="$(HOST_CFLAGS)" \
|
||||||
@@ -38,7 +36,8 @@ LIBCLC_CONF_OPTS = \
|
|||||||
-DCMAKE_MODULE_LINKER_FLAGS="$(HOST_LDFLAGS)" \
|
-DCMAKE_MODULE_LINKER_FLAGS="$(HOST_LDFLAGS)" \
|
||||||
-DCMAKE_C_COMPILER="$(CMAKE_HOST_C_COMPILER)" \
|
-DCMAKE_C_COMPILER="$(CMAKE_HOST_C_COMPILER)" \
|
||||||
-DCMAKE_CXX_COMPILER="$(CMAKE_HOST_CXX_COMPILER)" \
|
-DCMAKE_CXX_COMPILER="$(CMAKE_HOST_CXX_COMPILER)" \
|
||||||
-DLLVM_CONFIG="$(HOST_DIR)/bin/llvm-config"
|
-DLLVM_CMAKE_DIR="$(HOST_DIR)/lib/cmake/llvm" \
|
||||||
|
-DLIBCLC_CUSTOM_LLVM_TOOLS_BINARY_DIR="$(HOST_DIR)/bin"
|
||||||
|
|
||||||
HOST_LIBCLC_CONF_OPTS = \
|
HOST_LIBCLC_CONF_OPTS = \
|
||||||
-DLIBCLC_TARGETS_TO_BUILD=spirv64-mesa3d-
|
-DLIBCLC_TARGETS_TO_BUILD=spirv64-mesa3d-
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ config BR2_PACKAGE_HOST_LLD
|
|||||||
bool "host lld"
|
bool "host lld"
|
||||||
depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS # llvm
|
depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS # llvm
|
||||||
depends on BR2_HOST_GCC_AT_LEAST_7 # host-llvm
|
depends on BR2_HOST_GCC_AT_LEAST_7 # host-llvm
|
||||||
|
select BR2_HOST_CMAKE_AT_LEAST_3_20 # cmake required version at least 3.20
|
||||||
help
|
help
|
||||||
LLD is a linker from the LLVM project that is a drop-in
|
LLD is a linker from the LLVM project that is a drop-in
|
||||||
replacement for system linkers, and runs much faster than
|
replacement for system linkers, and runs much faster than
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
# locally calculated
|
# locally calculated
|
||||||
sha256 dba5c70c3fe88b3a38b9180df82fbc9d1dfd55d68f41fddd6a90f9e17f8e5df9 lld-15.0.7.src.tar.xz
|
sha256 4e084130cc51a8b900737cec40578eab867f7e8017121409940d96550784ff12 lld-20.1.5.src.tar.xz
|
||||||
sha256 f7891568956e34643eb6a0db1462db30820d40d7266e2a78063f2fe233ece5a0 LICENSE.TXT
|
sha256 f7891568956e34643eb6a0db1462db30820d40d7266e2a78063f2fe233ece5a0 LICENSE.TXT
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ HOST_LLD_DEPENDENCIES = host-llvm host-llvm-libunwind
|
|||||||
# build as static libs as is done in llvm & clang
|
# build as static libs as is done in llvm & clang
|
||||||
HOST_LLD_CONF_OPTS += -DBUILD_SHARED_LIBS=OFF
|
HOST_LLD_CONF_OPTS += -DBUILD_SHARED_LIBS=OFF
|
||||||
|
|
||||||
|
HOST_LLD_CONF_OPTS += -DLLVM_COMMON_CMAKE_UTILS=$(HOST_DIR)/lib/cmake/llvm
|
||||||
|
|
||||||
# GCC looks for tools in a different path from LLD's default installation path
|
# GCC looks for tools in a different path from LLD's default installation path
|
||||||
define HOST_LLD_CREATE_SYMLINKS
|
define HOST_LLD_CREATE_SYMLINKS
|
||||||
mkdir -p $(HOST_DIR)/$(GNU_TARGET_NAME)/bin
|
mkdir -p $(HOST_DIR)/$(GNU_TARGET_NAME)/bin
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
# locally calculated
|
# locally calculated
|
||||||
sha256 8986f29b634fdaa9862eedda78513969fe9788301c9f2d938f4c10a3e7a3e7ea cmake-15.0.7.src.tar.xz
|
sha256 1b5abaa2686c6c0e1f394113d0b2e026ff3cb9e11b6a2294c4f3883f1b02c89c cmake-20.1.5.src.tar.xz
|
||||||
|
|||||||
@@ -10,8 +10,9 @@ LLVM_CMAKE_SOURCE = cmake-$(LLVM_CMAKE_VERSION).src.tar.xz
|
|||||||
LLVM_CMAKE_LICENSE = Apache-2.0 with exceptions
|
LLVM_CMAKE_LICENSE = Apache-2.0 with exceptions
|
||||||
|
|
||||||
define HOST_LLVM_CMAKE_INSTALL_CMDS
|
define HOST_LLVM_CMAKE_INSTALL_CMDS
|
||||||
mkdir -p $(HOST_DIR)/lib/cmake/llvm
|
mkdir -p $(HOST_DIR)/lib/cmake/llvm/Modules
|
||||||
cp -Rv $(@D)/Modules/* $(HOST_DIR)/lib/cmake/llvm
|
cp -Rv $(@D)/Modules/* $(HOST_DIR)/lib/cmake/llvm/Modules
|
||||||
|
ln -sf $(HOST_DIR)/lib/cmake/llvm/Modules/* $(HOST_DIR)/lib/cmake/llvm/
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(eval $(host-generic-package))
|
$(eval $(host-generic-package))
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
# locally computed
|
# locally computed
|
||||||
sha256 406d199ae3a16add84017f40458a5e7c31f9412937fcb518715af0a0eeafbc0c libunwind-15.0.7.src.tar.xz
|
sha256 f0555603222189d8d2ff2d02747c63a3bbeb291fa72ce042c1a6d26399150baf libunwind-20.1.5.src.tar.xz
|
||||||
sha256 b5efebcaca80879234098e52d1725e6d9eb8fb96a19fce625d39184b705f7b6d LICENSE.TXT
|
sha256 b5efebcaca80879234098e52d1725e6d9eb8fb96a19fce625d39184b705f7b6d LICENSE.TXT
|
||||||
|
|||||||
@@ -11,9 +11,8 @@ LLVM_LIBUNWIND_LICENSE = Apache-2.0 with exceptions
|
|||||||
LLVM_LIBUNWIND_LICENSE_FILES = LICENSE.TXT
|
LLVM_LIBUNWIND_LICENSE_FILES = LICENSE.TXT
|
||||||
LLVM_LIBUNWIND_SUPPORTS_IN_SOURCE_BUILD = NO
|
LLVM_LIBUNWIND_SUPPORTS_IN_SOURCE_BUILD = NO
|
||||||
|
|
||||||
HOST_LLVM_LIBUNWIND_DEPENDENCIES = host-llvm-cmake
|
HOST_LLVM_LIBUNWIND_DEPENDENCIES = host-llvm-cmake host-llvm-runtimes
|
||||||
HOST_LLVM_LIBUNWIND_CONF_OPTS += \
|
HOST_LLVM_LIBUNWIND_CONF_OPTS += \
|
||||||
-DCMAKE_MODULE_PATH="$(HOST_DIR)/lib/cmake/llvm" \
|
-DCMAKE_MODULE_PATH="$(HOST_DIR)/lib/cmake/llvm"
|
||||||
-DLIBUNWIND_INSTALL_HEADERS=ON
|
|
||||||
|
|
||||||
$(eval $(host-cmake-package))
|
$(eval $(host-cmake-package))
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
#
|
#
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
LLVM_PROJECT_VERSION_MAJOR = 15
|
LLVM_PROJECT_VERSION_MAJOR = 20
|
||||||
LLVM_PROJECT_VERSION = $(LLVM_PROJECT_VERSION_MAJOR).0.7
|
LLVM_PROJECT_VERSION = $(LLVM_PROJECT_VERSION_MAJOR).1.5
|
||||||
LLVM_PROJECT_SITE = https://github.com/llvm/llvm-project/releases/download/llvmorg-$(LLVM_PROJECT_VERSION)
|
LLVM_PROJECT_SITE = https://github.com/llvm/llvm-project/releases/download/llvmorg-$(LLVM_PROJECT_VERSION)
|
||||||
|
|
||||||
include $(sort $(wildcard package/llvm-project/*/*.mk))
|
include $(sort $(wildcard package/llvm-project/*/*.mk))
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
# locally calculated
|
# locally calculated
|
||||||
sha256 6394d8f111288c918421756037c10c4f8471325992e37c44cf8811b4e3dde00b runtimes-20.1.3.src.tar.xz
|
sha256 8b3255668594ca3450ac5c041ac52c3c33300873d033cda49529e7fe1d4257e6 runtimes-20.1.5.src.tar.xz
|
||||||
|
|||||||
@@ -4,14 +4,14 @@
|
|||||||
#
|
#
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
LLVM_RUNTIMES_VERSION = 20.1.3
|
LLVM_RUNTIMES_VERSION = $(LLVM_PROJECT_VERSION)
|
||||||
LLVM_RUNTIMES_SITE = $(LLVM_PROJECT_SITE)
|
LLVM_RUNTIMES_SITE = $(LLVM_PROJECT_SITE)
|
||||||
LLVM_RUNTIMES_SOURCE = runtimes-$(LLVM_RUNTIMES_VERSION).src.tar.xz
|
LLVM_RUNTIMES_SOURCE = runtimes-$(LLVM_RUNTIMES_VERSION).src.tar.xz
|
||||||
LLVM_RUNTIMES_LICENSE = Apache-2.0 with exceptions
|
LLVM_RUNTIMES_LICENSE = Apache-2.0 with exceptions
|
||||||
|
|
||||||
define HOST_LLVM_RUNTIMES_INSTALL_CMDS
|
define HOST_LLVM_RUNTIMES_INSTALL_CMDS
|
||||||
mkdir -p $(HOST_DIR)/lib/cmake/llvm/Modules
|
mkdir -p $(HOST_DIR)/lib/cmake/llvm/Modules
|
||||||
cp -Rv $(@D)/cmake/Modules/* $(HOST_DIR)/lib/cmake/llvm
|
cp -Rv $(@D)/cmake/Modules/* $(HOST_DIR)/lib/cmake/llvm
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(eval $(host-generic-package))
|
$(eval $(host-generic-package))
|
||||||
|
|||||||
@@ -1,35 +0,0 @@
|
|||||||
From 51d88407c1ae86c3b3c7b497d049f8980f2a3510 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Sam James <sam@gentoo.org>
|
|
||||||
Date: Fri, 2 Aug 2024 23:07:21 +0100
|
|
||||||
Subject: [PATCH] [ADT] Add `<cstdint>` to SmallVector (#101761)
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
SmallVector uses `uint32_t`, `uint64_t` without including `<cstdint>`
|
|
||||||
which fails to build w/ GCC 15 after a change in libstdc++ [0]
|
|
||||||
|
|
||||||
[0] https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=3a817a4a5a6d94da9127af3be9f84a74e3076ee2
|
|
||||||
|
|
||||||
Gentoo-Component: llvm
|
|
||||||
Signed-off-by: Michał Górny <mgorny@gentoo.org>
|
|
||||||
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
|
|
||||||
Upstream: https://bugs.gentoo.org/939498
|
|
||||||
---
|
|
||||||
include/llvm/ADT/SmallVector.h | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
diff --git a/include/llvm/ADT/SmallVector.h b/include/llvm/ADT/SmallVector.h
|
|
||||||
index e34702bdbb3c..1c0f3465b2a9 100644
|
|
||||||
--- a/include/llvm/ADT/SmallVector.h
|
|
||||||
+++ b/include/llvm/ADT/SmallVector.h
|
|
||||||
@@ -19,6 +19,7 @@
|
|
||||||
#include <algorithm>
|
|
||||||
#include <cassert>
|
|
||||||
#include <cstddef>
|
|
||||||
+#include <cstdint>
|
|
||||||
#include <cstdlib>
|
|
||||||
#include <cstring>
|
|
||||||
#include <functional>
|
|
||||||
--
|
|
||||||
2.46.0
|
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
From 255068deb7f3d18837ed30e739aa92c111ab450a Mon Sep 17 00:00:00 2001
|
||||||
|
From: El Mehdi YOUNES <elmehdi.younes@smile.fr>
|
||||||
|
Date: Sat, 10 May 2025 12:55:07 +0200
|
||||||
|
Subject: [PATCH] Fix standalone build for llvm
|
||||||
|
|
||||||
|
Upstream commit 9dd01a5241dc ("Harmonize cmake_policy() across standalone builds of all projects")
|
||||||
|
moved the `cmake_policy()` settings from `llvm/CMakeLists.txt` into a shared
|
||||||
|
`cmake/modules/CMakePolicy.cmake`, and included it from all relevant projects
|
||||||
|
(Clang, LLD, LLDB, etc.) to harmonize standalone builds.
|
||||||
|
|
||||||
|
However, in `llvm/CMakeLists.txt`, unlike other components, the line:
|
||||||
|
set(LLVM_COMMON_CMAKE_UTILS ...)
|
||||||
|
was left **without** the usual:
|
||||||
|
if(NOT DEFINED LLVM_COMMON_CMAKE_UTILS)
|
||||||
|
|
||||||
|
This prevents external build systems (e.g., when using separate source archives)
|
||||||
|
from overriding the `LLVM_COMMON_CMAKE_UTILS` variable, since the value is
|
||||||
|
always reset unconditionally.
|
||||||
|
|
||||||
|
This patch adds the missing `if(NOT DEFINED LLVM_COMMON_CMAKE_UTILS)` guard,
|
||||||
|
in the same way as it is already done in Clang, LLD, etc., to make
|
||||||
|
`LLVM_COMMON_CMAKE_UTILS` properly overridable.
|
||||||
|
|
||||||
|
Upstream: Not submitted
|
||||||
|
|
||||||
|
Signed-off-by: El Mehdi YOUNES <elmehdi.younes@smile.fr>
|
||||||
|
---
|
||||||
|
llvm/CMakeLists.txt | 5 ++++-
|
||||||
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index f5293e866324..d861233f299f 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -4,7 +4,10 @@ cmake_minimum_required(VERSION 3.20.0)
|
||||||
|
|
||||||
|
include(CMakeDependentOption)
|
||||||
|
|
||||||
|
-set(LLVM_COMMON_CMAKE_UTILS ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)
|
||||||
|
+if(NOT DEFINED LLVM_COMMON_CMAKE_UTILS)
|
||||||
|
+ set(LLVM_COMMON_CMAKE_UTILS ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)
|
||||||
|
+endif()
|
||||||
|
+
|
||||||
|
include(${LLVM_COMMON_CMAKE_UTILS}/Modules/CMakePolicy.cmake
|
||||||
|
NO_POLICY_SCOPE)
|
||||||
|
|
||||||
|
--
|
||||||
|
2.49.0
|
||||||
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
From 000f92beb459096534a7bfaa8c5e99d77b7594c1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Sam James <sam@gentoo.org>
|
|
||||||
Date: Sat, 3 Aug 2024 06:36:43 +0100
|
|
||||||
Subject: [PATCH] [AMDGPU] Include `<cstdint>` in AMDGPUMCTargetDesc
|
|
||||||
(#101766)
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
Gentoo-Component: llvm
|
|
||||||
Signed-off-by: Michał Górny <mgorny@gentoo.org>
|
|
||||||
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
|
|
||||||
Upstream: https://bugs.gentoo.org/939498
|
|
||||||
---
|
|
||||||
lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.h | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
diff --git a/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.h b/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.h
|
|
||||||
index c2e2563c3989..53aac8934100 100644
|
|
||||||
--- a/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.h
|
|
||||||
+++ b/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.h
|
|
||||||
@@ -15,6 +15,7 @@
|
|
||||||
#ifndef LLVM_LIB_TARGET_AMDGPU_MCTARGETDESC_AMDGPUMCTARGETDESC_H
|
|
||||||
#define LLVM_LIB_TARGET_AMDGPU_MCTARGETDESC_AMDGPUMCTARGETDESC_H
|
|
||||||
|
|
||||||
+#include <cstdint>
|
|
||||||
#include <memory>
|
|
||||||
|
|
||||||
namespace llvm {
|
|
||||||
--
|
|
||||||
2.46.0
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
From 67fc0069c285b37f09d408aae43c37b8afdf11f7 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
|
|
||||||
Date: Sat, 3 Aug 2024 12:01:20 +0200
|
|
||||||
Subject: [PATCH] Another gcc-15 fix from Sam James
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
Bug: https://bugs.gentoo.org/937164
|
|
||||||
Gentoo-Component: llvm
|
|
||||||
Signed-off-by: Michał Górny <mgorny@gentoo.org>
|
|
||||||
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
|
|
||||||
Upstream: https://bugs.gentoo.org/939498
|
|
||||||
---
|
|
||||||
lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
diff --git a/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h b/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h
|
|
||||||
index d0530bd4d650..10b59462aebe 100644
|
|
||||||
--- a/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h
|
|
||||||
+++ b/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h
|
|
||||||
@@ -13,6 +13,7 @@
|
|
||||||
#ifndef LLVM_LIB_TARGET_X86_MCTARGETDESC_X86MCTARGETDESC_H
|
|
||||||
#define LLVM_LIB_TARGET_X86_MCTARGETDESC_X86MCTARGETDESC_H
|
|
||||||
|
|
||||||
+#include <cstdint>
|
|
||||||
#include <memory>
|
|
||||||
#include <string>
|
|
||||||
|
|
||||||
--
|
|
||||||
2.46.0
|
|
||||||
@@ -24,6 +24,7 @@ config BR2_PACKAGE_LLVM
|
|||||||
depends on !BR2_STATIC_LIBS
|
depends on !BR2_STATIC_LIBS
|
||||||
depends on BR2_USE_WCHAR # std::wstring
|
depends on BR2_USE_WCHAR # std::wstring
|
||||||
depends on BR2_HOST_GCC_AT_LEAST_7 # host-llvm
|
depends on BR2_HOST_GCC_AT_LEAST_7 # host-llvm
|
||||||
|
select BR2_HOST_CMAKE_AT_LEAST_3_20 # cmake required version at least 3.20
|
||||||
help
|
help
|
||||||
The LLVM Project is a collection of modular and reusable
|
The LLVM Project is a collection of modular and reusable
|
||||||
compiler and toolchain technologies.
|
compiler and toolchain technologies.
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
# locally calculated
|
# locally calculated
|
||||||
sha256 4ad8b2cc8003c86d0078d15d987d84e3a739f24aae9033865c027abae93ee7a4 llvm-15.0.7.src.tar.xz
|
sha256 9a9a80ca4c0d902531f2b43e9e4d6c36b57cdd5702430e0b54567bf273bd32c1 llvm-20.1.5.src.tar.xz
|
||||||
sha256 8d85c1057d742e597985c7d4e6320b015a9139385cff4cbae06ffc0ebe89afee LICENSE.TXT
|
sha256 8d85c1057d742e597985c7d4e6320b015a9139385cff4cbae06ffc0ebe89afee LICENSE.TXT
|
||||||
|
|||||||
@@ -20,11 +20,19 @@ LLVM_DEPENDENCIES = host-llvm
|
|||||||
HOST_LLVM_CONF_OPTS += -DCMAKE_MODULE_PATH=$(HOST_DIR)/lib/cmake/llvm
|
HOST_LLVM_CONF_OPTS += -DCMAKE_MODULE_PATH=$(HOST_DIR)/lib/cmake/llvm
|
||||||
LLVM_CONF_OPTS += -DCMAKE_MODULE_PATH=$(HOST_DIR)/lib/cmake/llvm
|
LLVM_CONF_OPTS += -DCMAKE_MODULE_PATH=$(HOST_DIR)/lib/cmake/llvm
|
||||||
|
|
||||||
|
HOST_LLVM_CONF_OPTS += -DLLVM_COMMON_CMAKE_UTILS=$(HOST_DIR)/lib/cmake/llvm
|
||||||
|
LLVM_CONF_OPTS += -DLLVM_COMMON_CMAKE_UTILS=$(HOST_DIR)/lib/cmake/llvm
|
||||||
|
|
||||||
# Don't build clang libcxx libcxxabi lldb compiler-rt lld polly as llvm subprojects
|
# Don't build clang libcxx libcxxabi lldb compiler-rt lld polly as llvm subprojects
|
||||||
# This flag assumes that projects are checked out side-by-side and not nested
|
# This flag assumes that projects are checked out side-by-side and not nested
|
||||||
HOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_PROJECTS=""
|
HOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_PROJECTS=""
|
||||||
LLVM_CONF_OPTS += -DLLVM_ENABLE_PROJECTS=""
|
LLVM_CONF_OPTS += -DLLVM_ENABLE_PROJECTS=""
|
||||||
|
|
||||||
|
# LLVM_ENABLE_RUNTIMES for runtime components libcxx etc
|
||||||
|
|
||||||
|
HOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_RUNTIMES=""
|
||||||
|
LLVM_CONF_OPTS += -DLLVM_ENABLE_RUNTIMES=""
|
||||||
|
|
||||||
HOST_LLVM_CONF_OPTS += -DLLVM_CCACHE_BUILD=$(if $(BR2_CCACHE),ON,OFF)
|
HOST_LLVM_CONF_OPTS += -DLLVM_CCACHE_BUILD=$(if $(BR2_CCACHE),ON,OFF)
|
||||||
LLVM_CONF_OPTS += -DLLVM_CCACHE_BUILD=$(if $(BR2_CCACHE),ON,OFF)
|
LLVM_CONF_OPTS += -DLLVM_CCACHE_BUILD=$(if $(BR2_CCACHE),ON,OFF)
|
||||||
|
|
||||||
@@ -151,6 +159,10 @@ LLVM_CONF_OPTS += -DLLVM_ENABLE_Z3_SOLVER=OFF
|
|||||||
HOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_PIC=ON
|
HOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_PIC=ON
|
||||||
LLVM_CONF_OPTS += -DLLVM_ENABLE_PIC=ON
|
LLVM_CONF_OPTS += -DLLVM_ENABLE_PIC=ON
|
||||||
|
|
||||||
|
# Disable TFTLite integration
|
||||||
|
HOST_LLVM_CONF_OPTS += -DLLVM_HAVE_TFLITE=""
|
||||||
|
LLVM_CONF_OPTS += -DLLVM_HAVE_TFLITE=""
|
||||||
|
|
||||||
# Default is Debug build, which requires considerably more disk space and
|
# Default is Debug build, which requires considerably more disk space and
|
||||||
# build time. Release build is selected for host and target because the linker
|
# build time. Release build is selected for host and target because the linker
|
||||||
# can run out of memory in Debug mode.
|
# can run out of memory in Debug mode.
|
||||||
@@ -261,7 +273,6 @@ HOST_LLVM_CONF_OPTS += \
|
|||||||
-DLLVM_ENABLE_SPHINX=OFF \
|
-DLLVM_ENABLE_SPHINX=OFF \
|
||||||
-DLLVM_INCLUDE_EXAMPLES=OFF \
|
-DLLVM_INCLUDE_EXAMPLES=OFF \
|
||||||
-DLLVM_INCLUDE_DOCS=OFF \
|
-DLLVM_INCLUDE_DOCS=OFF \
|
||||||
-DLLVM_INCLUDE_GO_TESTS=OFF \
|
|
||||||
-DLLVM_INCLUDE_TESTS=OFF \
|
-DLLVM_INCLUDE_TESTS=OFF \
|
||||||
-DLLVM_INCLUDE_BENCHMARKS=OFF
|
-DLLVM_INCLUDE_BENCHMARKS=OFF
|
||||||
LLVM_CONF_OPTS += \
|
LLVM_CONF_OPTS += \
|
||||||
@@ -273,7 +284,6 @@ LLVM_CONF_OPTS += \
|
|||||||
-DLLVM_ENABLE_SPHINX=OFF \
|
-DLLVM_ENABLE_SPHINX=OFF \
|
||||||
-DLLVM_INCLUDE_EXAMPLES=OFF \
|
-DLLVM_INCLUDE_EXAMPLES=OFF \
|
||||||
-DLLVM_INCLUDE_DOCS=OFF \
|
-DLLVM_INCLUDE_DOCS=OFF \
|
||||||
-DLLVM_INCLUDE_GO_TESTS=OFF \
|
|
||||||
-DLLVM_INCLUDE_TESTS=OFF \
|
-DLLVM_INCLUDE_TESTS=OFF \
|
||||||
-DLLVM_INCLUDE_BENCHMARKS=OFF
|
-DLLVM_INCLUDE_BENCHMARKS=OFF
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
# locally calculated
|
# locally calculated
|
||||||
sha256 0a00a72a5b004eeb73f9c96c9c6ba2d6de232cbf3c22a7b322047604d24402ba spirv-llvm-translator-v15.0.0-46-ge82ecc2bd7295604fcf1824e47c95fa6a09c6e63.tar.gz
|
sha256 ca89c35cbc55cfe69ab9fa1a2f3ee585d30cb285e01e2cae309fe0e1f1dfd79e spirv-llvm-translator-v20.1.2-7-g834db1a1985ac36d5a3e1b4b34dc1ca3f919ad5b.tar.gz
|
||||||
sha256 e3bc36440fc927c62d5cc24efeefe225a14d4e34ffeb0c92e430625cce9ee444 LICENSE.TXT
|
sha256 e3bc36440fc927c62d5cc24efeefe225a14d4e34ffeb0c92e430625cce9ee444 LICENSE.TXT
|
||||||
|
|||||||
@@ -5,8 +5,8 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
# Generate version string using:
|
# Generate version string using:
|
||||||
# git describe --tags --match 'v15*' --abbrev=40 origin/llvm_release_150
|
# git describe --tags --match 'v20*' --abbrev=40 origin/llvm_release_200
|
||||||
SPIRV_LLVM_TRANSLATOR_VERSION = v15.0.0-46-ge82ecc2bd7295604fcf1824e47c95fa6a09c6e63
|
SPIRV_LLVM_TRANSLATOR_VERSION = v20.1.2-7-g834db1a1985ac36d5a3e1b4b34dc1ca3f919ad5b
|
||||||
SPIRV_LLVM_TRANSLATOR_SITE = $(call github,KhronosGroup,SPIRV-LLVM-Translator,$(SPIRV_LLVM_TRANSLATOR_VERSION))
|
SPIRV_LLVM_TRANSLATOR_SITE = $(call github,KhronosGroup,SPIRV-LLVM-Translator,$(SPIRV_LLVM_TRANSLATOR_VERSION))
|
||||||
SPIRV_LLVM_TRANSLATOR_LICENSE = NCSA
|
SPIRV_LLVM_TRANSLATOR_LICENSE = NCSA
|
||||||
SPIRV_LLVM_TRANSLATOR_LICENSE_FILES = LICENSE.TXT
|
SPIRV_LLVM_TRANSLATOR_LICENSE_FILES = LICENSE.TXT
|
||||||
|
|||||||
@@ -62,6 +62,9 @@ static char *predef_args[] = {
|
|||||||
#endif
|
#endif
|
||||||
path,
|
path,
|
||||||
"--sysroot", sysroot,
|
"--sysroot", sysroot,
|
||||||
|
#ifdef BR_CLANG_CONFIG_FILE
|
||||||
|
BR_CLANG_CONFIG_FILE,
|
||||||
|
#endif
|
||||||
#ifdef BR_ABI
|
#ifdef BR_ABI
|
||||||
"-mabi=" BR_ABI,
|
"-mabi=" BR_ABI,
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user