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

This commit is contained in:
Sylvestre Ledru 2024-01-24 13:41:52 +01:00
commit aeffa1783e
9 changed files with 140 additions and 3849 deletions

43
debian/changelog vendored
View File

@ -103,6 +103,49 @@ llvm-toolchain-snapshot (1:18~++20230725115106+b6847edfc235-1~exp1) experimental
-- Sylvestre Ledru <sylvestre@debian.org> Tue, 25 Jul 2023 23:52:42 +0200
llvm-toolchain-17 (1:17.0.6-6) UNRELEASED; urgency=medium
[ chenli ]
* Enable flang on loong64
[ Sylvestre Ledru ]
* try to enable sccache on 'my' s390x machines
-- Sylvestre Ledru <sylvestre@debian.org> Wed, 24 Jan 2024 13:29:35 +0100
llvm-toolchain-17 (1:17.0.6-5) unstable; urgency=medium
[ Faidon Liambotis ]
* Revert "Enable COMPILER_RT_BUILD_BUILTINS for armel"
* Fix i386 FTBFS resulting from COMPILER_RT_DEFAULT_TARGET_ONLY
(Closes: #1060440)
-- Sylvestre Ledru <sylvestre@debian.org> Thu, 11 Jan 2024 14:15:09 +0100
llvm-toolchain-17 (1:17.0.6-4) unstable; urgency=medium
* debian/qualify-clang.sh: remove the compiler-rt test of i386
use libclang-rt-17-dev:i386 instead
[ Matthias Klose ]
* libclang1-17: Remove the full version symlinks.
[ Faidon Liambotis ]
* Enable COMPILER_RT_DEFAULT_TARGET_ONLY for all archs
* Enable COMPILER_RT_BUILD_BUILTINS for armel
* Drop two unreferenced debian/patches
* Mark documentation packages as Multi-Arch: foreign
* Convert libclang-common-*-dev to Arch: all/M-A: foreign
-- Sylvestre Ledru <sylvestre@debian.org> Tue, 09 Jan 2024 13:03:56 +0100
llvm-toolchain-17 (1:17.0.6-3) unstable; urgency=medium
* Cherry pick the wasm fix from 16
(Closes: #1057838)
-- Sylvestre Ledru <sylvestre@debian.org> Fri, 15 Dec 2023 18:51:57 +0100
llvm-toolchain-17 (1:17.0.6-2) unstable; urgency=medium
[ Gianfranco Costamagna ]

View File

@ -61,7 +61,8 @@ usr/lib/llvm-@LLVM_VERSION@/libexec/analyze-cc
usr/lib/llvm-@LLVM_VERSION@/libexec/intercept-c++
usr/lib/llvm-@LLVM_VERSION@/libexec/intercept-cc
[!armel !armhf !ppc64el !hurd-any !s390x !powerpc !ppc64 !mipsel !mips64el !sparc64 !loong64] usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@/bin/hwasan_symbolize
# See compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake / HWASAN_SUPPORTED_ARCH
[amd64 arm64 riscv64] usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@/bin/hwasan_symbolize
clang/tools/scan-build-@LLVM_VERSION@ usr/share/clang/
clang/tools/scan-view-@LLVM_VERSION@ usr/share/clang/

28
debian/control vendored
View File

@ -43,7 +43,9 @@ Vcs-Browser: https://salsa.debian.org/pkg-llvm-team/llvm-toolchain/tree/snapshot
Package: clang-18
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, ${dep:devlibs},
${dep:devlibs-objc}, libclang-common-18-dev (= ${binary:Version}),
${dep:devlibs-objc},
libllvm18 (= ${binary:Version}),
libclang-common-18-dev (= ${source:Version}),
llvm-18-linker-tools (= ${binary:Version}),
libclang1-18 (= ${binary:Version}), libc6-dev, binutils
Provides: c-compiler, objc-compiler, c++-compiler
@ -91,7 +93,8 @@ Description: Tool to format C/C++/Obj-C code
Package: clang-tidy-18
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, python3,
libllvm18 (= ${binary:Version}), libclang-common-18-dev,
libllvm18 (= ${binary:Version}),
libclang-common-18-dev (= ${source:Version}),
clang-tools-18, python3-yaml
Description: clang-based C++ linter tool
Provide an extensible framework for diagnosing and fixing typical programming
@ -102,7 +105,8 @@ Description: clang-based C++ linter tool
Package: clangd-18
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends},
libclang-common-18-dev (= ${binary:Version})
libllvm18 (= ${binary:Version}),
libclang-common-18-dev (= ${source:Version}),
Description: Language server that provides IDE-like features to editors
clangd understands your C++ code and adds smart features to your editor:
- code completion
@ -115,6 +119,7 @@ Description: Language server that provides IDE-like features to editors
Package: clang-18-doc
Architecture: all
Multi-Arch: foreign
Section: doc
Depends: ${shlibs:Depends}, ${misc:Depends}, libjs-mathjax
Description: C, C++ and Objective-C compiler - Documentation
@ -153,7 +158,7 @@ Architecture: any
Section: libdevel
Depends: ${shlibs:Depends}, ${misc:Depends}, ${dep:devlibs},
${dep:devlibs-objc}, libclang1-18 (= ${binary:Version}),
libclang-common-18-dev (= ${binary:Version})
libclang-common-18-dev (= ${source:Version})
Description: Clang library - Development package
Clang project is a C, C++, Objective C and Objective C++ front-end
based on the LLVM compiler. Its goal is to offer a replacement to the
@ -166,9 +171,10 @@ Description: Clang library - Development package
libclang1-18.
Package: libclang-common-18-dev
Architecture: any
Architecture: all
Multi-Arch: foreign
Section: libdevel
Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm18 (= ${binary:Version})
Depends: ${shlibs:Depends}, ${misc:Depends},
Recommends: libclang-rt-18-dev (>= 1:16~++20230115053056+df5fc4504b86-1~exp1)
Description: Clang library - Common development package
Clang project is a C, C++, Objective C and Objective C++ front-end
@ -313,7 +319,8 @@ Description: Clang Python Bindings
This binding package provides access to the Clang compiler and libraries.
Package: clang-18-examples
Architecture: any
Architecture: all
Multi-Arch: foreign
Section: doc
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Clang examples
@ -469,6 +476,7 @@ Description: Modular compiler and toolchain technologies, OCaml bindings
Package: llvm-18-doc
Section: doc
Architecture: all
Multi-Arch: foreign
Depends: ${misc:Depends}, libjs-jquery, libjs-underscore
Description: Modular compiler and toolchain technologies, documentation
LLVM is a collection of libraries and tools that make it easy to build
@ -636,6 +644,7 @@ Description: LLVM OpenMP runtime
Package: libomp-18-doc
Section: doc
Architecture: all
Multi-Arch: foreign
Depends: ${shlibs:Depends}, ${misc:Depends}, libjs-jquery
Replaces: libiomp-x.y-doc
Breaks: libiomp-x.y-doc
@ -677,6 +686,7 @@ Section: libdevel
Architecture: any
Multi-Arch: same
Depends: libc++1-18 (= ${binary:Version}), ${misc:Depends},
libc++abi-18-dev (= ${binary:Version}),
libunwind-18-dev [amd64 arm64 armhf i386 loong64 ppc64el ppc64 riscv64]
Breaks: libc++-dev (<< 44), libc++abi-18-dev (<< 1:18~++20231211102647+75193b192ad9-1)
Provides: libc++-x.y-dev
@ -922,7 +932,7 @@ Description: Post-link optimizer
Package: flang-18
# no 32bit support
# https://github.com/llvm/llvm-project/issues/59845
Architecture: amd64 arm64 mips64el ppc64el kfreebsd-amd64 ppc64 sparc64 riscv64
Architecture: amd64 arm64 mips64el ppc64el kfreebsd-amd64 ppc64 sparc64 riscv64 loong64
Depends: ${shlibs:Depends}, ${misc:Depends}, ${dep:devlibs}, libflang-18-dev (= ${binary:Version}),
Provides: fortran-compiler, gfortran-mod-15
Description: Fortran compiler
@ -933,7 +943,7 @@ Description: Fortran compiler
of examples, some functionalities are still missing.
Package: libflang-18-dev
Architecture: amd64 arm64 mips64el ppc64el kfreebsd-amd64 ppc64 sparc64 riscv64
Architecture: amd64 arm64 mips64el ppc64el kfreebsd-amd64 ppc64 sparc64 riscv64 loong64
Section: libdevel
Depends: ${shlibs:Depends}, ${misc:Depends}, ${dep:devlibs},
Description: Flang library - Development package

28
debian/control.in vendored
View File

@ -43,7 +43,9 @@ Vcs-Browser: https://salsa.debian.org/pkg-llvm-team/llvm-toolchain/tree/@BRANCH_
Package: clang-@LLVM_VERSION@
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, ${dep:devlibs},
${dep:devlibs-objc}, libclang-common-@LLVM_VERSION@-dev (= ${binary:Version}),
${dep:devlibs-objc},
libllvm@LLVM_VERSION@ (= ${binary:Version}),
libclang-common-@LLVM_VERSION@-dev (= ${source:Version}),
llvm-@LLVM_VERSION@-linker-tools (= ${binary:Version}),
libclang1-@LLVM_VERSION@ (= ${binary:Version}), libc6-dev, binutils
Provides: c-compiler, objc-compiler, c++-compiler
@ -91,7 +93,8 @@ Description: Tool to format C/C++/Obj-C code
Package: clang-tidy-@LLVM_VERSION@
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, python3,
libllvm@LLVM_VERSION@ (= ${binary:Version}), libclang-common-@LLVM_VERSION@-dev,
libllvm@LLVM_VERSION@ (= ${binary:Version}),
libclang-common-@LLVM_VERSION@-dev (= ${source:Version}),
clang-tools-@LLVM_VERSION@, python3-yaml
Description: clang-based C++ linter tool
Provide an extensible framework for diagnosing and fixing typical programming
@ -102,7 +105,8 @@ Description: clang-based C++ linter tool
Package: clangd-@LLVM_VERSION@
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends},
libclang-common-@LLVM_VERSION@-dev (= ${binary:Version})
libllvm@LLVM_VERSION@ (= ${binary:Version}),
libclang-common-@LLVM_VERSION@-dev (= ${source:Version}),
Description: Language server that provides IDE-like features to editors
clangd understands your C++ code and adds smart features to your editor:
- code completion
@ -115,6 +119,7 @@ Description: Language server that provides IDE-like features to editors
Package: clang-@LLVM_VERSION@-doc
Architecture: all
Multi-Arch: foreign
Section: doc
Depends: ${shlibs:Depends}, ${misc:Depends}, libjs-mathjax
Description: C, C++ and Objective-C compiler - Documentation
@ -153,7 +158,7 @@ Architecture: any
Section: libdevel
Depends: ${shlibs:Depends}, ${misc:Depends}, ${dep:devlibs},
${dep:devlibs-objc}, libclang1-@LLVM_VERSION@ (= ${binary:Version}),
libclang-common-@LLVM_VERSION@-dev (= ${binary:Version})
libclang-common-@LLVM_VERSION@-dev (= ${source:Version})
Description: Clang library - Development package
Clang project is a C, C++, Objective C and Objective C++ front-end
based on the LLVM compiler. Its goal is to offer a replacement to the
@ -166,9 +171,10 @@ Description: Clang library - Development package
libclang1-@LLVM_VERSION@.
Package: libclang-common-@LLVM_VERSION@-dev
Architecture: any
Architecture: all
Multi-Arch: foreign
Section: libdevel
Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm@LLVM_VERSION@ (= ${binary:Version})
Depends: ${shlibs:Depends}, ${misc:Depends},
Recommends: libclang-rt-@LLVM_VERSION@-dev (>= 1:16~++20230115053056+df5fc4504b86-1~exp1)
Description: Clang library - Common development package
Clang project is a C, C++, Objective C and Objective C++ front-end
@ -313,7 +319,8 @@ Description: Clang Python Bindings
This binding package provides access to the Clang compiler and libraries.
Package: clang-@LLVM_VERSION@-examples
Architecture: any
Architecture: all
Multi-Arch: foreign
Section: doc
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Clang examples
@ -469,6 +476,7 @@ Description: Modular compiler and toolchain technologies, OCaml bindings
Package: llvm-@LLVM_VERSION@-doc
Section: doc
Architecture: all
Multi-Arch: foreign
Depends: ${misc:Depends}, libjs-jquery, libjs-underscore
Description: Modular compiler and toolchain technologies, documentation
LLVM is a collection of libraries and tools that make it easy to build
@ -636,6 +644,7 @@ Description: LLVM OpenMP runtime
Package: libomp-@LLVM_VERSION@-doc
Section: doc
Architecture: all
Multi-Arch: foreign
Depends: ${shlibs:Depends}, ${misc:Depends}, libjs-jquery
Replaces: libiomp-x.y-doc
Breaks: libiomp-x.y-doc
@ -677,6 +686,7 @@ Section: libdevel
Architecture: any
Multi-Arch: same
Depends: libc++1-@LLVM_VERSION@ (= ${binary:Version}), ${misc:Depends},
libc++abi-@LLVM_VERSION@-dev (= ${binary:Version}),
libunwind-@LLVM_VERSION@-dev [amd64 arm64 armhf i386 loong64 ppc64el ppc64 riscv64]
Breaks: libc++-dev (<< 44), libc++abi-@LLVM_VERSION@-dev (<< 1:18~++20231211102647+75193b192ad9-1)
Provides: libc++-x.y-dev
@ -922,7 +932,7 @@ Description: Post-link optimizer
Package: flang-@LLVM_VERSION@
# no 32bit support
# https://github.com/llvm/llvm-project/issues/59845
Architecture: amd64 arm64 mips64el ppc64el kfreebsd-amd64 ppc64 sparc64 riscv64
Architecture: amd64 arm64 mips64el ppc64el kfreebsd-amd64 ppc64 sparc64 riscv64 loong64
Depends: ${shlibs:Depends}, ${misc:Depends}, ${dep:devlibs}, libflang-@LLVM_VERSION@-dev (= ${binary:Version}),
Provides: fortran-compiler, gfortran-mod-15
Description: Fortran compiler
@ -933,7 +943,7 @@ Description: Fortran compiler
of examples, some functionalities are still missing.
Package: libflang-@LLVM_VERSION@-dev
Architecture: amd64 arm64 mips64el ppc64el kfreebsd-amd64 ppc64 sparc64 riscv64
Architecture: amd64 arm64 mips64el ppc64el kfreebsd-amd64 ppc64 sparc64 riscv64 loong64
Section: libdevel
Depends: ${shlibs:Depends}, ${misc:Depends}, ${dep:devlibs},
Description: Flang library - Development package

