diff --git a/debian/README b/debian/README index 9065b72a..7e86a204 100644 --- a/debian/README +++ b/debian/README @@ -9,7 +9,7 @@ The current snapshot release is maintained in the "snapshot" branch. The easiest way to get all branches is probably to have one clone per version: -for f in 8 9 snapshot; do +for f in 8 9 10 snapshot; do git clone git@salsa.debian.org:pkg-llvm-team/llvm-toolchain.git -b $f $f done @@ -57,7 +57,7 @@ branch at https://github.com/llvm/llvm-project/branches you should use, - $ sh 9/debian/orig-tar.sh release/9.x + $ sh 10/debian/orig-tar.sh release/10.x To retrieve a specific release candidate, you can pass the branch name as the first argument, and the tag rc number as the second argument. For example, to @@ -65,11 +65,11 @@ get the 9.0.1 release candidate rc3 at https://github.com/llvm/llvm-project/tags you should use, - $ sh 9/debian/orig-tar.sh 9.0.1 rc3 + $ sh 10/debian/orig-tar.sh 10.0.1 rc3 For a stable release, the syntax is: - $ sh 9/debian/orig-tar.sh 9.0.0 + $ sh 10/debian/orig-tar.sh 10.0.0 Additional maintainer scripts diff --git a/debian/changelog b/debian/changelog index 882e9cfb..680764e3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,11 +1,43 @@ -llvm-toolchain-10 (1:10~++20200104105135+2306f43ccb4-1~exp1) experimental; urgency=medium +llvm-toolchain-10 (1:10.0.0~+rc1-1~exp2) experimental; urgency=medium + + [ Sylvestre Ledru ] + * Do not try to install hwasan_symbolize on armhf ppc64el + as it isn't built + + [ Samuel Thibault ] + * hurd/hurd-cxx-paths.diff: Fix patch so it can be applied. + * clang-tools-X.Y.install.in: Do not try to install hwasan_symbolize on + hurd-any. + + -- Sylvestre Ledru Thu, 06 Feb 2020 10:37:39 +0100 + +llvm-toolchain-10 (1:10.0.0~+rc1-1~exp1) experimental; urgency=medium + + [ Gianfranco Costamagna ] + * fix lldb-10 -P path print (Closes: #945445) + * Fix lldb python installation path and symlinks + * Drop version constraint from libffi-dev library, satisfied since + old-old-stable + + [ Sylvestre Ledru ] + * First RC release + * For now, disable ThinLTO usage because: + - LLVM_ENABLE_LTO doesn't work with gcc >= 9 (option not accepted) + - BOOTSTRAP_LLVM_ENABLE_LTO is producing some large binary + (uses llvm ir instead of binary code) + See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=943623 + * Thanks to this previous change, don't hardcode gcc 8 + + -- Sylvestre Ledru Mon, 03 Feb 2020 10:30:50 +0100 + +llvm-toolchain-10 (1:10~++20200121023453+de4b2a7fad6-1~exp1) experimental; urgency=medium * Branch llvm-toolchain-10 into its own branch * Merge recent 9 changes (python 3 and testsuite mostly) - -- Sylvestre Ledru Sat, 04 Jan 2020 10:56:15 +0100 + -- Sylvestre Ledru Tue, 21 Jan 2020 14:38:02 +0100 -llvm-toolchain-snapshot (1:10~++20191229111838+6991d5728f1-1~exp1) experimental; urgency=medium +llvm-toolchain-snapshot (1:10~+20191229111838+6991d5728f1-1~exp1) experimental; urgency=medium * experimental New snapshot release * Add a '+' in the version (as the old upload is high than the one without) @@ -155,6 +187,20 @@ llvm-toolchain-snapshot (1:10~svn366440-1~exp1) experimental; urgency=medium -- Sylvestre Ledru Thu, 18 Jul 2019 18:58:32 +0200 +llvm-toolchain-9 (1:9.0.1-8) unstable; urgency=medium + + * Add two new python autopkgtests to avoid regressions in the future + + -- Gianfranco Costamagna Thu, 23 Jan 2020 10:08:27 +0100 + +llvm-toolchain-9 (1:9.0.1-7) unstable; urgency=medium + + * Add dependency on libclang-cpp-9 from llvm-9-dev (Closes: #946761) + * fix lldb-9 -P path print (Closes: #945445) + * Fix lldb python installation path and symlinks + + -- Gianfranco Costamagna Tue, 21 Jan 2020 13:05:06 +0100 + llvm-toolchain-9 (1:9.0.1-6) unstable; urgency=medium * Team upload. @@ -304,7 +350,7 @@ llvm-toolchain-9 (1:9.0.0-3~exp2) experimental; urgency=medium Disable fuzzer only for i386 * Use stage2 files to build the doc. For some reasons, clang-tools-extra html generation stopped working - * Disable z3 when the version is tool old + * Disable z3 when the version is too old -- Sylvestre Ledru Thu, 31 Oct 2019 00:29:09 +0100 diff --git a/debian/clang-tools-X.Y.install.in b/debian/clang-tools-X.Y.install.in index 7a3c02d1..cfe2bd15 100644 --- a/debian/clang-tools-X.Y.install.in +++ b/debian/clang-tools-X.Y.install.in @@ -31,7 +31,7 @@ usr/lib/llvm-@LLVM_VERSION@/bin/pp-trace usr/lib/llvm-@LLVM_VERSION@/bin/clang-move usr/lib/llvm-@LLVM_VERSION@/bin/clang-offload-wrapper -usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/bin/hwasan_symbolize +[!armhf !ppc64el !hurd-any] usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/bin/hwasan_symbolize clang/tools/scan-build-@LLVM_VERSION@ usr/share/clang/ clang/tools/scan-build-py-@LLVM_VERSION@ usr/share/clang/ diff --git a/debian/control b/debian/control index 9be2658b..aa197230 100644 --- a/debian/control +++ b/debian/control @@ -3,9 +3,9 @@ Section: devel Priority: optional Rules-Requires-Root: no Maintainer: LLVM Packaging Team -Uploaders: Sylvestre Ledru +Uploaders: Sylvestre Ledru , Gianfranco Costamagna Build-Depends: debhelper (>= 9.0), cmake, chrpath, texinfo, sharutils, - libffi-dev (>= 3.0.9), + libffi-dev, lsb-release, patchutils, diffstat, xz-utils, python3-dev, libedit-dev, libncurses5-dev, swig, python3-six, python3-sphinx (>= 1.3.6), binutils-dev, @@ -19,7 +19,6 @@ Build-Depends: debhelper (>= 9.0), cmake, chrpath, texinfo, sharutils, libctypes-ocaml-dev [amd64 arm64 armhf i386 ppc64el s390x], dh-exec, dh-ocaml [amd64 arm64 armhf i386 ppc64el s390x], libpfm4-dev [linux-any], python3-setuptools, libz3-dev, - g++-8 | g++-7 | g++-6 | g++-5 | g++-4.7 Build-Conflicts: oprofile, ocaml Standards-Version: 4.2.1 Homepage: https://www.llvm.org/ @@ -166,13 +165,6 @@ Description: Clang library - Common development package This package contains the Clang generic headers and some libraries (profiling, etc). -Package: libclang-cpp1-10 -Depends: libclang-cpp10, ${misc:Depends} -Architecture: all -Section: oldlibs -Description: transitional package - This is a transitional package. It can safely be removed. - Package: libclang-cpp10 Section: libs Architecture: any @@ -236,14 +228,6 @@ Description: Clang Python Bindings . This binding package provides access to the Clang compiler and libraries. -Package: python-clang-10 -Depends: python3-clang-10, ${misc:Depends} -Architecture: any -Priority: optional -Section: oldlibs -Description: transitional package to python3-clang-10 - This is a transitional package. It can safely be removed. - Package: clang-10-examples Architecture: any @@ -323,9 +307,9 @@ Description: Modular compiler and toolchain technologies, IR interpreter Package: llvm-10-dev Architecture: any -Depends: ${shlibs:Depends}, libffi-dev (>= 3.0.10), ${misc:Depends}, +Depends: ${shlibs:Depends}, libffi-dev, ${misc:Depends}, llvm-10 (= ${binary:Version}), libllvm10 (= ${binary:Version}), libtinfo-dev, - llvm-10-tools (= ${binary:Version}), libz3-dev + llvm-10-tools (= ${binary:Version}), libclang-cpp10 (= ${binary:Version}), libz3-dev Description: Modular compiler and toolchain technologies, libraries and headers LLVM is a collection of libraries and tools that make it easy to build compilers, optimizers, just-in-time code generators, and many other @@ -430,7 +414,7 @@ Description: Modular compiler and toolchain technologies, examples # ------------- lld ------------- Package: lld-10 -Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m610k powerpcspe ppc64 sh4 sparc64 x32 +Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 # ia64 hurd powerpc have been removed Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm10 (= ${binary:Version}) Pre-Depends: ${misc:Pre-Depends} @@ -440,7 +424,7 @@ Description: LLVM-based linker Project. Package: liblld-10 -Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m610k powerpcspe ppc64 sh4 sparc64 x32 +Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 # ia64 hurd powerpc have been removed Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm10 (= ${binary:Version}) Pre-Depends: ${misc:Pre-Depends} @@ -454,7 +438,7 @@ Description: LLVM-based linker, library Package: liblld-10-dev Section: libdevel -Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m610k powerpcspe ppc64 sh4 sparc64 x32 +Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 # ia64 hurd powerpc have been removed Depends: ${shlibs:Depends}, ${misc:Depends}, lld-10 (= ${binary:Version}), liblld-10 (= ${binary:Version}) @@ -470,7 +454,7 @@ Description: LLVM-based linker, header files # ------------- lldb ------------- Package: lldb-10 -Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 s390x sparc hppa m610k sh4 x32 +Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 s390x sparc hppa m68k sh4 x32 # ia64 hurd powerpc powerpcspe ppc64 alpha s390x sparc64 have been removed Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm10 (= ${binary:Version}), llvm-10-dev, python3-lldb-10 @@ -481,7 +465,7 @@ Description: Next generation, high-performance debugger Project, such as the Clang expression parser and LLVM disassembler. Package: liblldb-10 -Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 s390x sparc hppa m610k sh4 x32 +Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 s390x sparc hppa m68k sh4 x32 # ia64 hurd powerpc powerpcspe ppc64 alpha s390x sparc64 have been removed Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm10 (= ${binary:Version}) Pre-Depends: ${misc:Pre-Depends} @@ -495,9 +479,9 @@ Description: Next generation, high-performance debugger, library Package: python3-lldb-10 Section: python -Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 s390x sparc hppa m610k sh4 x32 +Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 s390x sparc hppa m68k sh4 x32 # ia64 hurd powerpc powerpcspe ppc64 alpha s390x sparc64 have been removed -Depends: ${shlibs:Depends}, ${misc:Depends}, ${python3:Depends}, python3-six +Depends: ${shlibs:Depends}, ${misc:Depends}, ${python3:Depends}, liblldb-10 (= ${binary:Version}), python3-six Conflicts: python3-lldb-x.y Replaces: python3-lldb-x.y Provides: python3-lldb-x.y @@ -511,7 +495,7 @@ Description: Next generation, high-performance debugger, python3 lib Package: liblldb-10-dev Section: libdevel -Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 s390x sparc hppa m610k sh4 x32 +Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 s390x sparc hppa m68k sh4 x32 # ia64 hurd powerpc powerpcspe ppc64 alpha s390x sparc64 have been removed Depends: ${shlibs:Depends}, ${misc:Depends}, lldb-10 (= ${binary:Version}) Pre-Depends: ${misc:Pre-Depends} diff --git a/debian/orig-tar.sh b/debian/orig-tar.sh index 8cc6e9e4..e386e17e 100755 --- a/debian/orig-tar.sh +++ b/debian/orig-tar.sh @@ -118,7 +118,7 @@ if test -z "$TAG" -a -z "$FINAL_RELEASE"; then # the + is here to make sure that this version is considered more recent than the svn # dpkg --compare-versions 10~svn374977-1~exp1 lt 10~+2019-svn374977-1~exp1 # to verify that - VERSION="${VERSION}~+$(date +'%Y%m%d%I%M%S')+$(git log -1 --pretty=format:'%h')" + VERSION="${VERSION}~++$(date +'%Y%m%d%I%M%S')+$(git log -1 --pretty=format:'%h')" else if ! echo "$EXACT_VERSION"|grep -q "$MAJOR_VERSION"; then diff --git a/debian/patches/hurd/hurd-cxx-paths.diff b/debian/patches/hurd/hurd-cxx-paths.diff index 5ba40531..29971310 100644 --- a/debian/patches/hurd/hurd-cxx-paths.diff +++ b/debian/patches/hurd/hurd-cxx-paths.diff @@ -6,7 +6,7 @@ Index: llvm-toolchain-9-9.0.0/clang/lib/Driver/ToolChains/Hurd.cpp =================================================================== --- llvm-toolchain-9-9.0.0.orig/clang/lib/Driver/ToolChains/Hurd.cpp +++ llvm-toolchain-9-9.0.0/clang/lib/Driver/ToolChains/Hurd.cpp -@@ -61,17 +61,107 @@ static StringRef getOSLibDir(const llvm: +@@ -61,21 +61,107 @@ static StringRef getOSLibDir(const llvm: return Triple.isArch32Bit() ? "lib" : "lib64"; } @@ -42,10 +42,6 @@ Index: llvm-toolchain-9-9.0.0/clang/lib/Driver/ToolChains/Hurd.cpp + .str()); + } + -+#ifdef ENABLE_LINKER_BUILD_ID -+ ExtraOpts.push_back("--build-id"); -+#endif -+ + // The selection of paths to try here is designed to match the patterns which + // the GCC driver itself uses, as this is part of the GCC-compatible driver. + // This was determined by running GCC in a fake filesystem, creating all @@ -56,6 +52,10 @@ Index: llvm-toolchain-9-9.0.0/clang/lib/Driver/ToolChains/Hurd.cpp const std::string OSLibDir = getOSLibDir(Triple, Args); const std::string MultiarchTriple = getMultiarchTriple(D, Triple, SysRoot); + #ifdef ENABLE_LINKER_BUILD_ID + ExtraOpts.push_back("--build-id"); + #endif + - // If we are currently running Clang inside of the requested system root, add - // its parent library paths to those searched. + // Add the multilib suffixed paths where they are available. diff --git a/debian/patches/libcxx/libcxxabi-arm-ehabi-fix.patch b/debian/patches/libcxx/libcxxabi-arm-ehabi-fix.patch index 680e8127..55d2b588 100644 --- a/debian/patches/libcxx/libcxxabi-arm-ehabi-fix.patch +++ b/debian/patches/libcxx/libcxxabi-arm-ehabi-fix.patch @@ -7,10 +7,10 @@ sure their ABI stays in sync. No known upstream bug about this. -Index: llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/libcxxabi/src/cxa_exception.cpp +Index: llvm-toolchain-10_10~++20200205105438+211aa5bf59e/libcxxabi/src/cxa_exception.cpp =================================================================== ---- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/libcxxabi/src/cxa_exception.cpp -+++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/libcxxabi/src/cxa_exception.cpp +--- llvm-toolchain-10_10~++20200205105438+211aa5bf59e.orig/libcxxabi/src/cxa_exception.cpp ++++ llvm-toolchain-10_10~++20200205105438+211aa5bf59e/libcxxabi/src/cxa_exception.cpp @@ -275,15 +275,16 @@ __cxa_throw(void *thrown_object, std::ty #ifdef __USING_SJLJ_EXCEPTIONS__ @@ -66,10 +66,10 @@ Index: llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/libcxxabi/src/cxa_ #endif // Some sort of unwinding error. Note that terminate is a handler. __cxa_begin_catch(&dep_exception_header->unwindHeader); -Index: llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/libcxxabi/src/cxa_exception.h +Index: llvm-toolchain-10_10~++20200205105438+211aa5bf59e/libcxxabi/src/cxa_exception.h =================================================================== ---- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/libcxxabi/src/cxa_exception.h -+++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/libcxxabi/src/cxa_exception.h +--- llvm-toolchain-10_10~++20200205105438+211aa5bf59e.orig/libcxxabi/src/cxa_exception.h ++++ llvm-toolchain-10_10~++20200205105438+211aa5bf59e/libcxxabi/src/cxa_exception.h @@ -27,6 +27,45 @@ _LIBCXXABI_HIDDEN uint64_t __getExceptio _LIBCXXABI_HIDDEN void __setExceptionClass ( _Unwind_Exception*, uint64_t); _LIBCXXABI_HIDDEN bool __isOurExceptionClass(const _Unwind_Exception*); @@ -114,5 +114,5 @@ Index: llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/libcxxabi/src/cxa_ +#endif + struct _LIBCXXABI_HIDDEN __cxa_exception { - #if defined(__LP64__) || defined(_LIBCXXABI_ARM_EHABI) - // This is a new field to support C++ 0x exception_ptr. + #if defined(__LP64__) || defined(_WIN64) || defined(_LIBCXXABI_ARM_EHABI) + // Now _Unwind_Exception is marked with __attribute__((aligned)), diff --git a/debian/patches/print-lldb-path.patch b/debian/patches/print-lldb-path.patch new file mode 100644 index 00000000..6b43448b --- /dev/null +++ b/debian/patches/print-lldb-path.patch @@ -0,0 +1,14 @@ +Author: Gianfranco Costamagna +Last-Update: 2020-01-21 + +--- llvm-toolchain-snapshot-10~++20191229111838+6991d5728f1.orig/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp ++++ llvm-toolchain-snapshot-10~++20191229111838+6991d5728f1/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp +@@ -353,6 +353,8 @@ void ScriptInterpreterPython::ComputePyt + // x86_64, or bin on Windows). + llvm::sys::path::remove_filename(path); + llvm::sys::path::append(path, LLDB_PYTHON_RELATIVE_LIBDIR); ++ // remove double "lib/lib" statement ++ std::replace(path.begin(), path.end(), '/lib/lib/', '/lib/'); + + #if defined(_WIN32) + // This will be injected directly through FileSpec.GetDirectory().SetString(), diff --git a/debian/patches/series b/debian/patches/series index 5d5419ed..1fd7b7a5 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -97,6 +97,7 @@ remove-apple-clang-manpage.diff 0049-Use-Debian-provided-MathJax-everywhere.patch # Hurd port +hurd/hurd-cxx-paths.diff hurd/hurd-pathmax.diff # powerpcspe @@ -136,3 +137,4 @@ disable-fuzzer-compiler-rt.diff no-z3.patch python3-shebang.patch +print-lldb-path.patch diff --git a/debian/python3-lldb-X.Y.links.in b/debian/python3-lldb-X.Y.links.in new file mode 100644 index 00000000..2639ac09 --- /dev/null +++ b/debian/python3-lldb-X.Y.links.in @@ -0,0 +1,4 @@ +usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION_FULL@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/python3/dist-packages/lldb/libLLVM-@LLVM_VERSION_FULL@.so.1 +usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION_FULL@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/python3/dist-packages/lldb/libLLVM-@LLVM_VERSION@.so.1 +usr/lib/@DEB_HOST_MULTIARCH@/liblldb-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/python3/dist-packages/lldb/_lldb.so +usr/lib/llvm-@LLVM_VERSION@/lib/python3/dist-packages/lldb/ usr/lib/python3/dist-packages/lldb diff --git a/debian/qualify-clang.sh b/debian/qualify-clang.sh index d5958748..599695bb 100755 --- a/debian/qualify-clang.sh +++ b/debian/qualify-clang.sh @@ -9,8 +9,9 @@ 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 python-lldb-${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 clang-${VERSION}-dbgsym_${DETAILED_VERSION}_amd64.deb libclang1-${VERSION}-dbgsym_${DETAILED_VERSION}_amd64.deb libclang-cpp${VERSION}_${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 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 clang-${VERSION}-dbgsym_${DETAILED_VERSION}_amd64.deb libclang1-${VERSION}-dbgsym_${DETAILED_VERSION}_amd64.deb libclang-cpp${VERSION}_${DETAILED_VERSION}_amd64.deb" echo "To install everything:" +echo "sudo apt --purge remove 'libomp5-*' 'libc++*dev' 'libc++*'" echo "sudo dpkg -i $LIST" L="" for f in $LIST; do diff --git a/debian/rules b/debian/rules index e4dcd620..2069f305 100755 --- a/debian/rules +++ b/debian/rules @@ -75,15 +75,6 @@ ifneq ($(shell dpkg-vendor --derives-from Ubuntu && echo yes),yes) endif endif -FORCE_NOT_GCC_9_DISTRO := eoan focal bullseye sid -ifneq (,$(filter $(DISTRO),$(FORCE_NOT_GCC_9_DISTRO))) -# Force gcc before 9 (gcc 8 on Debian unstable) because it causes -# huge increase of the size of the .deb (because of .a and .so) and issues in the libs - GCC_VERSION := 8 -endif - - - export CC=gcc-$(GCC_VERSION) export CXX=g++-$(GCC_VERSION) @@ -244,7 +235,13 @@ ifneq (,$(filter $(DEB_HOST_ARCH),$(BINUTILS_GOLD_ARCHS))) # armhf is not yet quite ready for Thin, it FTBFS # see https://buildd.debian.org/status/fetch.php?pkg=llvm-toolchain-8&arch=armhf&ver=1%3A8.0.1%7E%2Brc2-1%7Eexp1&stamp=1560334266&raw=0 ifeq (,$(filter $(DEB_HOST_ARCH), armhf)) - CMAKE_EXTRA += -DLLVM_ENABLE_LTO="Thin" +# Use BOOTSTRAP_LLVM_ENABLE_LTO to make sure that it isn't used +# when running stage1 with gcc +# For now, disable ThinLTO usage because: +# * LLVM_ENABLE_LTO doesn't work with gcc >= 9 (option not accepted) +# * BOOTSTRAP_LLVM_ENABLE_LTO is producing some large binary +# See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=943623 +# CMAKE_EXTRA += -DBOOTSTRAP_LLVM_ENABLE_LTO="Thin" endif endif endif @@ -299,7 +296,7 @@ preconfigure: done # Make install file executable for dh-exec - chmod +x debian/llvm-$(LLVM_VERSION)-dev.install + chmod +x debian/llvm-$(LLVM_VERSION)-dev.install debian/clang-tools-$(LLVM_VERSION).install # DH doesn't support the [power ...] in install on Ubuntu trusty # fails with cp: cannot stat 'debian/tmp/[!powerpc': No such file or directory @@ -596,9 +593,6 @@ endif # Path changed. Make a copy of it cp $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/clang/$(LLVM_VERSION_FULL)/README.txt $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/clang/$(LLVM_VERSION_FULL)/share/README.txt -# idem for the lldb python binding - mkdir -p $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/python3/dist-packages/lldb/ - # Remove things that CMake install but which aren't packaged yet, # or are packaged from the source or build tree. mv $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/clang-$(LLVM_VERSION) \ diff --git a/debian/tests/control b/debian/tests/control index 4ec880e6..2e6f238a 100644 --- a/debian/tests/control +++ b/debian/tests/control @@ -8,3 +8,9 @@ Restrictions: allow-stderr Tests: cmake-test Depends: gcc, build-essential, cmake, llvm-10-dev, libclang-common-10-dev + +Test-Command: python3 -c "import lldb; print(lldb.__file__); print(lldb)" +Depends: python3-lldb-10 + +Test-Command: python3 -c "import clang; print(clang.__file__); print(clang)" +Depends: python3-clang-10 diff --git a/debian/unpack.sh b/debian/unpack.sh index 0df33d3c..31d8dab5 100644 --- a/debian/unpack.sh +++ b/debian/unpack.sh @@ -1,8 +1,9 @@ set -e -ORIG_VERSION=snapshot +ORIG_VERSION=10 MAJOR_VERSION=10 # 8.0.1 -REV=`ls -1 *${ORIG_VERSION}_${MAJOR_VERSION}*~+*xz | tail -1|perl -ne 'print "$1\n" if /~\+(.*)\.orig/;' | sort -ru` +REV=`ls -1 *$ORIG_VERSION_$MAJOR_VERSION*~+*xz | tail -1|perl -ne 'print "$1\n" if /~\+(.*)\.orig/;' | sort -ru` +#SVN_REV=347285 VERSION=$REV #VERSION=+rc3