From 7dcb49afb5c526f5788452f255eeccf8e7767807 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 1 Sep 2019 00:47:58 +0200 Subject: [PATCH 01/21] fix the install paths --- debian/libclang-cppX.Y.install.in | 1 + debian/libclang-cppX.Y.links.in | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/debian/libclang-cppX.Y.install.in b/debian/libclang-cppX.Y.install.in index 532be080..25c578ee 100644 --- a/debian/libclang-cppX.Y.install.in +++ b/debian/libclang-cppX.Y.install.in @@ -1 +1,2 @@ usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/ +usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so.1 diff --git a/debian/libclang-cppX.Y.links.in b/debian/libclang-cppX.Y.links.in index 351b66ba..4623efb6 100644 --- a/debian/libclang-cppX.Y.links.in +++ b/debian/libclang-cppX.Y.links.in @@ -1 +1 @@ -/usr/lib/@DEB_HOST_MULTIARCH@/libclang-cpp-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so.@LLVM_VERSION@ +/usr/lib/@DEB_HOST_MULTIARCH@/libclang-cpp.so.@LLVM_VERSION@ usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so.@LLVM_VERSION@ From 88da9a90dc5ea070b26d97905f8b92b87e6c6766 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 1 Sep 2019 00:48:38 +0200 Subject: [PATCH 02/21] improve the tests with libclang-cpp --- debian/qualify-clang.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/debian/qualify-clang.sh b/debian/qualify-clang.sh index 397fc923..15044b8a 100755 --- a/debian/qualify-clang.sh +++ b/debian/qualify-clang.sh @@ -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 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" +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" echo "To install everything:" echo "sudo dpkg -i $LIST" L="" @@ -162,6 +162,10 @@ echo '#include int main() { }' > foo.cpp clang++-$VERSION -std=c++11 foo.cpp +echo "Testing linking clang-cpp ..." + +clang-$VERSION -lclang-cpp$VERSION -v foo.cpp &> /dev/null +exit 0 echo "Testing code coverage ..." echo '#include @@ -379,7 +383,7 @@ struct g { typedef f::e c; }; class h { - struct : g::c {}; + struct : g::c { int i; }; }; struct m { h i; From 60ab466af0122331ecd0536e483d911156babe05 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 1 Sep 2019 00:51:51 +0200 Subject: [PATCH 03/21] fix install path of libclang-cpp --- debian/rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/rules b/debian/rules index 09ea4fe6..ca6c0169 100755 --- a/debian/rules +++ b/debian/rules @@ -576,7 +576,7 @@ override_dh_auto_install: cd debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/ && rm -f libclang.so.$(SONAME_EXT) libclang-$(LLVM_VERSION).so; \ ln -s libclang-$(LLVM_VERSION).so.$(SONAME_EXT) libclang.so.$(SONAME_EXT) - cd debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/ && mv libclang-cpp.so.$(SONAME_EXT) libclang-cpp-$(LLVM_VERSION).so.$(SONAME_EXT); \ + cd debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/ && mv libclang-cpp.so.$(LLVM_VERSION) libclang-cpp-$(LLVM_VERSION).so.$(SONAME_EXT); \ ln -s libclang-cpp-$(LLVM_VERSION).so.$(SONAME_EXT) libclang-cpp.so.$(SONAME_EXT) cd debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib && rm -f libomp.so; \ From 6bf9ce13ab4435128239c2cbf789dd1edb95c2e6 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 1 Sep 2019 00:52:01 +0200 Subject: [PATCH 04/21] improve the tests --- debian/qualify-clang.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/debian/qualify-clang.sh b/debian/qualify-clang.sh index 15044b8a..de31d1a5 100755 --- a/debian/qualify-clang.sh +++ b/debian/qualify-clang.sh @@ -164,8 +164,12 @@ clang++-$VERSION -std=c++11 foo.cpp echo "Testing linking clang-cpp ..." -clang-$VERSION -lclang-cpp$VERSION -v foo.cpp &> /dev/null -exit 0 +clang-$VERSION -lclang-cpp$VERSION -v foo.cpp -o o &> /dev/null +if ! ldd o 2>&1|grep -q libclang-cpp; then + echo "Didn't link against libclang-cpp$VERSION" + exit 42 +fi + echo "Testing code coverage ..." echo '#include From 4b4d823b4059a858f751183fc74902d6408277ba Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 1 Sep 2019 10:59:53 +0200 Subject: [PATCH 05/21] fix some install issue --- debian/libclang-cppX.Y.install.in | 1 + debian/rules | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/debian/libclang-cppX.Y.install.in b/debian/libclang-cppX.Y.install.in index 25c578ee..9edfbeff 100644 --- a/debian/libclang-cppX.Y.install.in +++ b/debian/libclang-cppX.Y.install.in @@ -1,2 +1,3 @@ usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/ usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so.1 +usr/lib/llvm-9/lib/libclang-cpp.so.@LLVM_VERSION@ diff --git a/debian/rules b/debian/rules index ca6c0169..99b10570 100755 --- a/debian/rules +++ b/debian/rules @@ -577,7 +577,9 @@ override_dh_auto_install: ln -s libclang-$(LLVM_VERSION).so.$(SONAME_EXT) libclang.so.$(SONAME_EXT) cd debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/ && mv libclang-cpp.so.$(LLVM_VERSION) libclang-cpp-$(LLVM_VERSION).so.$(SONAME_EXT); \ - ln -s libclang-cpp-$(LLVM_VERSION).so.$(SONAME_EXT) libclang-cpp.so.$(SONAME_EXT) + ln -s libclang-cpp-$(LLVM_VERSION).so.$(SONAME_EXT) libclang-cpp.so.$(SONAME_EXT); \ + ln -s libclang-cpp-$(LLVM_VERSION).so.$(SONAME_EXT) libclang-cpp.so.$(LLVM_VERSION) + cd debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib && rm -f libomp.so; \ ln -s libomp.so.$(SONAME_OPENMP) libomp.so @@ -710,7 +712,7 @@ endif # Delete the target build directory to save some space on the build systems # All the files have been installed in $(CURDIR)/debian/tmp/ already - rm -rf $(TARGET_BUILD) +# rm -rf $(TARGET_BUILD) override_dh_makeshlibs: From 2c1d4d5a3b546da7a6c27810679785867fcc3e38 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 1 Sep 2019 11:00:38 +0200 Subject: [PATCH 06/21] gcc8 => 9 --- debian/qualify-clang.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/qualify-clang.sh b/debian/qualify-clang.sh index de31d1a5..137b3795 100755 --- a/debian/qualify-clang.sh +++ b/debian/qualify-clang.sh @@ -849,7 +849,7 @@ fi # MARCH should iterate the library architectures via flags # LIB should iterate the different libraries echo "if it fails, please run" -echo "apt-get install libc6-dev:i386 libgcc-5-dev:i386 libc6-dev-x32 libx32gcc-5-dev libx32gcc-8-dev" +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 for LIB in --rtlib=compiler-rt -fsanitize=address -fsanitize=thread -fsanitize=memory -fsanitize=undefined -fsanitize=dataflow; do # -fsanitize=efficiency-working-set; do @@ -876,7 +876,7 @@ done echo "If the following fails, try setting an environment variable such as:" echo "OBJC_INCLUDE_PATH=/usr/lib/gcc/x86_64-linux-gnu/8/include" -echo "libobjc-8-dev should be also installed" +echo "libobjc-9-dev should be also installed" echo "#include " > foo.m #clang-$VERSION -c foo.m From 2a58c5d841443533b00997207827b2576855a6a7 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 2 Sep 2019 10:38:55 +0200 Subject: [PATCH 07/21] Debian moved to gcc-9. This gcc version now refuses -flto="Thin" Move from LLVM_ENABLE_LTO="Thin" to BOOTSTRAP_LLVM_ENABLE_LTO="Thin" to mitigate the issue (the argument should be passed only at the second stage of the build process) See https://bugs.llvm.org/show_bug.cgi?id=43193 --- debian/changelog | 10 ++++++++++ debian/rules | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 49f196a3..e2b78cf9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,13 @@ +llvm-toolchain-9 (1:9~+rc3-1~exp2) experimental; urgency=medium + + * Debian moved to gcc-9. This gcc version now refuses -flto="Thin" + Move from LLVM_ENABLE_LTO="Thin" to BOOTSTRAP_LLVM_ENABLE_LTO="Thin" + to mitigate the issue (the argument should be passed only at the + second stage of the build process) + See https://bugs.llvm.org/show_bug.cgi?id=43193 + + -- + llvm-toolchain-9 (1:9~+rc3-1~exp1) experimental; urgency=medium * New snapshot release diff --git a/debian/rules b/debian/rules index 99b10570..41a85a5a 100755 --- a/debian/rules +++ b/debian/rules @@ -230,7 +230,7 @@ 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" + CMAKE_EXTRA += -DBOOTSTRAP_LLVM_ENABLE_LTO="Thin" endif endif endif From 2c3d58eabf62af7c91796eb9b3085f98f1c03d2a Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 2 Sep 2019 10:39:18 +0200 Subject: [PATCH 08/21] reorder the bootstrap args --- debian/rules | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/debian/rules b/debian/rules index 41a85a5a..95b71d76 100755 --- a/debian/rules +++ b/debian/rules @@ -390,8 +390,6 @@ override_dh_auto_configure: preconfigure -DCMAKE_VERBOSE_MAKEFILE=ON \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$(opt_flags)" \ - -DBOOTSTRAP_CMAKE_CXX_FLAGS='$(BOOTSTRAP_CXXFLAGS_EXTRA)' \ - -DBOOTSTRAP_CMAKE_C_FLAGS='$(BOOTSTRAP_CFLAGS_EXTRA)' \ -DLLVM_LINK_LLVM_DYLIB=ON \ -DLLVM_INSTALL_UTILS=ON \ -DLLVM_VERSION_SUFFIX= \ @@ -405,9 +403,11 @@ override_dh_auto_configure: preconfigure -DENABLE_LINKER_BUILD_ID=ON \ -DPOLLY_BUNDLED_JSONCPP=OFF \ -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="AVR" \ - -DCLANG_ENABLE_BOOTSTRAP=ON \ -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON \ -DCLANG_VENDOR=$(VENDOR) \ + -DCLANG_ENABLE_BOOTSTRAP=ON \ + -DBOOTSTRAP_CMAKE_CXX_FLAGS='$(BOOTSTRAP_CXXFLAGS_EXTRA)' \ + -DBOOTSTRAP_CMAKE_C_FLAGS='$(BOOTSTRAP_CFLAGS_EXTRA)' \ -DCLANG_BOOTSTRAP_PASSTHROUGH="CMAKE_INSTALL_PREFIX;CMAKE_VERBOSE_MAKEFILE;CMAKE_BUILD_TYPE;CMAKE_CXX_FLAGS_RELWITHDEBINFO;LLVM_LINK_LLVM_DYLIB;LLVM_INSTALL_UTILS;LLVM_VERSION_SUFFIX;LLVM_ENABLE_SPHINX;SPHINX_WARNINGS_AS_ERRORS;LLVM_BUILD_LLVM_DYLIB;LLVM_ENABLE_RTTI;LLVM_ENABLE_FFI;LIBCLANG_LIBRARY_VERSION;ENABLE_LINKER_BUILD_ID;POLLY_BUNDLED_JSONCPP;LLVM_EXPERIMENTAL_TARGETS_TO_BUILD;LLVM_USE_PERF;LLVM_ENABLE_ASSERTIONS;LLVM_BINUTILS_INCDIR;LLVM_HOST_TRIPLE;;LLVM_COMPILER_CHECKED;COMPILER_RT_BUILD_BUILTINS;LIBOMP_LIBFLAGS;CMAKE_SHARED_LINKER_FLAGS;PYTHON_EXECUTABLE" From a7abde8f960ebade1a8d089b8e59e372729d6ed6 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 2 Sep 2019 10:44:35 +0200 Subject: [PATCH 09/21] remove a dup declaration (done in the .links) --- debian/rules | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/rules b/debian/rules index 95b71d76..e6a5ac9e 100755 --- a/debian/rules +++ b/debian/rules @@ -577,8 +577,8 @@ override_dh_auto_install: ln -s libclang-$(LLVM_VERSION).so.$(SONAME_EXT) libclang.so.$(SONAME_EXT) cd debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/ && mv libclang-cpp.so.$(LLVM_VERSION) libclang-cpp-$(LLVM_VERSION).so.$(SONAME_EXT); \ - ln -s libclang-cpp-$(LLVM_VERSION).so.$(SONAME_EXT) libclang-cpp.so.$(SONAME_EXT); \ - ln -s libclang-cpp-$(LLVM_VERSION).so.$(SONAME_EXT) libclang-cpp.so.$(LLVM_VERSION) + ln -s libclang-cpp-$(LLVM_VERSION).so.$(SONAME_EXT) libclang-cpp.so.$(SONAME_EXT) + cd debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib && rm -f libomp.so; \ From 618388bf7464263c6110f955da573f180de4f129 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 2 Sep 2019 10:46:00 +0200 Subject: [PATCH 10/21] fix the link --- debian/libclang-cppX.Y.links.in | 1 + 1 file changed, 1 insertion(+) diff --git a/debian/libclang-cppX.Y.links.in b/debian/libclang-cppX.Y.links.in index 4623efb6..4f534bd0 100644 --- a/debian/libclang-cppX.Y.links.in +++ b/debian/libclang-cppX.Y.links.in @@ -1 +1,2 @@ /usr/lib/@DEB_HOST_MULTIARCH@/libclang-cpp.so.@LLVM_VERSION@ usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so.@LLVM_VERSION@ +/usr/lib/@DEB_HOST_MULTIARCH@/libclang-cpp.so.@LLVM_VERSION@ usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so.1 From 8c49cbc3daf68f5b280d5a388541cb3b353796f2 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 2 Sep 2019 10:46:33 +0200 Subject: [PATCH 11/21] Fix a link issue (Closes: #939172) --- debian/changelog | 1 + 1 file changed, 1 insertion(+) diff --git a/debian/changelog b/debian/changelog index e2b78cf9..64c0ab39 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,6 +5,7 @@ llvm-toolchain-9 (1:9~+rc3-1~exp2) experimental; urgency=medium to mitigate the issue (the argument should be passed only at the second stage of the build process) See https://bugs.llvm.org/show_bug.cgi?id=43193 + * Fix a link issue (Closes: #939172) -- From c1a451838ddc3634e89acd0995535407f304591f Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 2 Sep 2019 10:46:52 +0200 Subject: [PATCH 12/21] fix changelog --- debian/changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 64c0ab39..b370b783 100644 --- a/debian/changelog +++ b/debian/changelog @@ -7,7 +7,7 @@ llvm-toolchain-9 (1:9~+rc3-1~exp2) experimental; urgency=medium See https://bugs.llvm.org/show_bug.cgi?id=43193 * Fix a link issue (Closes: #939172) - -- + -- Sylvestre Ledru Mon, 02 Sep 2019 10:46:45 +0200 llvm-toolchain-9 (1:9~+rc3-1~exp1) experimental; urgency=medium From a4c9068ec6a28cf63d411a1b9c99674d513ac374 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 2 Sep 2019 16:53:05 +0200 Subject: [PATCH 13/21] remove a file which should not be installed --- debian/libclang-cppX.Y.install.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/libclang-cppX.Y.install.in b/debian/libclang-cppX.Y.install.in index 9edfbeff..75113642 100644 --- a/debian/libclang-cppX.Y.install.in +++ b/debian/libclang-cppX.Y.install.in @@ -1,3 +1,3 @@ usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/ usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so.1 -usr/lib/llvm-9/lib/libclang-cpp.so.@LLVM_VERSION@ + From a0dfd37191f44fee26177cba722922f4132b14f0 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Tue, 3 Sep 2019 08:11:42 +0200 Subject: [PATCH 14/21] fix links --- debian/libclang-cppX.Y.links.in | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/debian/libclang-cppX.Y.links.in b/debian/libclang-cppX.Y.links.in index 4f534bd0..d566c832 100644 --- a/debian/libclang-cppX.Y.links.in +++ b/debian/libclang-cppX.Y.links.in @@ -1,2 +1,3 @@ -/usr/lib/@DEB_HOST_MULTIARCH@/libclang-cpp.so.@LLVM_VERSION@ usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so.@LLVM_VERSION@ -/usr/lib/@DEB_HOST_MULTIARCH@/libclang-cpp.so.@LLVM_VERSION@ usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so.1 +/usr/lib/@DEB_HOST_MULTIARCH@/libclang-cpp-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so.@LLVM_VERSION@ +/usr/lib/@DEB_HOST_MULTIARCH@/libclang-cpp-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so.1 +/usr/lib/@DEB_HOST_MULTIARCH@/libclang-cpp-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/libclang-cpp.so.@LLVM_VERSION@ From 5846370e55831fbe4edbfef0934c7e0b3ccf7c2d Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Tue, 3 Sep 2019 08:11:53 +0200 Subject: [PATCH 15/21] improve the tests --- debian/qualify-clang.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/debian/qualify-clang.sh b/debian/qualify-clang.sh index 137b3795..6f31b1e8 100755 --- a/debian/qualify-clang.sh +++ b/debian/qualify-clang.sh @@ -169,6 +169,10 @@ if ! ldd o 2>&1|grep -q libclang-cpp; then echo "Didn't link against libclang-cpp$VERSION" exit 42 fi +./o > /dev/null + +# Check that the symlink is correct +ls -al /usr/lib/llvm-$VERSION/lib/libclang-cpp.so.1 > /dev/null echo "Testing code coverage ..." From 9b69c89f47a78e1d2ccc4b92299848bd8fe5ee8d Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Wed, 4 Sep 2019 18:46:11 +0200 Subject: [PATCH 16/21] try to fix the link --- debian/libclang-cppX.Y.install.in | 1 - debian/libclang-cppX.Y.links.in | 1 - debian/rules | 4 ++-- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/debian/libclang-cppX.Y.install.in b/debian/libclang-cppX.Y.install.in index 75113642..25c578ee 100644 --- a/debian/libclang-cppX.Y.install.in +++ b/debian/libclang-cppX.Y.install.in @@ -1,3 +1,2 @@ usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/ usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so.1 - diff --git a/debian/libclang-cppX.Y.links.in b/debian/libclang-cppX.Y.links.in index d566c832..6d3ef536 100644 --- a/debian/libclang-cppX.Y.links.in +++ b/debian/libclang-cppX.Y.links.in @@ -1,3 +1,2 @@ /usr/lib/@DEB_HOST_MULTIARCH@/libclang-cpp-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so.@LLVM_VERSION@ /usr/lib/@DEB_HOST_MULTIARCH@/libclang-cpp-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so.1 -/usr/lib/@DEB_HOST_MULTIARCH@/libclang-cpp-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/libclang-cpp.so.@LLVM_VERSION@ diff --git a/debian/rules b/debian/rules index e6a5ac9e..7a9612fa 100755 --- a/debian/rules +++ b/debian/rules @@ -577,8 +577,8 @@ override_dh_auto_install: ln -s libclang-$(LLVM_VERSION).so.$(SONAME_EXT) libclang.so.$(SONAME_EXT) cd debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/ && mv libclang-cpp.so.$(LLVM_VERSION) libclang-cpp-$(LLVM_VERSION).so.$(SONAME_EXT); \ - ln -s libclang-cpp-$(LLVM_VERSION).so.$(SONAME_EXT) libclang-cpp.so.$(SONAME_EXT) - + ln -s libclang-cpp-$(LLVM_VERSION).so.$(SONAME_EXT) libclang-cpp.so.$(SONAME_EXT); \ + ln -s libclang-cpp-$(LLVM_VERSION).so.$(SONAME_EXT)libclang-cpp.so.$(LLVM_VERSION) cd debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib && rm -f libomp.so; \ From 0390f7204d8bc755cf42ea1d5e71577d3c5c5ecb Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Wed, 4 Sep 2019 20:56:51 +0200 Subject: [PATCH 17/21] also install usr/lib/llvm-10/lib/libclang-cpp.so.10 --- debian/libclang-cppX.Y.install.in | 1 + debian/libclang-cppX.Y.links.in | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/libclang-cppX.Y.install.in b/debian/libclang-cppX.Y.install.in index 25c578ee..a6714393 100644 --- a/debian/libclang-cppX.Y.install.in +++ b/debian/libclang-cppX.Y.install.in @@ -1,2 +1,3 @@ usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/ usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so.1 +usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so.@LLVM_VERSION@ diff --git a/debian/libclang-cppX.Y.links.in b/debian/libclang-cppX.Y.links.in index 6d3ef536..8ad00921 100644 --- a/debian/libclang-cppX.Y.links.in +++ b/debian/libclang-cppX.Y.links.in @@ -1,2 +1 @@ -/usr/lib/@DEB_HOST_MULTIARCH@/libclang-cpp-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so.@LLVM_VERSION@ /usr/lib/@DEB_HOST_MULTIARCH@/libclang-cpp-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so.1 From 0e69053baafe2968714de0ccea910148bc73b246 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Thu, 5 Sep 2019 10:42:43 +0200 Subject: [PATCH 18/21] revert link changes --- debian/libclang-cppX.Y.install.in | 2 +- debian/libclang-cppX.Y.links.in | 2 ++ debian/rules | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/debian/libclang-cppX.Y.install.in b/debian/libclang-cppX.Y.install.in index a6714393..75113642 100644 --- a/debian/libclang-cppX.Y.install.in +++ b/debian/libclang-cppX.Y.install.in @@ -1,3 +1,3 @@ usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/ usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so.1 -usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so.@LLVM_VERSION@ + diff --git a/debian/libclang-cppX.Y.links.in b/debian/libclang-cppX.Y.links.in index 8ad00921..d566c832 100644 --- a/debian/libclang-cppX.Y.links.in +++ b/debian/libclang-cppX.Y.links.in @@ -1 +1,3 @@ +/usr/lib/@DEB_HOST_MULTIARCH@/libclang-cpp-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so.@LLVM_VERSION@ /usr/lib/@DEB_HOST_MULTIARCH@/libclang-cpp-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so.1 +/usr/lib/@DEB_HOST_MULTIARCH@/libclang-cpp-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/libclang-cpp.so.@LLVM_VERSION@ diff --git a/debian/rules b/debian/rules index 7a9612fa..e6a5ac9e 100755 --- a/debian/rules +++ b/debian/rules @@ -577,8 +577,8 @@ override_dh_auto_install: ln -s libclang-$(LLVM_VERSION).so.$(SONAME_EXT) libclang.so.$(SONAME_EXT) cd debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/ && mv libclang-cpp.so.$(LLVM_VERSION) libclang-cpp-$(LLVM_VERSION).so.$(SONAME_EXT); \ - ln -s libclang-cpp-$(LLVM_VERSION).so.$(SONAME_EXT) libclang-cpp.so.$(SONAME_EXT); \ - ln -s libclang-cpp-$(LLVM_VERSION).so.$(SONAME_EXT)libclang-cpp.so.$(LLVM_VERSION) + ln -s libclang-cpp-$(LLVM_VERSION).so.$(SONAME_EXT) libclang-cpp.so.$(SONAME_EXT) + cd debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib && rm -f libomp.so; \ From c6417dbaeffc915fca275d4aa7038cdf7f3e17b7 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 6 Sep 2019 23:27:38 +0200 Subject: [PATCH 19/21] Try to disable some options specific to BOOTSTRAP_LLVM_ENABLE_LTO which aren't activated for LLVM_ENABLE_LTO causing the usage of llvm-ar llvm-ranlib. Causing a huge increase of the size of the .deb (because of .a and .so) and issues in the libs (Closes: #939472) --- debian/changelog | 10 ++++++++++ debian/patches/series | 1 + debian/patches/try-to-unbreak-thinlto.diff | 21 +++++++++++++++++++++ 3 files changed, 32 insertions(+) create mode 100644 debian/patches/try-to-unbreak-thinlto.diff diff --git a/debian/changelog b/debian/changelog index b370b783..95b246c3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,13 @@ +llvm-toolchain-9 (1:9~+rc3-1~exp3) experimental; urgency=medium + + * Try to disable some options specific to BOOTSTRAP_LLVM_ENABLE_LTO + which aren't activated for LLVM_ENABLE_LTO causing the usage + of llvm-ar llvm-ranlib. Causing a huge increase of the size + of the .deb (because of .a and .so) and issues in the libs + (Closes: #939472) + + -- Sylvestre Ledru Fri, 06 Sep 2019 23:27:28 +0200 + llvm-toolchain-9 (1:9~+rc3-1~exp2) experimental; urgency=medium * Debian moved to gcc-9. This gcc version now refuses -flto="Thin" diff --git a/debian/patches/series b/debian/patches/series index 669029c7..8720f801 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -129,3 +129,4 @@ bootstrap-fix-include-next.diff clang-riscv64-multiarch.diff clang-riscv64-rv64gc.diff +try-to-unbreak-thinlto.diff diff --git a/debian/patches/try-to-unbreak-thinlto.diff b/debian/patches/try-to-unbreak-thinlto.diff new file mode 100644 index 00000000..e3fc9032 --- /dev/null +++ b/debian/patches/try-to-unbreak-thinlto.diff @@ -0,0 +1,21 @@ +Index: llvm-toolchain-9-9~+rc3/clang/CMakeLists.txt +=================================================================== +--- llvm-toolchain-9-9~+rc3.orig/clang/CMakeLists.txt ++++ llvm-toolchain-9-9~+rc3/clang/CMakeLists.txt +@@ -719,11 +719,11 @@ if (CLANG_ENABLE_BOOTSTRAP) + if(BOOTSTRAP_LLVM_ENABLE_LLD) + set(${CLANG_STAGE}_LINKER -DCMAKE_LINKER=${LLVM_RUNTIME_OUTPUT_INTDIR}/ld.lld) + endif() +- if(NOT BOOTSTRAP_LLVM_ENABLE_LTO) +- add_dependencies(clang-bootstrap-deps llvm-ar llvm-ranlib) +- set(${CLANG_STAGE}_AR -DCMAKE_AR=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-ar) +- set(${CLANG_STAGE}_RANLIB -DCMAKE_RANLIB=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-ranlib) +- endif() ++# if(NOT BOOTSTRAP_LLVM_ENABLE_LTO) ++# add_dependencies(clang-bootstrap-deps llvm-ar llvm-ranlib) ++# set(${CLANG_STAGE}_AR -DCMAKE_AR=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-ar) ++# set(${CLANG_STAGE}_RANLIB -DCMAKE_RANLIB=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-ranlib) ++# endif() + add_dependencies(clang-bootstrap-deps llvm-objcopy llvm-strip) + set(${CLANG_STAGE}_OBJCOPY -DCMAKE_OBJCOPY=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-objcopy) + set(${CLANG_STAGE}_STRIP -DCMAKE_STRIP=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-strip) From 48faa9b828af82f5c573ae7d23a7ccca7c2643fb Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 7 Sep 2019 10:39:56 +0200 Subject: [PATCH 20/21] try to fix the patch --- debian/patches/try-to-unbreak-thinlto.diff | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/debian/patches/try-to-unbreak-thinlto.diff b/debian/patches/try-to-unbreak-thinlto.diff index e3fc9032..5335566d 100644 --- a/debian/patches/try-to-unbreak-thinlto.diff +++ b/debian/patches/try-to-unbreak-thinlto.diff @@ -2,7 +2,7 @@ Index: llvm-toolchain-9-9~+rc3/clang/CMakeLists.txt =================================================================== --- llvm-toolchain-9-9~+rc3.orig/clang/CMakeLists.txt +++ llvm-toolchain-9-9~+rc3/clang/CMakeLists.txt -@@ -719,11 +719,11 @@ if (CLANG_ENABLE_BOOTSTRAP) +@@ -719,11 +719,9 @@ if (CLANG_ENABLE_BOOTSTRAP) if(BOOTSTRAP_LLVM_ENABLE_LLD) set(${CLANG_STAGE}_LINKER -DCMAKE_LINKER=${LLVM_RUNTIME_OUTPUT_INTDIR}/ld.lld) endif() @@ -11,11 +11,9 @@ Index: llvm-toolchain-9-9~+rc3/clang/CMakeLists.txt - set(${CLANG_STAGE}_AR -DCMAKE_AR=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-ar) - set(${CLANG_STAGE}_RANLIB -DCMAKE_RANLIB=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-ranlib) - endif() -+# if(NOT BOOTSTRAP_LLVM_ENABLE_LTO) -+# add_dependencies(clang-bootstrap-deps llvm-ar llvm-ranlib) -+# set(${CLANG_STAGE}_AR -DCMAKE_AR=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-ar) -+# set(${CLANG_STAGE}_RANLIB -DCMAKE_RANLIB=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-ranlib) -+# endif() ++ add_dependencies(clang-bootstrap-deps llvm-ar llvm-ranlib) ++ set(${CLANG_STAGE}_AR -DCMAKE_AR=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-ar) ++ set(${CLANG_STAGE}_RANLIB -DCMAKE_RANLIB=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-ranlib) add_dependencies(clang-bootstrap-deps llvm-objcopy llvm-strip) set(${CLANG_STAGE}_OBJCOPY -DCMAKE_OBJCOPY=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-objcopy) set(${CLANG_STAGE}_STRIP -DCMAKE_STRIP=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-strip) From a4bb04760488304dfefef4cc7e7d5ed1fadf8c60 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 7 Sep 2019 13:02:07 +0200 Subject: [PATCH 21/21] 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 --- debian/changelog | 7 +++---- debian/control | 3 ++- debian/patches/series | 2 +- debian/rules | 10 +++++++++- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/debian/changelog b/debian/changelog index 95b246c3..9787f598 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,9 +1,8 @@ llvm-toolchain-9 (1:9~+rc3-1~exp3) experimental; urgency=medium - * Try to disable some options specific to BOOTSTRAP_LLVM_ENABLE_LTO - which aren't activated for LLVM_ENABLE_LTO causing the usage - of llvm-ar llvm-ranlib. Causing a huge increase of the size - of the .deb (because of .a and .so) and issues in the libs + * 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 (Closes: #939472) -- Sylvestre Ledru Fri, 06 Sep 2019 23:27:28 +0200 diff --git a/debian/control b/debian/control index 4bd36453..b7cb768d 100644 --- a/debian/control +++ b/debian/control @@ -18,7 +18,8 @@ Build-Depends: debhelper (>= 9.0), cmake, chrpath, texinfo, sharutils, ocaml-findlib [amd64 arm64 armhf i386 ppc64el s390x], libctypes-ocaml-dev [amd64 arm64 armhf i386 ppc64el s390x], dh-exec, dh-ocaml [amd64 arm64 armhf i386 ppc64el s390x], - libpfm4-dev, python3-setuptools + libpfm4-dev, python3-setuptools, + 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/ diff --git a/debian/patches/series b/debian/patches/series index 8720f801..e3c68d60 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -129,4 +129,4 @@ bootstrap-fix-include-next.diff clang-riscv64-multiarch.diff clang-riscv64-rv64gc.diff -try-to-unbreak-thinlto.diff +#try-to-unbreak-thinlto.diff diff --git a/debian/rules b/debian/rules index e6a5ac9e..b3205728 100755 --- a/debian/rules +++ b/debian/rules @@ -67,6 +67,14 @@ ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' g++ GCC_VERSION := 4.9 endif +FORCE_NOT_GCC_9_DISTRO := eoan bullseye +ifeq (,$(filter $(DISTRO), $(FORCE_NOT_GCC_9_DISTRO))) +# Force gcc-8 + GCC_VERSION := 8 +endif + + + export CC=gcc-$(GCC_VERSION) export CXX=g++-$(GCC_VERSION) @@ -230,7 +238,7 @@ 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 += -DBOOTSTRAP_LLVM_ENABLE_LTO="Thin" + CMAKE_EXTRA += -DLLVM_ENABLE_LTO="Thin" endif endif endif