mirror of
https://git.proxmox.com/git/llvm-toolchain
synced 2025-08-14 02:55:08 +00:00
Merge remote-tracking branch 'origin/15' into snapshot
This commit is contained in:
commit
92684f54f5
92
debian/changelog
vendored
92
debian/changelog
vendored
@ -51,6 +51,44 @@ llvm-toolchain-snapshot (1:16~++20220731055325+02b3a358926e-1~exp1) experimental
|
||||
|
||||
-- Sylvestre Ledru <sylvestre@debian.org> Wed, 27 Jul 2022 21:36:27 +0200
|
||||
|
||||
llvm-toolchain-15 (1:15.0.4-1) unstable; urgency=medium
|
||||
|
||||
[ Jordan Justen ]
|
||||
* d/rules: Rename LLVM_SPIR_VERSION to LLVM_SPIRV_VERSION
|
||||
* d/rules: Call bash to use 'command -v' to locate llvm-spirv executable
|
||||
* debian: Bump llvm-spirv to 15 to match the llvm version
|
||||
* d/rules: Set LLVM_SPIRV with cmake for libclc
|
||||
* d/patches: Drop libclc-llvm-spirv.diff now that we are setting LLVM_SPIRV
|
||||
* d/rules: Restore building libclc .bc output without spir-v support
|
||||
* d/rules: Check for previous version of llvm-spirv as well
|
||||
* d/control: Add llvm-spirv-14 as an alternative to llvm-spirv-15
|
||||
|
||||
[ Sylvestre Ledru ]
|
||||
* New upstream release (Closes: #1023455)
|
||||
* Cherry-pick patches to fix the FTBFS with swig + lldb (Closes: #1023444)
|
||||
|
||||
-- Sylvestre Ledru <sylvestre@debian.org> Wed, 02 Nov 2022 08:50:23 +0100
|
||||
|
||||
llvm-toolchain-15 (1:15.0.3-2) unstable; urgency=medium
|
||||
|
||||
* Cherry-pick upstream fix to unbreak mips (closes: #1022169)
|
||||
Thanks to YunQiang Su for the patch
|
||||
https://reviews.llvm.org/D135553
|
||||
|
||||
-- Sylvestre Ledru <sylvestre@debian.org> Fri, 28 Oct 2022 10:25:45 +0200
|
||||
|
||||
llvm-toolchain-15 (1:15.0.3-1) unstable; urgency=medium
|
||||
|
||||
* Upload to unstable now that autopkgtest is green
|
||||
|
||||
-- Sylvestre Ledru <sylvestre@debian.org> Sun, 23 Oct 2022 10:34:58 +0200
|
||||
|
||||
llvm-toolchain-15 (1:15.0.3-1~exp2) experimental; urgency=medium
|
||||
|
||||
* Fix autopkgtest (remove move stuff from the cmake search)
|
||||
|
||||
-- Sylvestre Ledru <sylvestre@debian.org> Fri, 21 Oct 2022 23:53:23 +0200
|
||||
|
||||
llvm-toolchain-15 (1:15.0.3-1~exp1) experimental; urgency=medium
|
||||
|
||||
* New stable release
|
||||
@ -250,6 +288,39 @@ llvm-toolchain-snapshot (1:15~++20220202093833+1a3137dc8451-1~exp1) experimental
|
||||
|
||||
-- Sylvestre Ledru <sylvestre@debian.org> Sun, 13 Feb 2022 23:25:57 +0100
|
||||
|
||||
llvm-toolchain-14 (1:14.0.6-8) unstable; urgency=medium
|
||||
|
||||
* Fix the lldb swig issues (closes: #1023444)
|
||||
|
||||
-- Sylvestre Ledru <sylvestre@debian.org> Fri, 04 Nov 2022 19:36:56 +0100
|
||||
|
||||
llvm-toolchain-14 (1:14.0.6-7) unstable; urgency=medium
|
||||
|
||||
* Disable the cmake search for all binaries
|
||||
(cmake_import_check_files_for.*/bin/). Dunno why it regressed
|
||||
but we wasted too much time on this.
|
||||
* disable sccache on bionic
|
||||
|
||||
[ Jordan Justen ]
|
||||
* d/rules: Call bash to use 'command -v' to location llvm-spirv executable
|
||||
* d/rules: Set LLVM_SPIRV with cmake for libclc
|
||||
* d/patches: Drop libclc-llvm-spirv.diff now that we are setting LLVM_SPIRV
|
||||
* d/rules: Check for llvm-spirv with version suffix
|
||||
|
||||
-- Sylvestre Ledru <sylvestre@debian.org> Thu, 27 Oct 2022 12:47:19 +0200
|
||||
|
||||
llvm-toolchain-14 (1:14.0.6-6) unstable; urgency=medium
|
||||
|
||||
* Unbreak the cmake detection (Closes: #1021857, #1022414)
|
||||
|
||||
-- Sylvestre Ledru <sylvestre@debian.org> Sun, 23 Oct 2022 16:07:45 +0200
|
||||
|
||||
llvm-toolchain-14 (1:14.0.6-5) unstable; urgency=medium
|
||||
|
||||
* Update of the build dep llvm-spirv => llvm-spirv-14
|
||||
|
||||
-- Sylvestre Ledru <sylvestre@debian.org> Tue, 11 Oct 2022 08:39:18 +0200
|
||||
|
||||
llvm-toolchain-14 (1:14.0.6-4) unstable; urgency=medium
|
||||
|
||||
* fix the cmake detection with libmlir
|
||||
@ -715,6 +786,27 @@ llvm-toolchain-snapshot (1:14~++20210715093511+afc760ef3527-1~exp2) unstable; ur
|
||||
|
||||
-- Sylvestre Ledru <sylvestre@debian.org> Fri, 06 Aug 2021 08:40:58 +0200
|
||||
|
||||
llvm-toolchain-13 (1:13.0.1-9) UNRELEASED; urgency=medium
|
||||
|
||||
* d/rules: Don't send an empty string to cmake when llvm-spirv is not found
|
||||
|
||||
-- Jordan Justen <jljusten@debian.org> Fri, 28 Oct 2022 10:17:57 -0700
|
||||
|
||||
llvm-toolchain-13 (1:13.0.1-8) unstable; urgency=medium
|
||||
|
||||
[ Sylvestre Ledru ]
|
||||
* Disable the build of libclc on old Ubuntu (Groovy & focal)
|
||||
as llvm-spir is too old on these version.
|
||||
See bug #52200
|
||||
|
||||
[ Jordan Justen ]
|
||||
* d/rules: Call bash to use 'command -v' to location llvm-spirv executable
|
||||
* d/rules: Set LLVM_SPIRV with cmake for libclc
|
||||
* d/patches: Drop libclc-llvm-spirv.diff now that we are setting LLVM_SPIRV
|
||||
* d/rules: Check for llvm-spirv with version suffix
|
||||
|
||||
-- Jordan Justen <jljusten@debian.org> Wed, 26 Oct 2022 10:13:59 -0700
|
||||
|
||||
llvm-toolchain-13 (1:13.0.1-7) unstable; urgency=medium
|
||||
|
||||
[ Michael Biebl ]
|
||||
|
1
debian/control
vendored
1
debian/control
vendored
@ -22,6 +22,7 @@ Build-Depends: debhelper (>= 10.0), cmake, ninja-build,
|
||||
libctypes-ocaml-dev [amd64 arm64 armhf ppc64el riscv64 s390x],
|
||||
dh-exec, dh-ocaml [amd64 arm64 armhf ppc64el riscv64 s390x],
|
||||
libpfm4-dev [linux-any], python3-setuptools, libz3-dev,
|
||||
llvm-spirv-15 [ amd64 arm64 armel armhf mips64el mipsel ppc64el s390x ] <!stage1> |
|
||||
llvm-spirv-14 [ amd64 arm64 armel armhf mips64el mipsel ppc64el s390x ] <!stage1> | hello [!i386],
|
||||
spirv-tools [ linux-any ] | hello [ !i386],
|
||||
libcurl4-dev,
|
||||
|
2
debian/libclc-X.Y.install.in
vendored
2
debian/libclc-X.Y.install.in
vendored
@ -1,2 +1,2 @@
|
||||
usr/lib/clc/*.bc
|
||||
usr/lib/clc/*.spv
|
||||
#spv usr/lib/clc/*.spv
|
||||
|
@ -1,19 +0,0 @@
|
||||
---
|
||||
lib/Support/CommandLine.cpp | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
Index: llvm-toolchain-snapshot_15~++20220608102131+032be2330928/llvm/lib/Support/CommandLine.cpp
|
||||
===================================================================
|
||||
--- llvm-toolchain-snapshot_15~++20220608102131+032be2330928.orig/llvm/lib/Support/CommandLine.cpp
|
||||
+++ llvm-toolchain-snapshot_15~++20220608102131+032be2330928/llvm/lib/Support/CommandLine.cpp
|
||||
@@ -2469,6 +2469,10 @@ public:
|
||||
OS << "LLVM (http://llvm.org/):\n ";
|
||||
#endif
|
||||
OS << PACKAGE_NAME << " version " << PACKAGE_VERSION << "\n ";
|
||||
+#ifdef LLVM_DEBIAN_INFO
|
||||
+ OS << LLVM_DEBIAN_INFO;
|
||||
+#endif
|
||||
+ OS << "\n ";
|
||||
#if LLVM_IS_DEBUG_BUILD
|
||||
OS << "DEBUG build";
|
||||
#else
|
21
debian/patches/19-clang_debian_version.patch
vendored
21
debian/patches/19-clang_debian_version.patch
vendored
@ -1,21 +0,0 @@
|
||||
Index: llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/clang/lib/Basic/Version.cpp
|
||||
===================================================================
|
||||
--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/clang/lib/Basic/Version.cpp
|
||||
+++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/clang/lib/Basic/Version.cpp
|
||||
@@ -14,6 +14,7 @@
|
||||
#include "clang/Basic/LLVM.h"
|
||||
#include "clang/Config/config.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
+#include "clang/Debian/debian_path.h"
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
|
||||
@@ -95,7 +96,7 @@ std::string getClangToolFullVersion(Stri
|
||||
#ifdef CLANG_VENDOR
|
||||
OS << CLANG_VENDOR;
|
||||
#endif
|
||||
- OS << ToolName << " version " CLANG_VERSION_STRING;
|
||||
+ OS << ToolName << " version " CLANG_VERSION_STRING "-" DEB_PATCHSETVERSION;
|
||||
|
||||
std::string repo = getClangFullRepositoryVersion();
|
||||
if (!repo.empty()) {
|
13
debian/patches/libclc-llvm-spirv.diff
vendored
13
debian/patches/libclc-llvm-spirv.diff
vendored
@ -1,13 +0,0 @@
|
||||
Index: llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/libclc/CMakeLists.txt
|
||||
===================================================================
|
||||
--- llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8.orig/libclc/CMakeLists.txt
|
||||
+++ llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/libclc/CMakeLists.txt
|
||||
@@ -99,7 +99,7 @@ find_program( LLVM_CLANG clang PATHS ${L
|
||||
find_program( LLVM_AS llvm-as PATHS ${LLVM_BINDIR} NO_DEFAULT_PATH )
|
||||
find_program( LLVM_LINK llvm-link PATHS ${LLVM_BINDIR} NO_DEFAULT_PATH )
|
||||
find_program( LLVM_OPT opt PATHS ${LLVM_BINDIR} NO_DEFAULT_PATH )
|
||||
-find_program( LLVM_SPIRV llvm-spirv PATHS ${LLVM_BINDIR} NO_DEFAULT_PATH )
|
||||
+find_program( LLVM_SPIRV llvm-spirv PATHS ${LLVM_BINDIR})
|
||||
|
||||
# Print toolchain
|
||||
message( "clang: ${LLVM_CLANG}" )
|
13
debian/patches/lldb/lldb-swig-2.diff
vendored
Normal file
13
debian/patches/lldb/lldb-swig-2.diff
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/lldb/bindings/python/python-typemaps.swig b/lldb/bindings/python/python-typemaps.swig
|
||||
index 203be803d2ebd..11f68d59ae7be 100644
|
||||
--- a/lldb/bindings/python/python-typemaps.swig
|
||||
+++ b/lldb/bindings/python/python-typemaps.swig
|
||||
@@ -435,7 +435,7 @@ template <> bool SetNumberFromPyObject<double>(double &number, PyObject *obj) {
|
||||
|
||||
%typemap(out) lldb::FileSP {
|
||||
$result = nullptr;
|
||||
- lldb::FileSP &sp = $1;
|
||||
+ const lldb::FileSP &sp = $1;
|
||||
if (sp) {
|
||||
PythonFile pyfile = unwrapOrSetPythonException(PythonFile::FromFile(*sp));
|
||||
if (!pyfile.IsValid())
|
26
debian/patches/lldb/lldb-swig.diff
vendored
Normal file
26
debian/patches/lldb/lldb-swig.diff
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
diff --git a/lldb/bindings/CMakeLists.txt b/lldb/bindings/CMakeLists.txt
|
||||
index c8aa0bcf96817..9eed2f1e62999 100644
|
||||
--- a/lldb/bindings/CMakeLists.txt
|
||||
+++ b/lldb/bindings/CMakeLists.txt
|
||||
@@ -26,8 +26,6 @@ set(SWIG_COMMON_FLAGS
|
||||
-features autodoc
|
||||
-I${LLDB_SOURCE_DIR}/include
|
||||
-I${CMAKE_CURRENT_SOURCE_DIR}
|
||||
- -D__STDC_LIMIT_MACROS
|
||||
- -D__STDC_CONSTANT_MACROS
|
||||
${DARWIN_EXTRAS}
|
||||
)
|
||||
|
||||
diff --git a/lldb/bindings/interfaces.swig b/lldb/bindings/interfaces.swig
|
||||
index fb75513a0df1b..d984711bbd8a2 100644
|
||||
--- a/lldb/bindings/interfaces.swig
|
||||
+++ b/lldb/bindings/interfaces.swig
|
||||
@@ -1,8 +1,5 @@
|
||||
/* Various liblldb typedefs that SWIG needs to know about. */
|
||||
#define __extension__ /* Undefine GCC keyword to make Swig happy when processing glibc's stdint.h. */
|
||||
-/* The ISO C99 standard specifies that in C++ implementations limit macros such
|
||||
- as INT32_MAX should only be defined if __STDC_LIMIT_MACROS is. */
|
||||
-#define __STDC_LIMIT_MACROS
|
||||
%include "stdint.i"
|
||||
|
||||
%include "lldb/lldb-defines.h"
|
19
debian/patches/mips/mips-assert-size.diff
vendored
Normal file
19
debian/patches/mips/mips-assert-size.diff
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
Index: llvm-toolchain-15_15.0.3~++20221019061539+4a2c05b05ed0/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_linux.cpp
|
||||
===================================================================
|
||||
--- llvm-toolchain-15_15.0.3~++20221019061539+4a2c05b05ed0.orig/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_linux.cpp
|
||||
+++ llvm-toolchain-15_15.0.3~++20221019061539+4a2c05b05ed0/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_linux.cpp
|
||||
@@ -64,9 +64,12 @@ using namespace __sanitizer;
|
||||
COMPILER_CHECK(struct___old_kernel_stat_sz == sizeof(struct __old_kernel_stat));
|
||||
#endif
|
||||
|
||||
-COMPILER_CHECK(struct_kernel_stat_sz == sizeof(struct stat));
|
||||
+# if defined(__LP64__) || \
|
||||
+ (!defined(_LARGEFILE_SOURCE) && _FILE_OFFSET_BITS != 64)
|
||||
+ COMPILER_CHECK(struct_kernel_stat_sz == sizeof(struct stat));
|
||||
+# endif
|
||||
|
||||
-#if defined(__i386__)
|
||||
+# if defined(__i386__)
|
||||
COMPILER_CHECK(struct_kernel_stat64_sz == sizeof(struct stat64));
|
||||
#endif
|
||||
|
@ -1,34 +0,0 @@
|
||||
Index: llvm-toolchain-10_10.0.1~+rc1/clang/lib/Basic/Version.cpp
|
||||
===================================================================
|
||||
--- llvm-toolchain-10_10.0.1~+rc1.orig/clang/lib/Basic/Version.cpp
|
||||
+++ llvm-toolchain-10_10.0.1~+rc1/clang/lib/Basic/Version.cpp
|
||||
@@ -125,8 +125,12 @@ std::string getClangToolFullVersion(Stri
|
||||
#ifdef CLANG_VENDOR
|
||||
OS << CLANG_VENDOR;
|
||||
#endif
|
||||
- OS << ToolName << " version " CLANG_VERSION_STRING "-" DEB_PATCHSETVERSION " "
|
||||
- << getClangFullRepositoryVersion();
|
||||
+ OS << ToolName << " version " CLANG_VERSION_STRING "-" DEB_PATCHSETVERSION;
|
||||
+
|
||||
+ std::string repo = getClangFullRepositoryVersion();
|
||||
+ if (!repo.empty()) {
|
||||
+ OS << " " << repo;
|
||||
+ }
|
||||
|
||||
return OS.str();
|
||||
}
|
||||
@@ -139,7 +143,13 @@ std::string getClangFullCPPVersion() {
|
||||
#ifdef CLANG_VENDOR
|
||||
OS << CLANG_VENDOR;
|
||||
#endif
|
||||
- OS << "Clang " CLANG_VERSION_STRING " " << getClangFullRepositoryVersion();
|
||||
+ OS << "Clang " CLANG_VERSION_STRING;
|
||||
+
|
||||
+ std::string repo = getClangFullRepositoryVersion();
|
||||
+ if (!repo.empty()) {
|
||||
+ OS << " " << repo;
|
||||
+ }
|
||||
+
|
||||
return OS.str();
|
||||
}
|
||||
|
10
debian/patches/series
vendored
10
debian/patches/series
vendored
@ -1,6 +1,4 @@
|
||||
# Debian versions
|
||||
19-clang_debian_version.patch
|
||||
0003-Debian-version-info-and-bugreport.patch
|
||||
clang-format-version.diff
|
||||
clang-analyzer-force-version.diff
|
||||
|
||||
@ -27,7 +25,7 @@ disable-display-PASS-UNSUPPORTED-XFAIL.diff
|
||||
|
||||
# Lib names
|
||||
0044-soname.diff
|
||||
lldb-soname.diff
|
||||
lldb/lldb-soname.diff
|
||||
#lldb-libname.diff
|
||||
openmp-soname.diff
|
||||
|
||||
@ -121,13 +119,12 @@ bootstrap-fix-include-next.diff
|
||||
#D67877-cmake-clang-example.patch
|
||||
|
||||
python3-shebang.patch
|
||||
print-lldb-path.patch
|
||||
lldb/print-lldb-path.patch
|
||||
lower-python-dep.diff
|
||||
scan-build-py-fix-default-bin.diff
|
||||
|
||||
libclc-llvm-spirv.diff
|
||||
omp-riscv64.patch
|
||||
test-disable-lldb-i386.diff
|
||||
lldb/test-disable-lldb-i386.diff
|
||||
unbreak-atomic-mips.diff
|
||||
llvm-fix-lld-linker-check.diff
|
||||
openmp-fix-runtimes-build.diff
|
||||
@ -149,3 +146,4 @@ revert-update-doc.diff
|
||||
unwind-force-pthread-dl.diff
|
||||
force-sse2-compiler-rt.diff
|
||||
bolt-disable-emit-relocs.patch
|
||||
|
||||
|
5
debian/qualify-clang.sh
vendored
5
debian/qualify-clang.sh
vendored
@ -1264,7 +1264,7 @@ fi
|
||||
|
||||
|
||||
opt-$VERSION -S -polly-canonicalize matmul.s > matmul.preopt.ll > /dev/null
|
||||
opt-$VERSION -basic-aa -polly-ast -analyze matmul.preopt.ll -polly-process-unprofitable > /dev/null
|
||||
opt-$VERSION -basic-aa -polly-ast matmul.preopt.ll -polly-process-unprofitable > /dev/null
|
||||
if test ! -f /usr/lib/llvm-$VERSION/share/opt-viewer/opt-viewer.py; then
|
||||
echo "Install llvm-$VERSION-tools"
|
||||
exit 42
|
||||
@ -1374,6 +1374,9 @@ EOF
|
||||
fi
|
||||
rm -f printf.c printf
|
||||
fi
|
||||
echo '#include <algorithm>' > foo.cpp
|
||||
# Fails for now
|
||||
clang++-$VERSION --target=wasm32-wasi -o foo.o -c foo.cpp||true
|
||||
|
||||
echo '
|
||||
#include <vector>
|
||||
|
143
debian/rules
vendored
143
debian/rules
vendored
@ -93,6 +93,16 @@ COMPILER_RT_USE_BUILTINS_LIBRARY := ON
|
||||
LIBCXX_EXCEPTIONS := ON
|
||||
LIBCXX_USE_COMPILER_RT := ON
|
||||
|
||||
# We want to set the clang extra version ONLY in stage 2
|
||||
# because we want the clang stage 1 to be as reproducible as possible
|
||||
# when building with sccache (because this tool do a hash using the
|
||||
# compiler binary and other things)
|
||||
STAGE_2_CMAKE_EXTRA += -DCLANG_REPOSITORY_STRING=$(DEBIAN_REVISION)
|
||||
|
||||
ifneq (,$(filter $(DEB_HOST_ARCH),sparc sparc64))
|
||||
STAGE_1_CMAKE_EXTRA += -DLLVM_PARALLEL_LINK_JOBS=4
|
||||
endif
|
||||
|
||||
ifneq (,$(filter $(DEB_HOST_ARCH),i386 hurd-i386 kfreebsd-i386 armel mipsel powerpc powerpcspe riscv64))
|
||||
# For some reason, in the stage2 build, when clang is used to compile
|
||||
# itself. The atomic detection is failing on armel and riscv64. Forcing the inclusion
|
||||
@ -100,32 +110,6 @@ ifneq (,$(filter $(DEB_HOST_ARCH),i386 hurd-i386 kfreebsd-i386 armel mipsel powe
|
||||
LDFLAGS_EXTRA += -latomic
|
||||
endif
|
||||
|
||||
ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' g++-$(GCC_VERSION)) lt 4.9-20140411-1~ ; echo $$?),0)
|
||||
# Too old version of gcc. Force 4.9
|
||||
GCC_VERSION := 4.9
|
||||
endif
|
||||
|
||||
ifneq (,$(filter $(DISTRO),stretch))
|
||||
# from llvm 15, we need gcc at least 7
|
||||
# No need for now. keeping in case we do in the future
|
||||
# GCC_VERSION := 7
|
||||
# Don't enable lld python for old distros
|
||||
STAGE_ALL_CMAKE_EXTRA += -DLLDB_ENABLE_PYTHON=OFF
|
||||
# Only enabled for stage 1, for stage2, it will use the local libc++ version
|
||||
STAGE_1_CMAKE_EXTRA += -DCLANG_DEFAULT_CXX_STDLIB=libc++
|
||||
STAGE_1_CMAKE_EXTRA += -DLLVM_ENABLE_LIBCXX=ON
|
||||
STAGE_1_CXXFLAGS += -I/usr/lib/llvm-14/include/c++/v1/
|
||||
USE_CLANG_PACKAGE_TO_BUILD_ITSELF = yes
|
||||
else
|
||||
# For all other deb/ubuntu, use libstdc++
|
||||
# TODO: At some point, we might want to use libc++
|
||||
CMAKE_EXTRA += -DCLANG_DEFAULT_CXX_STDLIB=libstdc++
|
||||
# For some reasons, adding these to the arg on stretch
|
||||
# breaks the build
|
||||
CMAKE_EXTRA += -DBUILTINS_CMAKE_ARGS="-DCMAKE_C_FLAGS=$(STAGE_1_CFLAGS);-DCMAKE_CXX_FLAGS=$(STAGE_1_CXXFLAGS);-DCMAKE_EXE_LINKER_FLAGS=$(STAGE_1_LDFLAGS);-DCMAKE_SHARED_LINKER_FLAGS=$(STAGE_1_LDFLAGS);-DCMAKE_MODULE_LINKER_FLAGS=$(STAGE_1_LDFLAGS);-DCMAKE_BUILD_TYPE=Release;-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF"
|
||||
CMAKE_EXTRA += -DRUNTIMES_CMAKE_ARGS="-DCMAKE_C_FLAGS=$(STAGE_1_CFLAGS);-DCMAKE_CXX_FLAGS=$(STAGE_1_CXXFLAGS);-DCMAKE_EXE_LINKER_FLAGS=$(STAGE_1_LDFLAGS);-DCMAKE_SHARED_LINKER_FLAGS=$(STAGE_1_LDFLAGS);-DCMAKE_MODULE_LINKER_FLAGS=$(STAGE_1_LDFLAGS);-DCMAKE_BUILD_TYPE=Release;-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF"
|
||||
endif
|
||||
|
||||
Z3_FLAG = -DLLVM_ENABLE_Z3_SOLVER=OFF
|
||||
ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' libz3-dev) gt 4.7.0; echo $$?),0)
|
||||
# no ocaml support in main for Ubuntu
|
||||
@ -260,12 +244,17 @@ else
|
||||
control_vars = '-Vdep:devlibs=libstdc++6-$(GCC_VERSION)-dev'
|
||||
endif
|
||||
|
||||
# Needs 16 because of opaque pointers
|
||||
LLVM_SPIR_VERSION=16
|
||||
ifeq ($(shell command -v llvm-spirv-$(LLVM_SPIR_VERSION)),)
|
||||
LLVM_SPIRV_INSTALLED = no
|
||||
LLVM_SPIRV_VERSION := $(LLVM_VERSION)
|
||||
LLVM_SPIRV := $(shell bash -c "command -v llvm-spirv-$(LLVM_SPIRV_VERSION)" 2>/dev/null)
|
||||
ifndef LLVM_SPIRV
|
||||
LLVM_SPIRV_VERSION := $(shell expr $(LLVM_VERSION) - 1)
|
||||
LLVM_SPIRV := $(shell bash -c "command -v llvm-spirv-$(LLVM_SPIRV_VERSION)" 2>/dev/null)
|
||||
endif
|
||||
|
||||
ifndef LLVM_SPIRV
|
||||
LLVM_SPIRV_INSTALLED = no
|
||||
else
|
||||
ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' llvm-spirv-$(LLVM_SPIR_VERSION)) gt 16.0.0 ; echo $$?),0)
|
||||
ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' llvm-spirv-$(LLVM_SPIRV_VERSION)) gt 14.0.0 ; echo $$?),0)
|
||||
# Too old llvm-spirv version are failing. See #52200
|
||||
LLVM_SPIRV_INSTALLED = yes
|
||||
else
|
||||
@ -274,8 +263,10 @@ else
|
||||
endif
|
||||
|
||||
LIBCLC_TARGETS_TO_BUILD="amdgcn--;amdgcn--amdhsa;amdgcn-mesa-mesa3d;r600--;nvptx--;nvptx64--;nvptx--nvidiacl;nvptx64--nvidiacl"
|
||||
LIBCLC_LLVM_SPIRV =
|
||||
ifeq ($(LLVM_SPIRV_INSTALLED),yes)
|
||||
LIBCLC_TARGETS_TO_BUILD := $(LIBCLC_TARGETS_TO_BUILD)";spirv-mesa3d-;spirv64-mesa3d-"
|
||||
LIBCLC_LLVM_SPIRV = "-DLLVM_SPIRV=$(LLVM_SPIRV)"
|
||||
endif
|
||||
|
||||
BINUTILS_GOLD_ARCHS := amd64 arm64 armhf i386 ppc64 ppc64el x32 s390x hurd-i386 kfreebsd-amd64 kfreebsd-i386
|
||||
@ -423,8 +414,8 @@ ifeq (,$(filter-out $(LTO_DISABLE_ARCHS), $(DEB_HOST_ARCH)))
|
||||
else
|
||||
# Disable for now because of
|
||||
# https://github.com/llvm/llvm-project/issues/58317#issuecomment-1276190743
|
||||
# LTO_ENABLE=yes
|
||||
# STAGE_2_CMAKE_EXTRA += -DLLVM_ENABLE_LTO="On"
|
||||
# LTO_ENABLE=yes
|
||||
# STAGE_2_CMAKE_EXTRA += -DLLVM_ENABLE_LTO="On"
|
||||
endif
|
||||
endif
|
||||
|
||||
@ -459,6 +450,15 @@ ifeq ($(shell test -e /tmp/cmake/bin/cmake && echo -n yes),yes)
|
||||
export LD_LIBRARY_PATH=$$LD_LIBRARY_PATH:/tmp/cmake/bin/
|
||||
endif
|
||||
|
||||
SCCACHE_ENABLE=no
|
||||
# if sccache is installed in the chroot, use it
|
||||
ifeq ($(shell test -e /opt/sccache/sccache && echo -n yes),yes)
|
||||
SCCACHE_CMAKE = -DCMAKE_C_COMPILER_LAUNCHER=/opt/sccache/sccache -DCMAKE_CXX_COMPILER_LAUNCHER=/opt/sccache/sccache
|
||||
STAGE_1_CMAKE_EXTRA += $(SCCACHE_CMAKE)
|
||||
SCCACHE_ENABLE=yes
|
||||
export LD_LIBRARY_PATH=$$LD_LIBRARY_PATH:/opt/sccache
|
||||
endif
|
||||
|
||||
# enables cmake build targets like stage2-[target_name]
|
||||
ENABLED_STAGE2_CMAKE_BUILD_TARGETS = check-all;check-llvm;check-clang;check-clang-tools;check-lld;check-libcxx;check-libcxxabi;check-mlir;check-sanitizer;llvm-config;test-suite
|
||||
|
||||
@ -530,12 +530,12 @@ preconfigure:
|
||||
fi; \
|
||||
fi
|
||||
|
||||
# Conditionally enable *.spv files. Debian buster and Ubuntu 18.04
|
||||
# don't have llvm-spirv to create the *.spv files.
|
||||
if test "$(LLVM_SPIRV_INSTALLED)" = "no"; then \
|
||||
echo "" > debian/libclc-$(LLVM_VERSION).install; \
|
||||
echo "" > debian/libclc-$(LLVM_VERSION)-dev.install; \
|
||||
fi
|
||||
ifdef LLVM_SPIRV
|
||||
# llvm-spirv was found, so we can enable *.spv files. Debian
|
||||
# buster and Ubuntu 18.04 don't have llvm-spirv to create the
|
||||
# *.spv files.
|
||||
sed -i -e "s|#spv\ ||g" debian/libclc-$(LLVM_VERSION).install
|
||||
endif
|
||||
if test "$(DISTRO)" = "stretch"; then \
|
||||
echo "" > debian/python3-lldb-$(LLVM_VERSION).install; \
|
||||
fi
|
||||
@ -551,12 +551,13 @@ override_dh_ocamlclean:
|
||||
override_dh_ocaml:
|
||||
|
||||
override_dh_auto_configure: preconfigure
|
||||
if test -f /opt/sccache/sccache; then \
|
||||
ls -al /opt/sccache/*; \
|
||||
fi
|
||||
echo "Using gcc: "
|
||||
$(CC) -v
|
||||
$(CXX) -v
|
||||
mkdir -p $(TARGET_BUILD)
|
||||
mkdir -p clang/include/clang/Debian
|
||||
sed -e "s|@DEB_PATCHSETVERSION@|$(DEBIAN_REVISION)|" \
|
||||
debian/debian_path.h > clang/include/clang/Debian/debian_path.h
|
||||
if test "$(SCAN_BUILD)" = "yes"; then \
|
||||
patch -f -p1 < debian/patches/on-the-fly/use-scan-build-runtimes.diff||true; \
|
||||
fi
|
||||
@ -589,7 +590,12 @@ override_dh_auto_configure: preconfigure
|
||||
#- to libc++ when libunwind is built
|
||||
#- Matches what is done on brew:
|
||||
#- https://bit.ly/3kDNpC9
|
||||
|
||||
ifeq (${SCCACHE_ENABLE},yes)
|
||||
# Just in case...
|
||||
/opt/sccache/sccache --stop-server||true
|
||||
# Start the sccache server with the right set of options to use GCP
|
||||
SCCACHE_LOG=sccache=debug SCCACHE_ERROR_LOG=/opt/sccache/sccache.log SCCACHE_GCS_KEY_PATH=/opt/sccache/secret-gcp-storage.json SCCACHE_GCS_BUCKET=apt-llvm-org-sccache SCCACHE_GCS_RW_MODE=READ_WRITE /opt/sccache/sccache --start-server
|
||||
endif
|
||||
echo "Running tests: $(RUN_TEST)"
|
||||
echo "Using cmake: $(CMAKE_BIN)"; \
|
||||
LD_LIBRARY_PATH=$$LD_LIBRARY_PATH \
|
||||
@ -715,13 +721,13 @@ endif
|
||||
touch $@
|
||||
|
||||
debian-libclc-build:
|
||||
ifeq ($(LLVM_SPIRV_INSTALLED),yes)
|
||||
# Builds libclc
|
||||
mkdir -p libclc/build
|
||||
echo "Using cmake: $(CMAKE_BIN)"
|
||||
cd libclc/build && \
|
||||
$(CMAKE_BIN) ../ \
|
||||
-G Ninja \
|
||||
$(SCCACHE_CMAKE) \
|
||||
-DCMAKE_C_COMPILER=$(STAGE_2_BIN_DIR)/clang \
|
||||
-DCMAKE_CXX_COMPILER=$(STAGE_2_BIN_DIR)/clang++ \
|
||||
-DCMAKE_C_FLAGS="$(opt_flags) $(STAGE_2_CFLAGS)" \
|
||||
@ -733,11 +739,11 @@ ifeq ($(LLVM_SPIRV_INSTALLED),yes)
|
||||
-DCMAKE_INSTALL_DATADIR=lib \
|
||||
-DCMAKE_INSTALL_INCLUDEDIR=include \
|
||||
-DLLVM_CONFIG=$(STAGE_2_BIN_DIR)/llvm-config \
|
||||
-DLLVM_SPIRV=/usr/bin/llvm-spirv-$(LLVM_SPIR_VERSION) \
|
||||
$(LIBCLC_LLVM_SPIRV) \
|
||||
-DLIBCLC_TARGETS_TO_BUILD=$(LIBCLC_TARGETS_TO_BUILD); \
|
||||
ninja -j $(NJOBS) $(VERBOSE)
|
||||
else
|
||||
echo "libclc isn't built LLVM_SPIRV_INSTALLED=$(LLVM_SPIRV_INSTALLED)"
|
||||
ifndef LLVM_SPIRV
|
||||
echo "libclc built without SPIRV (.spv) outputs because llvm-spirv wasn't found"
|
||||
endif
|
||||
touch $@
|
||||
|
||||
@ -748,6 +754,7 @@ ifeq (${COMPILER_RT_WASM_ENABLE},yes)
|
||||
mkdir -p build-compiler-rt-$$build; \
|
||||
$(CMAKE_BIN) -B build-compiler-rt-$$build -S compiler-rt/lib/builtins/ \
|
||||
-G Ninja \
|
||||
$(SCCACHE_CMAKE) \
|
||||
-DCMAKE_C_COMPILER_TARGET=$$build-unknown-unknown \
|
||||
-DCMAKE_CXX_COMPILER_TARGET=$$build-unknown-unknown \
|
||||
-DCMAKE_ASM_COMPILER_TARGET=$$build-unknown-unknown \
|
||||
@ -776,7 +783,16 @@ else
|
||||
endif
|
||||
touch $@
|
||||
|
||||
override_dh_auto_build: debian-full-build debian-libfuzzer-build debian-libclc-build debian-rtlib-wasm-build
|
||||
|
||||
sccache-stats:
|
||||
# If we used sccache, shows stats
|
||||
if test -f /opt/sccache/sccache; then \
|
||||
ls -al /opt/sccache/; \
|
||||
/opt/sccache/sccache --show-stats; \
|
||||
fi
|
||||
touch $@
|
||||
|
||||
override_dh_auto_build: debian-full-build debian-libfuzzer-build debian-libclc-build debian-rtlib-wasm-build sccache-stats
|
||||
|
||||
override_dh_prep: build_doc
|
||||
dh_prep
|
||||
@ -842,11 +858,6 @@ override_dh_auto_install:
|
||||
# Clean up temporary files to make sure the install works
|
||||
rm -rf $(find $(TARGET_BUILD) -wholename '*CMakeFiles*' -not -name CMakeLists.txt -a -name "*.dir" -type d)
|
||||
|
||||
ifeq (${LTO_ENABLE},yes)
|
||||
# with LTO, .a contains llvm ir instead of native code. So, recompile them
|
||||
NJOBS="$(NJOBS)" P_TO_LLVM="$(CURDIR)" VERSION=$(LLVM_VERSION) bash -v debian/llvm-compile-lto-elf.sh $(CXXFLAGS_EXTRA)
|
||||
endif
|
||||
|
||||
# install/fast enables a make install without recompiling temporary files
|
||||
LD_LIBRARY_PATH=$(STAGE_2_LIB_DIR):$$LD_LIBRARY_PATH DESTDIR=$(DEB_INST)/ ninja -C $(TARGET_BUILD) $(VERBOSE) stage2-install
|
||||
|
||||
@ -925,9 +936,7 @@ endif
|
||||
# Remove an osx file
|
||||
rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libbolt_rt_instr_osx.a
|
||||
|
||||
ifeq ($(LLVM_SPIRV_INSTALLED),yes)
|
||||
DESTDIR=$(DEB_INST) ninja $(VERBOSE) -C libclc/build install
|
||||
endif
|
||||
|
||||
ifeq (${COMPILER_RT_WASM_ENABLE},yes)
|
||||
DESTDIR=$(DEB_INST) ninja $(VERBOSE) -C build-compiler-rt-wasm32 install
|
||||
@ -978,10 +987,11 @@ endif
|
||||
|
||||
# Also disable mlir-* checks in the cmake
|
||||
sed -i '/_IMPORT_CHECK_TARGETS \(mlir-\|MLIR\)/ {s|^|#|}' $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/llvm/LLVMExports-*.cmake
|
||||
sed -i '/_IMPORT_CHECK_TARGETS tblgen-lsp-server/ {s|^|#|}' $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/llvm/LLVMExports-*.cmake
|
||||
sed -i '/_IMPORT_CHECK_TARGETS mlir-tblgen/ {s|^|#|}' $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/llvm/LLVMExports-*.cmake
|
||||
sed -i '/_IMPORT_CHECK_FILES_FOR_\(mlir\|tblgen-lsp-server\|llvm-bat-dump\|llvm-bolt\|merge-fdata\|MLIR\)/ {s|^|#|}' $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/llvm/LLVMExports-*.cmake
|
||||
sed -i '/_cmake_import_check_files_for_\(mlir\|tblgen-lsp-server\|llvm-bat-dump\|llvm-bolt\|merge-fdata\|MLIR\)/ {s|^|#|}' $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/llvm/LLVMExports-*.cmake
|
||||
|
||||
sed -i '/_cmake_import_check_files_for_.*\/bin\/.*/ {s|^|#|}' $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/llvm/LLVMExports-*.cmake $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/clang/ClangTargets-*.cmake
|
||||
sed -i '/_IMPORT_CHECK_FILES_FOR_.*\/bin\/.*/ {s|^|#|}' $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/llvm/LLVMExports-*.cmake $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/clang/ClangTargets-*.cmake
|
||||
sed -i '/_IMPORT_CHECK_FILES_FOR_\(mlir-\|Polly\|MLIR\)/ {s|^|#|}' $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/llvm/LLVMExports-*.cmake $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/clang/ClangTargets-*.cmake
|
||||
sed -i '/_cmake_import_check_files_for_\(mlir\|Polly\|MLIR\)/ {s|^|#|}' $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/llvm/LLVMExports-*.cmake $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/clang/ClangTargets-*.cmake
|
||||
|
||||
# Disable CMake's package validation checks for binaries that may not be installed
|
||||
sed -i 's|.*_IMPORT_CHECK_FILES_FOR_.*/bin/.*)|#&|' $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/clang/ClangTargets-*.cmake
|
||||
@ -1101,7 +1111,16 @@ endif
|
||||
endif
|
||||
dh_install --fail-missing
|
||||
|
||||
override_dh_installdeb:
|
||||
|
||||
repack_a_llvm_ir:
|
||||
ifeq (${LTO_ENABLE},yes)
|
||||
# with LTO, .a contains llvm ir instead of native code. So, recompile them
|
||||
NJOBS="$(NJOBS)" P_TO_LLVM="$(CURDIR)" VERSION=$(LLVM_VERSION) bash -v debian/llvm-compile-lto-elf.sh $(CXXFLAGS_EXTRA)
|
||||
endif
|
||||
touch $@
|
||||
|
||||
|
||||
override_dh_installdeb: repack_a_llvm_ir
|
||||
# Managed by the package
|
||||
dh_installdeb -a
|
||||
|
||||
@ -1159,10 +1178,8 @@ ifeq (,$(filter $(DEB_HOST_ARCH), i386))
|
||||
ninja $(VERBOSE) -C $(TARGET_BUILD_STAGE2) check-mlir || true
|
||||
endif
|
||||
|
||||
ifeq ($(LLVM_SPIRV_INSTALLED),yes)
|
||||
# Libclc
|
||||
ninja $(VERBOSE) -C libclc/build test || true
|
||||
endif
|
||||
|
||||
# LLDB tests
|
||||
ifeq (,$(filter $(DEB_HOST_ARCH), $(LLDB_DISABLE_ARCHS) armhf armel))
|
||||
@ -1210,7 +1227,7 @@ override_dh_gencontrol:
|
||||
|
||||
|
||||
override_dh_auto_clean:
|
||||
rm -rf $(TARGET_BUILD) tools/clang/include/clang/Debian/debian_path.h llvm/docs/_build/ clang/docs/_build tools/clang/docs/_html/
|
||||
rm -rf $(TARGET_BUILD) llvm/docs/_build/ clang/docs/_build tools/clang/docs/_html/
|
||||
# QA tools
|
||||
rm -rf cov-int/ reports/
|
||||
rm -f `ls debian/*.in|sed -e "s|.in$$||g"`
|
||||
|
Loading…
Reference in New Issue
Block a user