File diff suppressed because it is too large Load Diff

View File

@ -1,17 +0,0 @@
--- llvm-toolchain-12-12.0.1~+rc1.orig/compiler-rt/cmake/base-config-ix.cmake
+++ llvm-toolchain-12-12.0.1~+rc1/compiler-rt/cmake/base-config-ix.cmake
@@ -189,8 +189,12 @@ macro(test_targets)
elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "s390x")
test_target_arch(s390x "" "")
elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "sparc")
- test_target_arch(sparc "" "-m32")
- test_target_arch(sparcv9 "" "-m64")
+ if (CMAKE_SIZEOF_VOID_P EQUAL 4)
+ test_target_arch(sparc "" "-mcpu=v9" "-m32")
+ append("-latomic" CMAKE_LD_FLAGS)
+ else()
+ test_target_arch(sparcv9 "" "-m64")
+ endif()
elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "mipsel|mips64el")
# Gcc doesn't accept -m32/-m64 so we do the next best thing and use
# -mips32r2/-mips64r2. We don't use -mips1/-mips3 because we want to match

View File

@ -1,7 +1,7 @@
Index: llvm-toolchain-snapshot_17~++20230523093327+96a003b9bf79/clang/lib/Driver/ToolChains/WebAssembly.cpp
Index: llvm-toolchain-16-16.0.6/clang/lib/Driver/ToolChains/WebAssembly.cpp
===================================================================
--- llvm-toolchain-snapshot_17~++20230523093327+96a003b9bf79.orig/clang/lib/Driver/ToolChains/WebAssembly.cpp
+++ llvm-toolchain-snapshot_17~++20230523093327+96a003b9bf79/clang/lib/Driver/ToolChains/WebAssembly.cpp
--- llvm-toolchain-16-16.0.6.orig/clang/lib/Driver/ToolChains/WebAssembly.cpp
+++ llvm-toolchain-16-16.0.6/clang/lib/Driver/ToolChains/WebAssembly.cpp
@@ -174,7 +174,7 @@ WebAssembly::WebAssembly(const Driver &D
getProgramPaths().push_back(getDriver().getInstalledDir());
@ -19,7 +19,7 @@ Index: llvm-toolchain-snapshot_17~++20230523093327+96a003b9bf79/clang/lib/Driver
if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) {
SmallString<128> P(D.ResourceDir);
@@ -425,12 +426,29 @@ void WebAssembly::AddClangSystemIncludeA
@@ -425,12 +426,20 @@ void WebAssembly::AddClangSystemIncludeA
return;
}
@ -28,22 +28,12 @@ Index: llvm-toolchain-snapshot_17~++20230523093327+96a003b9bf79/clang/lib/Driver
const std::string MultiarchTriple =
- getMultiarchTriple(D, getTriple(), D.SysRoot);
- addSystemInclude(DriverArgs, CC1Args, D.SysRoot + "/include/" + MultiarchTriple);
- }
- addSystemInclude(DriverArgs, CC1Args, D.SysRoot + "/include");
+ getMultiarchTriple(D, getTriple(), SysRoot);
+ addSystemInclude(DriverArgs, CC1Args, SysRoot + "/local/include/" + MultiarchTriple);
+ addSystemInclude(DriverArgs, CC1Args, SysRoot + "/local/include");
+ addSystemInclude(DriverArgs, CC1Args, SysRoot + "/include/" + MultiarchTriple);
+ std::string LibPath = SysRoot + "/include";
+ std::string Version = detectLibcxxVersion(LibPath);
+
+ if (!getDriver().SysRoot.empty()) {
+ // Second add the generic one.
+ addSystemInclude(DriverArgs, CC1Args, LibPath + "/c++/" + Version);
+ // Third the backward one.
+ addSystemInclude(DriverArgs, CC1Args, LibPath + "/c++/" + Version + "/backward");
+ }
+ }
}
- addSystemInclude(DriverArgs, CC1Args, D.SysRoot + "/include");
+
+ // also add the non-multiarch path, only on a known OS (as above), or when
+ // a sysroot is given, for backwards compatibility with the original driver
@ -53,7 +43,7 @@ Index: llvm-toolchain-snapshot_17~++20230523093327+96a003b9bf79/clang/lib/Driver
}
void WebAssembly::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs,
@@ -481,6 +490,17 @@ Tool *WebAssembly::buildLinker() const {
@@ -478,6 +487,17 @@ Tool *WebAssembly::buildLinker() const {
return new tools::wasm::Linker(*this);
}
@ -71,18 +61,37 @@ Index: llvm-toolchain-snapshot_17~++20230523093327+96a003b9bf79/clang/lib/Driver
void WebAssembly::addLibCxxIncludePaths(
const llvm::opt::ArgList &DriverArgs,
llvm::opt::ArgStringList &CC1Args) const {
@@ -502,7 +522,9 @@ void WebAssembly::addLibCxxIncludePaths(
@@ -488,18 +508,22 @@ void WebAssembly::addLibCxxIncludePaths(
getMultiarchTriple(D, getTriple(), SysRoot);
bool IsKnownOs = (getTriple().getOS() != llvm::Triple::UnknownOS);
- std::string Version = detectLibcxxVersion(LibPath);
- if (Version.empty())
- return;
-
// First add the per-target include path if the OS is known.
if (IsKnownOs) {
- std::string TargetDir = LibPath + "/" + MultiarchTriple + "/c++/" + Version;
- addSystemInclude(DriverArgs, CC1Args, TargetDir);
+ std::string Version = detectLibcxxVersion(LibPath + "/" + MultiarchTriple);
+ if (!Version.empty()) {
+ std::string TargetDir = LibPath + "/" + MultiarchTriple + "/c++/" + Version;
+ addSystemInclude(DriverArgs, CC1Args, TargetDir);
+ }
}
// Second add the generic one.
- addSystemInclude(DriverArgs, CC1Args, LibPath + "/c++/" + Version);
+ // don't include the host architecture's headers in the search path
+ if (!getDriver().SysRoot.empty())
+ addSystemInclude(DriverArgs, CC1Args, LibPath + "/c++/" + Version);
+ if (!getDriver().SysRoot.empty()) {
+ std::string Version = detectLibcxxVersion(LibPath);
+ if (!Version.empty())
+ addSystemInclude(DriverArgs, CC1Args, LibPath + "/c++/" + Version);
+ }
}
void WebAssembly::addLibStdCXXIncludePaths(
@@ -549,8 +571,11 @@ void WebAssembly::addLibStdCXXIncludePat
@@ -546,8 +570,11 @@ void WebAssembly::addLibStdCXXIncludePat
addSystemInclude(DriverArgs, CC1Args, TargetDir);
}
@ -98,10 +107,10 @@ Index: llvm-toolchain-snapshot_17~++20230523093327+96a003b9bf79/clang/lib/Driver
+ addSystemInclude(DriverArgs, CC1Args, LibPath + "/c++/" + Version + "/backward");
+ }
}
Index: llvm-toolchain-snapshot_17~++20230523093327+96a003b9bf79/clang/lib/Driver/ToolChains/WebAssembly.h
Index: llvm-toolchain-16-16.0.6/clang/lib/Driver/ToolChains/WebAssembly.h
===================================================================
--- llvm-toolchain-snapshot_17~++20230523093327+96a003b9bf79.orig/clang/lib/Driver/ToolChains/WebAssembly.h
+++ llvm-toolchain-snapshot_17~++20230523093327+96a003b9bf79/clang/lib/Driver/ToolChains/WebAssembly.h
--- llvm-toolchain-16-16.0.6.orig/clang/lib/Driver/ToolChains/WebAssembly.h
+++ llvm-toolchain-16-16.0.6/clang/lib/Driver/ToolChains/WebAssembly.h
@@ -89,6 +89,8 @@ private:
llvm::opt::ArgStringList &CC1Args) const;
void addLibStdCXXIncludePaths(const llvm::opt::ArgList &DriverArgs,

View File

@ -9,7 +9,7 @@ VERSION=$(dpkg-parsechangelog | sed -rne "s,^Version: 1:([0-9]+).*,\1,p")
DETAILED_VERSION=$(dpkg-parsechangelog | sed -rne "s,^Version: 1:([0-9.]+)(~|-)(.*),\1\2\3,p")
DEB_HOST_ARCH=$(dpkg-architecture -qDEB_HOST_ARCH)
LIST="libomp5-${VERSION}_${DETAILED_VERSION}_amd64.deb libomp-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb lldb-${VERSION}_${DETAILED_VERSION}_amd64.deb python3-lldb-${VERSION}_${DETAILED_VERSION}_amd64.deb python3-clang-${VERSION}_${DETAILED_VERSION}_amd64.deb libllvm${VERSION}_${DETAILED_VERSION}_amd64.deb llvm-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb liblldb-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb libclang1-${VERSION}_${DETAILED_VERSION}_amd64.deb libclang-common-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb llvm-${VERSION}_${DETAILED_VERSION}_amd64.deb liblldb-${VERSION}_${DETAILED_VERSION}_amd64.deb llvm-${VERSION}-runtime_${DETAILED_VERSION}_amd64.deb lld-${VERSION}_${DETAILED_VERSION}_amd64.deb libfuzzer-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb libclang-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb libc++-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb libc++abi-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb libc++1-${VERSION}_${DETAILED_VERSION}_amd64.deb libc++abi1-${VERSION}_${DETAILED_VERSION}_amd64.deb clang-${VERSION}_${DETAILED_VERSION}_amd64.deb llvm-${VERSION}-tools_${DETAILED_VERSION}_amd64.deb clang-tools-${VERSION}_${DETAILED_VERSION}_amd64.deb clangd-${VERSION}_${DETAILED_VERSION}_amd64.deb libclang-cpp${VERSION}_${DETAILED_VERSION}_amd64.deb clang-tidy-${VERSION}_${DETAILED_VERSION}_amd64.deb libclang-cpp${VERSION}-dev_${DETAILED_VERSION}_amd64.deb libclc-${VERSION}_${DETAILED_VERSION}_all.deb libclc-${VERSION}-dev_${DETAILED_VERSION}_all.deb llvm-${VERSION}-linker-tools_${DETAILED_VERSION}_amd64.deb libunwind-${VERSION}_${DETAILED_VERSION}_amd64.deb libunwind-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb libmlir-${VERSION}_${DETAILED_VERSION}_amd64.deb libmlir-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb libclang-rt-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb libclang-rt-${VERSION}-dev-wasm32_${DETAILED_VERSION}_all.deb libclang-rt-${VERSION}-dev-wasm64_${DETAILED_VERSION}_all.deb libc++abi-${VERSION}-dev-wasm32_${DETAILED_VERSION}_all.deb libc++-${VERSION}-dev-wasm32_${DETAILED_VERSION}_all.deb libpolly-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb bolt-${VERSION}_${DETAILED_VERSION}_amd64.deb libbolt-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb flang-${VERSION}_${DETAILED_VERSION}_amd64.deb libflang-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb"
LIST="libomp5-${VERSION}_${DETAILED_VERSION}_amd64.deb libomp-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb lldb-${VERSION}_${DETAILED_VERSION}_amd64.deb python3-lldb-${VERSION}_${DETAILED_VERSION}_amd64.deb python3-clang-${VERSION}_${DETAILED_VERSION}_amd64.deb libllvm${VERSION}_${DETAILED_VERSION}_amd64.deb llvm-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb liblldb-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb libclang1-${VERSION}_${DETAILED_VERSION}_amd64.deb libclang-common-${VERSION}-dev_${DETAILED_VERSION}_all.deb llvm-${VERSION}_${DETAILED_VERSION}_amd64.deb liblldb-${VERSION}_${DETAILED_VERSION}_amd64.deb llvm-${VERSION}-runtime_${DETAILED_VERSION}_amd64.deb lld-${VERSION}_${DETAILED_VERSION}_amd64.deb libfuzzer-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb libclang-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb libc++-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb libc++abi-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb libc++1-${VERSION}_${DETAILED_VERSION}_amd64.deb libc++abi1-${VERSION}_${DETAILED_VERSION}_amd64.deb clang-${VERSION}_${DETAILED_VERSION}_amd64.deb llvm-${VERSION}-tools_${DETAILED_VERSION}_amd64.deb clang-tools-${VERSION}_${DETAILED_VERSION}_amd64.deb clangd-${VERSION}_${DETAILED_VERSION}_amd64.deb libclang-cpp${VERSION}_${DETAILED_VERSION}_amd64.deb clang-tidy-${VERSION}_${DETAILED_VERSION}_amd64.deb libclang-cpp${VERSION}-dev_${DETAILED_VERSION}_amd64.deb libclc-${VERSION}_${DETAILED_VERSION}_all.deb libclc-${VERSION}-dev_${DETAILED_VERSION}_all.deb llvm-${VERSION}-linker-tools_${DETAILED_VERSION}_amd64.deb libunwind-${VERSION}_${DETAILED_VERSION}_amd64.deb libunwind-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb libmlir-${VERSION}_${DETAILED_VERSION}_amd64.deb libmlir-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb libclang-rt-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb libclang-rt-${VERSION}-dev-wasm32_${DETAILED_VERSION}_all.deb libclang-rt-${VERSION}-dev-wasm64_${DETAILED_VERSION}_all.deb libc++abi-${VERSION}-dev-wasm32_${DETAILED_VERSION}_all.deb libc++-${VERSION}-dev-wasm32_${DETAILED_VERSION}_all.deb libpolly-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb bolt-${VERSION}_${DETAILED_VERSION}_amd64.deb libbolt-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb flang-${VERSION}_${DETAILED_VERSION}_amd64.deb libflang-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb"
echo "To install everything:"
echo "sudo apt --purge remove 'libomp5-*' 'libc++*dev' 'libc++*' 'python3-lldb-*' 'libunwind-*' 'libclc-*' 'libclc-*dev' 'libmlir-*'"
@ -1655,7 +1655,8 @@ fi
echo "if it fails, please run"
echo "apt-get install libc6-dev:i386 libgcc-5-dev:i386 libc6-dev-x32 libx32gcc-5-dev libx32gcc-9-dev"
for SYSTEM in ""; do
for MARCH in -m64 -m32 -mx32 "-m32 -march=i686"; do
# add "-m32 -march=i686" -m32 -mx32 to test multiarch with i386
for MARCH in -m64; do
for LIB in --rtlib=compiler-rt -fsanitize=address -fsanitize=thread -fsanitize=memory -fsanitize=undefined -fsanitize=dataflow; do # -fsanitize=efficiency-working-set; do
if test "$MARCH" == "-m32" -o "$MARCH" == "-mx32"; then
if test $LIB == "-fsanitize=thread" -o $LIB == "-fsanitize=memory" -o $LIB == "-fsanitize=dataflow" -o $LIB == "-fsanitize=address" -o $LIB == "-fsanitize=undefined"; then

46
debian/rules vendored
View File

@ -173,7 +173,6 @@ export CXX=g++-$(GCC_VERSION)
ifneq (,$(findstring $(DEB_HOST_ARCH),armel))
STAGE_ALL_CMAKE_EXTRA += -DLLVM_HOST_TRIPLE=arm-linux-gnueabi
STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
# align arch profile with debian baseline
# https://wiki.debian.org/ArmEabiPort
CFLAGS_EXTRA += -march=armv5t
@ -189,7 +188,6 @@ endif
ifneq (,$(findstring $(DEB_HOST_ARCH),armhf))
STAGE_ALL_CMAKE_EXTRA += -DLLVM_HOST_TRIPLE=arm-linux-gnueabihf
STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
# align arch profile with debian baseline
# https://wiki.debian.org/ArmHardFloatPort#Minimum_CPU_.26_FPU
CFLAGS_EXTRA += -march=armv7-a -mfpu=vfpv3-d16
@ -210,7 +208,6 @@ endif
ifneq (,$(filter $(DEB_HOST_ARCH),powerpc))
STAGE_ALL_CMAKE_EXTRA += -DLLVM_HOST_TRIPLE=powerpc-linux-gnu
STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
endif
# debug symbols OOM in Ubuntu Ubuntu and slows down build process.
@ -222,19 +219,16 @@ endif
ifneq (,$(filter $(DEB_HOST_ARCH),sparc))
STAGE_ALL_CMAKE_EXTRA += -DLLVM_HOST_TRIPLE=sparc-linux-gnu
STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
STAGE_ALL_CMAKE_EXTRA += -DLLVM_PARALLEL_LINK_JOBS=4
endif
ifneq (,$(filter $(DEB_HOST_ARCH),sparc64))
STAGE_ALL_CMAKE_EXTRA += -DLLVM_HOST_TRIPLE=sparc64-linux-gnu
STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
STAGE_ALL_CMAKE_EXTRA += -DLLVM_PARALLEL_LINK_JOBS=4
endif
ifneq (,$(filter $(DEB_HOST_ARCH),s390x))
STAGE_ALL_CMAKE_EXTRA += -DLLVM_HOST_TRIPLE=s390x-linux-gnu
STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
LIBCXX_EXCEPTIONS := OFF
# disable compiler-rt builtins (not supported for s390x)
STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_BUILD_BUILTINS=OFF
@ -243,7 +237,6 @@ ifneq (,$(filter $(DEB_HOST_ARCH),s390x))
endif
ifneq (,$(filter $(DEB_HOST_ARCH),mips64el))
STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_BUILD_BUILTINS=OFF
COMPILER_RT_USE_BUILTINS_LIBRARY := OFF
LIBCXX_USE_COMPILER_RT := OFF
@ -258,7 +251,6 @@ ifneq (,$(filter $(DEB_HOST_ARCH),x32))
endif
ifneq (,$(filter $(DEB_HOST_ARCH),hurd-i386))
STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
endif
ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' g++-$(GCC_VERSION)) ge 4.8-20121128-1~ ; echo $$?),0)
@ -522,6 +514,20 @@ 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
SCCACHE_CMAKE =
# if sccache is installed in the chroot, use it
ifeq ($(shell test -e /opt/sccache/sccache && echo -n yes),yes)
ifneq (,$(filter $(DEB_HOST_ARCH),i386 amd64 s390x))
STAGE_1_CMAKE_EXTRA += $(SCCACHE_CMAKE)
SCCACHE_ENABLE=yes
SCCACHE_PATH=/opt/sccache/
SCCACHE_CMD=$(SCCACHE_PATH)/sccache
SCCACHE_CMAKE = -DCMAKE_C_COMPILER_LAUNCHER=$(SCCACHE_CMD) -DCMAKE_CXX_COMPILER_LAUNCHER=$(SCCACHE_CMD)
export LD_LIBRARY_PATH=$$LD_LIBRARY_PATH:/opt/sccache
endif
endif
COVERITY_ENABLE=0
ifneq (,$(filter coverity,$(DEB_BUILD_OPTIONS)))
# enable the build using coverity
@ -539,21 +545,6 @@ ifneq (,$(filter coverity,$(DEB_BUILD_OPTIONS)))
RUN_TEST=no
endif
SCCACHE_ENABLE=no
SCCACHE_CMAKE =
# if sccache is installed in the chroot, use it
ifeq ($(shell test -e /opt/sccache/sccache && echo -n yes),yes)
ifneq (,$(filter $(DEB_HOST_ARCH),i386 amd64))
ifeq ($(COVERITY_ENABLE),0) # Only enable SCCache if Coverity is not enabled
STAGE_1_CMAKE_EXTRA += $(SCCACHE_CMAKE)
SCCACHE_ENABLE=yes
SCCACHE_PATH=/opt/sccache/
SCCACHE_CMD=$(SCCACHE_PATH)/sccache
SCCACHE_CMAKE = -DCMAKE_C_COMPILER_LAUNCHER=$(SCCACHE_CMD) -DCMAKE_CXX_COMPILER_LAUNCHER=$(SCCACHE_CMD)
export LD_LIBRARY_PATH=$$LD_LIBRARY_PATH:/opt/sccache
endif
endif
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
@ -729,8 +720,13 @@ endif
ifeq (${SCCACHE_ENABLE},yes)
# Just in case...
$(SCCACHE_CMD) --stop-server||true
ifneq (,$(filter $(DEB_HOST_ARCH),i386 amd64))
# Start the sccache server with the right set of options to use GCP
SCCACHE_LOG=sccache=debug SCCACHE_ERROR_LOG=$(SCCACHE_PATH)/sccache.log SCCACHE_GCS_KEY_PATH=$(SCCACHE_PATH)/secret-gcp-storage.json SCCACHE_GCS_BUCKET=apt-llvm-org-sccache SCCACHE_GCS_RW_MODE=READ_WRITE $(SCCACHE_CMD) --start-server
SCCACHE_LOG=sccache=debug SCCACHE_ERROR_LOG=$(SCCACHE_PATH)/sccache.log SCCACHE_GCS_KEY_PATH=$(SCCACHE_PATH)/secret-gcp-storage.json SCCACHE_GCS_BUCKET=apt-llvm-org-sccache SCCACHE_GCS_RW_MODE=READ_WRITE $(SCCACHE_CMD) --start-server
else
# on s390x machine, use a local cache
SCCACHE_LOG=sccache=debug SCCACHE_ERROR_LOG=$(SCCACHE_PATH)/sccache.log SCCACHE_DIR=/opt/sccache/cache/ SCCACHE_DIRECT=true $(SCCACHE_CMD) --start-server
endif
endif
echo "Running tests: $(RUN_TEST)"
echo "Using cmake: $(CMAKE_BIN)"; \
@ -787,7 +783,7 @@ endif
-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" \
-DCLANG_ENABLE_BOOTSTRAP=ON \
-DCLANG_BOOTSTRAP_TARGETS="$(ENABLED_STAGE2_CMAKE_BUILD_TARGETS)" \
-DCLANG_BOOTSTRAP_PASSTHROUGH="CMAKE_INSTALL_PREFIX;CMAKE_SUPPRESS_REGENERATION;ENABLE_LINKER_BUILD_ID;LLVM_ENABLE_PIC;LLVM_ENABLE_RTTI;LLVM_INCLUDE_GO_TESTS;LLVM_USE_RELATIVE_PATHS_IN_FILES;CLANG_DEFAULT_LINKER;CLANG_DEFAULT_CXX_STDLIB;CLANG_DEFAULT_RTLIB;COMPILER_RT_USE_LIBCXX;COMPILER_RT_USE_BUILTINS_LIBRARY;COMPILER_RT_INCLUDE_TESTS;LIBUNWIND_USE_COMPILER_RT;LIBCXXABI_ENABLE_EXCEPTIONS;LIBCXXABI_USE_COMPILER_RT;LIBCXX_USE_COMPILER_RT;LIBCXX_ENABLE_EXCEPTIONS;LIBCXX_ENABLE_STATIC_ABI_LIBRARY;LIBCXX_STATICALLY_LINK_ABI_IN_STATIC_LIBRARY;LIBCXX_STATICALLY_LINK_ABI_IN_SHARED_LIBRARY;LIBOMP_ENABLE_RTTI;LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN;CLANG_FORCE_MATCHING_LIBCLANG_SOVERSION;CMAKE_C_COMPILER_LAUNCHER;CMAKE_CXX_COMPILER_LAUNCHER" \
-DCLANG_BOOTSTRAP_PASSTHROUGH="CMAKE_INSTALL_PREFIX;CMAKE_SUPPRESS_REGENERATION;ENABLE_LINKER_BUILD_ID;LLVM_ENABLE_PIC;LLVM_ENABLE_RTTI;LLVM_INCLUDE_GO_TESTS;LLVM_USE_RELATIVE_PATHS_IN_FILES;CLANG_DEFAULT_LINKER;CLANG_DEFAULT_CXX_STDLIB;CLANG_DEFAULT_RTLIB;COMPILER_RT_USE_LIBCXX;COMPILER_RT_USE_BUILTINS_LIBRARY;COMPILER_RT_DEFAULT_TARGET_ONLY;COMPILER_RT_INCLUDE_TESTS;LIBUNWIND_USE_COMPILER_RT;LIBCXXABI_ENABLE_EXCEPTIONS;LIBCXXABI_USE_COMPILER_RT;LIBCXX_USE_COMPILER_RT;LIBCXX_ENABLE_EXCEPTIONS;LIBCXX_ENABLE_STATIC_ABI_LIBRARY;LIBCXX_STATICALLY_LINK_ABI_IN_STATIC_LIBRARY;LIBCXX_STATICALLY_LINK_ABI_IN_SHARED_LIBRARY;LIBOMP_ENABLE_RTTI;LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN;CLANG_FORCE_MATCHING_LIBCLANG_SOVERSION;CMAKE_C_COMPILER_LAUNCHER;CMAKE_CXX_COMPILER_LAUNCHER" \
-DBOOTSTRAP_CMAKE_BUILD_TYPE=RelWithDebInfo \
-DBOOTSTRAP_CMAKE_C_FLAGS_RELWITHDEBINFO="$(opt_flags)" \
-DBOOTSTRAP_CMAKE_CXX_FLAGS_RELWITHDEBINFO="$(opt_flags)" \