Merge remote-tracking branch 'origin/15' into snapshot

This commit is contained in:
Sylvestre Ledru 2022-11-11 15:00:11 +01:00
commit 92684f54f5
17 changed files with 240 additions and 158 deletions

92
debian/changelog vendored
View File

@ -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
View File

@ -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,

View File

@ -1,2 +1,2 @@
usr/lib/clc/*.bc
usr/lib/clc/*.spv
#spv usr/lib/clc/*.spv

View File

@ -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

View File

@ -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()) {

View File

@ -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
View 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
View 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"

View 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

View File

@ -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
View File

@ -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

View File

@ -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
View File

@ -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"`