From cb8571939a9b951dbf7dc080a39315dd87d5398c Mon Sep 17 00:00:00 2001 From: Reshabh Sharma Date: Thu, 13 Sep 2018 23:12:16 +0530 Subject: [PATCH 1/9] OpenMP packages are coinstallable --- debian/changelog | 4 ++++ debian/control | 7 ------- debian/libomp-X.Y-dev.links.in | 5 +++++ debian/libomp5-X.Y.install.in | 4 +++- debian/libomp5-X.Y.links.in | 5 ++--- debian/libomp5-X.Y.lintian-overrides.in | 1 + debian/rules | 14 ++++++++++++-- 7 files changed, 27 insertions(+), 13 deletions(-) create mode 100644 debian/libomp-X.Y-dev.links.in diff --git a/debian/changelog b/debian/changelog index fa0a1bbb..c669ca4a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,7 +1,11 @@ llvm-toolchain-7 (1:7~+rc3-4) UNRELEASED; urgency=medium + [ Sylvestre Ledru ] * libc++-7-dev doesn't provide libstdc++-dev anymore (Closes: #908738) + [ Reshabh Sharma ] + * Make OpenMP packages coinstallable + -- Sylvestre Ledru Thu, 13 Sep 2018 15:26:41 +0200 llvm-toolchain-7 (1:7~+rc3-3) unstable; urgency=medium diff --git a/debian/control b/debian/control index 3c791506..09907be8 100644 --- a/debian/control +++ b/debian/control @@ -484,9 +484,6 @@ Section: libdevel Architecture: amd64 arm64 armhf i386 mips64el ppc64el ppc64 Depends: libomp5-7 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} Suggests: libomp-7-doc -Replaces: libiomp-dev (<< 3.7-1), libomp-dev (<< 7~+rc1-1~exp1) -Breaks: libiomp-dev (<< 3.7-1), libomp-dev (<< 7~+rc1-1~exp1) -Provides: libomp-dev Description: LLVM OpenMP runtime - dev package The runtime is the part of the OpenMP implementation that your code is linked against, and that manages the multiple threads in an OpenMP program @@ -496,10 +493,6 @@ Package: libomp5-7 Multi-Arch: same Architecture: amd64 arm64 armhf i386 mips64el ppc64el ppc64 Depends: ${shlibs:Depends}, ${misc:Depends} -Replaces: libomp5 (<< 7~+rc1-1~exp1) -Breaks: libomp5 (<< 7~+rc1-1~exp1) -Provides: libomp5 -# TODO add the break depends Description: LLVM OpenMP runtime The runtime is the part of the OpenMP implementation that your code is linked against, and that manages the multiple threads in an OpenMP program diff --git a/debian/libomp-X.Y-dev.links.in b/debian/libomp-X.Y-dev.links.in new file mode 100644 index 00000000..c80fc42e --- /dev/null +++ b/debian/libomp-X.Y-dev.links.in @@ -0,0 +1,5 @@ +/usr/lib/llvm-@LLVM_VERSION@/lib/libgomp.so /usr/lib/@DEB_HOST_MULTIARCH@/libgomp-@LLVM_VERSION@.so +/usr/lib/llvm-@LLVM_VERSION@/lib/libiomp5.so /usr/lib/@DEB_HOST_MULTIARCH@/libiomp5-@LLVM_VERSION@.so +/usr/lib/llvm-@LLVM_VERSION@/lib/libomp.so.5 /usr/lib/llvm-@LLVM_VERSION@/lib/libomp.so +/usr/lib/llvm-@LLVM_VERSION@/lib/libomp.so /usr/lib/llvm-@LLVM_VERSION@/lib/libomp-@LLVM_VERSION@.so +/usr/lib/llvm-@LLVM_VERSION@/lib/libomp-@LLVM_VERSION@.so /usr/lib/@DEB_HOST_MULTIARCH@/libomp-@LLVM_VERSION@.so diff --git a/debian/libomp5-X.Y.install.in b/debian/libomp5-X.Y.install.in index 19af41ce..da0e4b23 100644 --- a/debian/libomp5-X.Y.install.in +++ b/debian/libomp5-X.Y.install.in @@ -1 +1,3 @@ -usr/lib/llvm-@LLVM_VERSION@/lib/libomp.so.5 +usr/lib/llvm-@LLVM_VERSION@/lib/libomp-@LLVM_VERSION@.so.5 /usr/lib/@DEB_HOST_MULTIARCH@/ +usr/lib/llvm-@LLVM_VERSION@/lib/libomp.so.5 +usr/lib/llvm-@LLVM_VERSION@/lib/libomp-@LLVM_VERSION@.so.5 diff --git a/debian/libomp5-X.Y.links.in b/debian/libomp5-X.Y.links.in index cd9227f0..9f83f576 100644 --- a/debian/libomp5-X.Y.links.in +++ b/debian/libomp5-X.Y.links.in @@ -1,3 +1,2 @@ -usr/lib/llvm-@LLVM_VERSION@/lib/libomp.so.5 /usr/lib/@DEB_HOST_MULTIARCH@/libomp.so.5 - - +/usr/lib/@DEB_HOST_MULTIARCH@/libomp-@LLVM_VERSION@.so.5 /usr/lib/llvm-@LLVM_VERSION@/lib/libomp-@LLVM_VERSION@.so.5 +/usr/lib/llvm-@LLVM_VERSION@/lib/libomp-@LLVM_VERSION@.so.5 /usr/lib/llvm-@LLVM_VERSION@/lib/libomp.so.5 diff --git a/debian/libomp5-X.Y.lintian-overrides.in b/debian/libomp5-X.Y.lintian-overrides.in index 201d42dc..fc7612b7 100644 --- a/debian/libomp5-X.Y.lintian-overrides.in +++ b/debian/libomp5-X.Y.lintian-overrides.in @@ -1 +1,2 @@ libomp5-@LLVM_VERSION@: arch-dependent-file-not-in-arch-specific-directory usr/lib/llvm-@LLVM_VERSION@/lib/libomp.so.5 +libomp5-@LLVM_VERSION@: ldconfig-symlink-missing-for-shlib usr/lib/*/libomp.so.5 usr/lib/*/libomp-@LLVM_VERSION@.so.5 libomp.so.5 diff --git a/debian/rules b/debian/rules index 4e4a77af..d4cc6d48 100755 --- a/debian/rules +++ b/debian/rules @@ -463,8 +463,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 && rm -f libomp.so; \ - ln -s libomp.so.$(SONAME_OPENMP) libomp.so + cd debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib && cp libomp.so.$(SONAME_OPENMP) libomp-$(LLVM_VERSION).so.$(SONAME_OPENMP); if test "$(OPENMP_ENABLE)" = yes; then \ mkdir -p debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/include/openmp; \ @@ -513,6 +512,17 @@ endif $(MAKE) -C libcxxabi/build install DESTDIR=$(DEB_INST) $(MAKE) -C libcxx/build install DESTDIR=$(DEB_INST) + + cd debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/ && mv libc++.so.1.0 libc++-$(LLVM_VERSION).so.1.0; \ + mv libc++.so libc++-$(LLVM_VERSION).so; \ + mv libc++.a libc++-$(LLVM_VERSION).a; \ + mv libc++abi.so.1.0 libc++abi-$(LLVM_VERSION).so.1.0; \ + mv libc++abi.a libc++abi-$(LLVM_VERSION).a; \ + rm libc++.so.1 libc++abi.so libc++abi.so.1; \ + ln -s libc++-$(LLVM_VERSION).so.1.0 libc++-$(LLVM_VERSION).so.1; \ + ln -s libc++abi-$(LLVM_VERSION).so.1.0 libc++abi-$(LLVM_VERSION).so.1; \ + ln -s libc++abi-$(LLVM_VERSION).so.1 libc++abi-$(LLVM_VERSION).so; \ + ln -s libc++abi-$(LLVM_VERSION).so.1 libc++abi.so.1 # Rename binaries mkdir -p $(DEB_INST)/usr/bin/ From a9ef6d378f143de303be8a30be12339a10d1ebe0 Mon Sep 17 00:00:00 2001 From: Reshabh Sharma Date: Thu, 13 Sep 2018 23:52:01 +0530 Subject: [PATCH 2/9] make libc++ packages coinstallable --- debian/changelog | 1 + debian/control | 12 ------------ debian/libc++-X.Y-dev.install.in | 4 ++-- debian/libc++-X.Y-dev.links.in | 5 ++--- debian/libc++1-X.Y.install.in | 2 +- debian/libc++1-X.Y.links.in | 4 ++-- debian/libc++1-X.Y.lintian-overrides.in | 1 + debian/libc++abi-X.Y-dev.install.in | 4 ++-- debian/libc++abi-X.Y-dev.links.in | 3 ++- debian/libc++abi1-X.Y.install.in | 3 ++- debian/libc++abi1-X.Y.links.in | 3 +-- debian/libc++abi1-X.Y.lintian-overrides.in | 1 + 12 files changed, 17 insertions(+), 26 deletions(-) diff --git a/debian/changelog b/debian/changelog index c669ca4a..97a349d6 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,6 +5,7 @@ llvm-toolchain-7 (1:7~+rc3-4) UNRELEASED; urgency=medium [ Reshabh Sharma ] * Make OpenMP packages coinstallable + * Make libc++ packages coinstallable -- Sylvestre Ledru Thu, 13 Sep 2018 15:26:41 +0200 diff --git a/debian/control b/debian/control index 09907be8..a1fe6a67 100644 --- a/debian/control +++ b/debian/control @@ -520,9 +520,6 @@ Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Suggests: clang -Replaces: libc++1 (<< 7~+rc1-1~exp1) -Breaks: libc++1 (<< 7~+rc1-1~exp1) -Provides: libc++1 Description: LLVM C++ Standard library libc++ is another implementation of the C++ standard library. . @@ -541,9 +538,6 @@ Section: libdevel Architecture: any Multi-Arch: same Depends: libc++1-7 (= ${binary:Version}), ${misc:Depends} -Provides: libc++-dev -Breaks: libc++-dev (<< 7~+rc1-1~exp1) -Replaces: libc++-dev (<< 7~+rc1-1~exp1) Description: LLVM C++ Standard library (development files) libc++ is another implementation of the C++ standard library . @@ -565,9 +559,6 @@ Architecture: any Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} -Breaks: libc++abi1 (<< 7~+rc1-1~exp1) -Provides: libc++abi1 -Replaces: libc++abi1 (<< 7~+rc1-1~exp1) Description: LLVM low level support for a standard C++ library libc++abi is another implementation of low level support for a standard C++ library. @@ -582,9 +573,6 @@ Section: libdevel Architecture: any Multi-Arch: same Depends: libc++abi1-7 (= ${binary:Version}), ${misc:Depends} -Replaces: libc++-dev (<= 6.0.1-1), libc++abi-dev (<= 6.0.1-1) -Breaks: libc++-dev (<= 6.0.1-1), libc++abi-dev (<= 6.0.1-1) -Provides: libc++abi-dev Description: LLVM low level support for a standard C++ library (development files) libc++abi is another implementation of low level support for a standard C++ library. diff --git a/debian/libc++-X.Y-dev.install.in b/debian/libc++-X.Y-dev.install.in index d14e68c7..54a7a7e3 100644 --- a/debian/libc++-X.Y-dev.install.in +++ b/debian/libc++-X.Y-dev.install.in @@ -1,5 +1,5 @@ -usr/lib/llvm-@LLVM_VERSION@/lib/libc++.so -usr/lib/llvm-@LLVM_VERSION@/lib/libc++.a +usr/lib/llvm-@LLVM_VERSION@/lib/libc++-@LLVM_VERSION@.so usr/lib/@DEB_HOST_MULTIARCH@/ +usr/lib/llvm-@LLVM_VERSION@/lib/libc++-@LLVM_VERSION@.a usr/lib/@DEB_HOST_MULTIARCH@/ usr/lib/llvm-@LLVM_VERSION@/lib/libc++fs.a usr/lib/llvm-@LLVM_VERSION@/lib/libc++experimental.a usr/lib/llvm-@LLVM_VERSION@/include/c++/ diff --git a/debian/libc++-X.Y-dev.links.in b/debian/libc++-X.Y-dev.links.in index 4fa1b52e..a28d4dc8 100644 --- a/debian/libc++-X.Y-dev.links.in +++ b/debian/libc++-X.Y-dev.links.in @@ -1,3 +1,2 @@ -usr/lib/llvm-@LLVM_VERSION@/lib/libc++.so /usr/lib/x86_64-linux-gnu/libc++.so -usr/lib/llvm-@LLVM_VERSION@/lib/libc++.a /usr/lib/x86_64-linux-gnu/libc++.a -usr/lib/llvm-@LLVM_VERSION@/include/c++ /usr/include/c++ +/usr/lib/@DEB_HOST_MULTIARCH@/libc++-@LLVM_VERSION@.so /usr/lib/llvm-@LLVM_VERSION@/lib/libc++.so +/usr/lib/@DEB_HOST_MULTIARCH@/libc++-@LLVM_VERSION@.a /usr/lib/llvm-@LLVM_VERSION@/lib/libc++.a diff --git a/debian/libc++1-X.Y.install.in b/debian/libc++1-X.Y.install.in index 78e2cd3b..4bf1b027 100644 --- a/debian/libc++1-X.Y.install.in +++ b/debian/libc++1-X.Y.install.in @@ -1 +1 @@ -usr/lib/llvm-@LLVM_VERSION@/lib/libc++.so.* +usr/lib/llvm-@LLVM_VERSION@/lib/libc++-@LLVM_VERSION@.so.* usr/lib/@DEB_HOST_MULTIARCH@ diff --git a/debian/libc++1-X.Y.links.in b/debian/libc++1-X.Y.links.in index 4d1955c5..27a103af 100644 --- a/debian/libc++1-X.Y.links.in +++ b/debian/libc++1-X.Y.links.in @@ -1,2 +1,2 @@ -usr/lib/llvm-@LLVM_VERSION@/lib/libc++.so.1.0 /usr/lib/@DEB_HOST_MULTIARCH@/libc++.so.1.0 -/usr/lib/@DEB_HOST_MULTIARCH@/libc++.so.1.0 /usr/lib/@DEB_HOST_MULTIARCH@/libc++.so.1 +/usr/lib/@DEB_HOST_MULTIARCH@/libc++-@LLVM_VERSION@.so.1.0 /usr/lib/llvm-@LLVM_VERSION@/lib/libc++.so.1.0 +/usr/lib/@DEB_HOST_MULTIARCH@/libc++-@LLVM_VERSION@.so.1 /usr/lib/llvm-@LLVM_VERSION@/lib/libc++.so.1 diff --git a/debian/libc++1-X.Y.lintian-overrides.in b/debian/libc++1-X.Y.lintian-overrides.in index d8d46f92..107251a3 100644 --- a/debian/libc++1-X.Y.lintian-overrides.in +++ b/debian/libc++1-X.Y.lintian-overrides.in @@ -1 +1,2 @@ libc++1-@LLVM_VERSION@: arch-dependent-file-not-in-arch-specific-directory usr/lib/llvm-@LLVM_VERSION@/lib/libc++.so.1.0 +libc++1-@LLVM_VERSION@: ldconfig-symlink-missing-for-shlib usr/lib/*/libc++.so.1 usr/lib/*/libc++-@LLVM_VERSION@.so.1.0 libc++.so.1 diff --git a/debian/libc++abi-X.Y-dev.install.in b/debian/libc++abi-X.Y-dev.install.in index 8774c6ae..6a04f813 100644 --- a/debian/libc++abi-X.Y-dev.install.in +++ b/debian/libc++abi-X.Y-dev.install.in @@ -1,3 +1,3 @@ -usr/lib/llvm-@LLVM_VERSION@/lib/libc++abi*so -usr/lib/llvm-@LLVM_VERSION@/lib/libc++abi.a +usr/lib/llvm-@LLVM_VERSION@/lib/libc++abi-@LLVM_VERSION@*so usr/lib/@DEB_HOST_MULTIARCH@/ +usr/lib/llvm-@LLVM_VERSION@/lib/libc++abi-@LLVM_VERSION@.a usr/lib/@DEB_HOST_MULTIARCH@/ libcxxabi/include/* usr/lib/llvm-@LLVM_VERSION@/include/ diff --git a/debian/libc++abi-X.Y-dev.links.in b/debian/libc++abi-X.Y-dev.links.in index 6dd5f555..eb8f0ffa 100644 --- a/debian/libc++abi-X.Y-dev.links.in +++ b/debian/libc++abi-X.Y-dev.links.in @@ -1 +1,2 @@ -usr/lib/llvm-@LLVM_VERSION@/lib/libc++abi.so /usr/lib/@DEB_HOST_MULTIARCH@/libc++abi.so +usr/lib/@DEB_HOST_MULTIARCH@/libc++abi-@LLVM_VERSION@.so usr/lib/llvm-@LLVM_VERSION@/lib/libc++abi.so +usr/lib/@DEB_HOST_MULTIARCH@/libc++abi-@LLVM_VERSION@.a usr/lib/llvm-@LLVM_VERSION@/lib/libc++abi.a diff --git a/debian/libc++abi1-X.Y.install.in b/debian/libc++abi1-X.Y.install.in index 6e27733d..7940a51b 100644 --- a/debian/libc++abi1-X.Y.install.in +++ b/debian/libc++abi1-X.Y.install.in @@ -1 +1,2 @@ -usr/lib/llvm-@LLVM_VERSION@/lib/libc++abi.so.* +usr/lib/llvm-@LLVM_VERSION@/lib/libc++abi-@LLVM_VERSION@.so.* usr/lib/@DEB_HOST_MULTIARCH@/ +usr/lib/llvm-@LLVM_VERSION@/lib/libc++abi.so.1 diff --git a/debian/libc++abi1-X.Y.links.in b/debian/libc++abi1-X.Y.links.in index a57ef065..754f4d59 100644 --- a/debian/libc++abi1-X.Y.links.in +++ b/debian/libc++abi1-X.Y.links.in @@ -1,2 +1 @@ -usr/lib/llvm-@LLVM_VERSION@/lib/libc++abi.so.1.0 /usr/lib/@DEB_HOST_MULTIARCH@/libc++abi.so.1.0 -/usr/lib/@DEB_HOST_MULTIARCH@/libc++abi.so.1.0 /usr/lib/@DEB_HOST_MULTIARCH@/libc++abi.so.1 +/usr/lib/@DEB_HOST_MULTIARCH@/libc++abi-@LLVM_VERSION@.so.1.0 /usr/lib/llvm-@LLVM_VERSION@/lib/libc++abi.so.1.0 diff --git a/debian/libc++abi1-X.Y.lintian-overrides.in b/debian/libc++abi1-X.Y.lintian-overrides.in index f51d4b1e..7dd1f22f 100644 --- a/debian/libc++abi1-X.Y.lintian-overrides.in +++ b/debian/libc++abi1-X.Y.lintian-overrides.in @@ -1 +1,2 @@ libc++abi1-@LLVM_VERSION@: arch-dependent-file-not-in-arch-specific-directory usr/lib/llvm-@LLVM_VERSION@/lib/libc++abi.so.1.0 +libc++abi1-@LLVM_VERSION@: ldconfig-symlink-missing-for-shlib usr/lib/*/libc++abi.so.1 usr/lib/*/libc++abi-@LLVM_VERSION@.so.1.0 libc++abi.so.1 From caa6d6aeadc413132f58b8bcede1ec6f1d26cc73 Mon Sep 17 00:00:00 2001 From: Reshabh Sharma Date: Fri, 14 Sep 2018 00:09:25 +0530 Subject: [PATCH 3/9] update test with libc++ include and library paths --- debian/qualify-clang.sh | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/debian/qualify-clang.sh b/debian/qualify-clang.sh index 8dcbb7af..f741af89 100644 --- a/debian/qualify-clang.sh +++ b/debian/qualify-clang.sh @@ -182,7 +182,7 @@ int main(void) { printf("thread %d\n", omp_get_thread_num()); } ' > foo.c -clang-$VERSION foo.c -fopenmp -o o +clang-$VERSION foo.c -L/usr/lib/llvm-$VERSION/lib -fopenmp -o o ./o > /dev/null if test ! -f /usr/lib/llvm-$VERSION/include/c++/v1/vector; then @@ -208,7 +208,7 @@ int main(void) { } return 0; }' > foo.cpp -clang++-$VERSION -stdlib=libc++ foo.cpp -o o +clang++-$VERSION -stdlib=libc++ -L/usr/lib/llvm-$VERSION/lib -I/usr/lib/llvm-$VERSION/include/c++ foo.cpp -o o if ! ldd o 2>&1|grep -q libc++.so.1; then # if ! ./a.out 2>&1 | -q -E "(Test unit written|PreferSmall)"; then echo "not linked against libc++.so.1" @@ -220,9 +220,9 @@ if ! ldd o 2>&1|grep -q libc++abi.so.1; then fi ./o > /dev/null -clang++-$VERSION -std=c++11 -stdlib=libc++ foo.cpp -o o +clang++-$VERSION -std=c++11 -stdlib=libc++ -L/usr/lib/llvm-$VERSION/lib -I/usr/lib/llvm-$VERSION/include/c++ foo.cpp -o o ./o > /dev/null -clang++-$VERSION -std=c++14 -stdlib=libc++ foo.cpp -lc++experimental -o o +clang++-$VERSION -std=c++14 -stdlib=libc++ -L/usr/lib/llvm-$VERSION/lib -I/usr/lib/llvm-$VERSION/include/c++ foo.cpp -lc++experimental -o o ./o > /dev/null if test ! -f /usr/lib/llvm-$VERSION/include/cxxabi.h; then @@ -231,7 +231,7 @@ if test ! -f /usr/lib/llvm-$VERSION/include/cxxabi.h; then fi # Force the usage of libc++abi -clang++-$VERSION -stdlib=libc++ -lc++abi foo.cpp -o o +clang++-$VERSION -stdlib=libc++ -lc++abi -L/usr/lib/llvm-$VERSION/lib -I/usr/lib/llvm-$VERSION/include/c++ foo.cpp -o o ./o > /dev/null if ! ldd o 2>&1|grep -q libc++abi.so.1; then echo "not linked against libc++abi.so.1" @@ -239,7 +239,7 @@ if ! ldd o 2>&1|grep -q libc++abi.so.1; then fi # Use the libc++abi and uses the libstc++ headers -clang++-$VERSION -lc++abi foo.cpp -o o +clang++-$VERSION -lc++abi -L/usr/lib/llvm-$VERSION/lib -I/usr/lib/llvm-$VERSION/include/c++ foo.cpp -o o ./o > /dev/null if ! ldd o 2>&1|grep -q libstdc++.so.; then echo "not linked against libstdc++" @@ -257,13 +257,13 @@ int main() { std::filesystem::path >::value, ""); }' > foo.cpp -clang++-$VERSION -std=c++17 -stdlib=libc++ foo.cpp -lc++experimental -lc++fs -o o +clang++-$VERSION -std=c++17 -stdlib=libc++ -L/usr/lib/llvm-$VERSION/lib -I/usr/lib/llvm-$VERSION/include/c++ foo.cpp -lc++experimental -lc++fs -o o ./o > /dev/null -/usr/lib/llvm-7/bin/clang++-libc++ -std=c++17 foo.cpp -lc++experimental -lc++fs -o o +/usr/lib/llvm-7/bin/clang++-libc++ -std=c++17 -L/usr/lib/llvm-$VERSION/lib -I/usr/lib/llvm-$VERSION/include/c++ foo.cpp -lc++experimental -lc++fs -o o ./o > /dev/null -clang++-libc++-$VERSION -std=c++17 foo.cpp -lc++experimental -lc++fs -o o +clang++-libc++-$VERSION -std=c++17 -L/usr/lib/llvm-$VERSION/lib foo.cpp -I/usr/lib/llvm-$VERSION/include/c++ -lc++experimental -lc++fs -o o ./o > /dev/null g++ -nostdinc++ -I/usr/lib/llvm-$VERSION/bin/../include/c++/v1/ -L/usr/lib/llvm-$VERSION/lib/ \ From 87507c3eaefabed0dc0f45aa2f4dd1dd1b87797c Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 14 Sep 2018 09:29:29 +0200 Subject: [PATCH 4/9] Remove -L & -I as clang search paths will use them --- debian/qualify-clang.sh | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/debian/qualify-clang.sh b/debian/qualify-clang.sh index f741af89..a417f391 100644 --- a/debian/qualify-clang.sh +++ b/debian/qualify-clang.sh @@ -182,7 +182,7 @@ int main(void) { printf("thread %d\n", omp_get_thread_num()); } ' > foo.c -clang-$VERSION foo.c -L/usr/lib/llvm-$VERSION/lib -fopenmp -o o +clang-$VERSION foo.c -fopenmp -o o ./o > /dev/null if test ! -f /usr/lib/llvm-$VERSION/include/c++/v1/vector; then @@ -208,7 +208,7 @@ int main(void) { } return 0; }' > foo.cpp -clang++-$VERSION -stdlib=libc++ -L/usr/lib/llvm-$VERSION/lib -I/usr/lib/llvm-$VERSION/include/c++ foo.cpp -o o +clang++-$VERSION -stdlib=libc++ foo.cpp -o o if ! ldd o 2>&1|grep -q libc++.so.1; then # if ! ./a.out 2>&1 | -q -E "(Test unit written|PreferSmall)"; then echo "not linked against libc++.so.1" @@ -220,9 +220,9 @@ if ! ldd o 2>&1|grep -q libc++abi.so.1; then fi ./o > /dev/null -clang++-$VERSION -std=c++11 -stdlib=libc++ -L/usr/lib/llvm-$VERSION/lib -I/usr/lib/llvm-$VERSION/include/c++ foo.cpp -o o +clang++-$VERSION -std=c++11 -stdlib=libc++ foo.cpp -o o ./o > /dev/null -clang++-$VERSION -std=c++14 -stdlib=libc++ -L/usr/lib/llvm-$VERSION/lib -I/usr/lib/llvm-$VERSION/include/c++ foo.cpp -lc++experimental -o o +clang++-$VERSION -std=c++14 -stdlib=libc++ foo.cpp -lc++experimental -o o ./o > /dev/null if test ! -f /usr/lib/llvm-$VERSION/include/cxxabi.h; then @@ -231,7 +231,7 @@ if test ! -f /usr/lib/llvm-$VERSION/include/cxxabi.h; then fi # Force the usage of libc++abi -clang++-$VERSION -stdlib=libc++ -lc++abi -L/usr/lib/llvm-$VERSION/lib -I/usr/lib/llvm-$VERSION/include/c++ foo.cpp -o o +clang++-$VERSION -stdlib=libc++ -lc++abi foo.cpp -o o ./o > /dev/null if ! ldd o 2>&1|grep -q libc++abi.so.1; then echo "not linked against libc++abi.so.1" @@ -239,7 +239,7 @@ if ! ldd o 2>&1|grep -q libc++abi.so.1; then fi # Use the libc++abi and uses the libstc++ headers -clang++-$VERSION -lc++abi -L/usr/lib/llvm-$VERSION/lib -I/usr/lib/llvm-$VERSION/include/c++ foo.cpp -o o +clang++-$VERSION -lc++abi foo.cpp -o o ./o > /dev/null if ! ldd o 2>&1|grep -q libstdc++.so.; then echo "not linked against libstdc++" @@ -257,13 +257,7 @@ int main() { std::filesystem::path >::value, ""); }' > foo.cpp -clang++-$VERSION -std=c++17 -stdlib=libc++ -L/usr/lib/llvm-$VERSION/lib -I/usr/lib/llvm-$VERSION/include/c++ foo.cpp -lc++experimental -lc++fs -o o -./o > /dev/null - -/usr/lib/llvm-7/bin/clang++-libc++ -std=c++17 -L/usr/lib/llvm-$VERSION/lib -I/usr/lib/llvm-$VERSION/include/c++ foo.cpp -lc++experimental -lc++fs -o o - -./o > /dev/null -clang++-libc++-$VERSION -std=c++17 -L/usr/lib/llvm-$VERSION/lib foo.cpp -I/usr/lib/llvm-$VERSION/include/c++ -lc++experimental -lc++fs -o o +clang++-$VERSION -std=c++17 -stdlib=libc++ foo.cpp -lc++experimental -lc++fs -o o ./o > /dev/null g++ -nostdinc++ -I/usr/lib/llvm-$VERSION/bin/../include/c++/v1/ -L/usr/lib/llvm-$VERSION/lib/ \ From bf2753f032c3452b2e575e5e526b8b3df790a665 Mon Sep 17 00:00:00 2001 From: John Paul Adrian Glaubitz Date: Fri, 14 Sep 2018 09:37:52 +0200 Subject: [PATCH 5/9] Remove trailing whitespace in debian/changelog --- debian/changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 97a349d6..e8ccd96f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,7 +5,7 @@ llvm-toolchain-7 (1:7~+rc3-4) UNRELEASED; urgency=medium [ Reshabh Sharma ] * Make OpenMP packages coinstallable - * Make libc++ packages coinstallable + * Make libc++ packages coinstallable -- Sylvestre Ledru Thu, 13 Sep 2018 15:26:41 +0200 From 3b431b9e8523068456c04a4311993ff44c246a87 Mon Sep 17 00:00:00 2001 From: John Paul Adrian Glaubitz Date: Fri, 14 Sep 2018 09:38:54 +0200 Subject: [PATCH 6/9] Add patch to fix missing MultiArch include dir on powerpcspe --- debian/changelog | 4 ++++ .../powerpcspe-add-missing-include-path.diff | 18 ++++++++++++++++++ debian/patches/series | 2 +- 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 debian/patches/powerpcspe-add-missing-include-path.diff diff --git a/debian/changelog b/debian/changelog index e8ccd96f..d88cebd1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -7,6 +7,10 @@ llvm-toolchain-7 (1:7~+rc3-4) UNRELEASED; urgency=medium * Make OpenMP packages coinstallable * Make libc++ packages coinstallable + [ John Paul Adrian Glaubitz ] + * Add patch to fix missing MultiArch include dir + on powerpcspe (Closes: #908791) + -- Sylvestre Ledru Thu, 13 Sep 2018 15:26:41 +0200 llvm-toolchain-7 (1:7~+rc3-3) unstable; urgency=medium diff --git a/debian/patches/powerpcspe-add-missing-include-path.diff b/debian/patches/powerpcspe-add-missing-include-path.diff new file mode 100644 index 00000000..c3a0b532 --- /dev/null +++ b/debian/patches/powerpcspe-add-missing-include-path.diff @@ -0,0 +1,18 @@ +Description: Fix missing include paths on powerpcspe +Author: John Paul Adrian Glaubitz +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=908791 +Forwarded: https://reviews.llvm.org/D52066 +Last-Update: 2018-09-13 + +--- llvm-toolchain-7-7~+rc3.orig/clang/lib/Driver/ToolChains/Linux.cpp ++++ llvm-toolchain-7-7~+rc3/clang/lib/Driver/ToolChains/Linux.cpp +@@ -700,7 +700,8 @@ void Linux::AddClangSystemIncludeArgs(co + "/usr/include/mips64el-linux-gnu", + "/usr/include/mips64el-linux-gnuabi64"}; + const StringRef PPCMultiarchIncludeDirs[] = { +- "/usr/include/powerpc-linux-gnu"}; ++ "/usr/include/powerpc-linux-gnu", ++ "/usr/include/powerpc-linux-gnuspe"}; + const StringRef PPC64MultiarchIncludeDirs[] = { + "/usr/include/powerpc64-linux-gnu"}; + const StringRef PPC64LEMultiarchIncludeDirs[] = { diff --git a/debian/patches/series b/debian/patches/series index b9e45846..bb39eeb4 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -52,6 +52,7 @@ remove-test-freezing.diff 0048-Set-html_static_path-_static-everywhere.patch 0049-Use-Debian-provided-MathJax-everywhere.patch impl-path-hurd.diff +powerpcspe-add-missing-include-path.diff # OpenMP @@ -72,4 +73,3 @@ libcxx-silent-failure-arm64.diff D51108-rust-powerpc.diff disable-sse2-old-x86.diff - From 8c14b314a6fbb62dd2fcbe4f8185752787ba7eb0 Mon Sep 17 00:00:00 2001 From: John Paul Adrian Glaubitz Date: Fri, 14 Sep 2018 10:00:28 +0200 Subject: [PATCH 7/9] Disable LLDB on riscv64 --- debian/changelog | 1 + debian/rules | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index d88cebd1..0e6190ff 100644 --- a/debian/changelog +++ b/debian/changelog @@ -10,6 +10,7 @@ llvm-toolchain-7 (1:7~+rc3-4) UNRELEASED; urgency=medium [ John Paul Adrian Glaubitz ] * Add patch to fix missing MultiArch include dir on powerpcspe (Closes: #908791) + * Disable LLDB on riscv64 -- Sylvestre Ledru Thu, 13 Sep 2018 15:26:41 +0200 diff --git a/debian/rules b/debian/rules index d4cc6d48..50a46a59 100755 --- a/debian/rules +++ b/debian/rules @@ -163,7 +163,7 @@ else endif LLDB_ENABLE=yes -LLDB_DISABLE_ARCHS := hurd-i386 ia64 powerpc powerpcspe ppc64 s390x sparc64 +LLDB_DISABLE_ARCHS := hurd-i386 ia64 powerpc powerpcspe ppc64 riscv64 s390x sparc64 # hurd has threading issues ifeq (,$(filter-out $(LLDB_DISABLE_ARCHS), $(DEB_HOST_ARCH))) # Disable LLDB for this arch. From f7138055e89bf487f9ebb76ddc1a49d211eb87cc Mon Sep 17 00:00:00 2001 From: Reshabh Sharma Date: Fri, 14 Sep 2018 14:27:49 +0530 Subject: [PATCH 8/9] update libc++*.a with version in dh_strip exception --- debian/rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/rules b/debian/rules index d4cc6d48..c9168812 100755 --- a/debian/rules +++ b/debian/rules @@ -636,7 +636,7 @@ endif # endif ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' binutils) ge 2.28 ; echo $$?),0) # strip segfaults on libFuzzer.a - dh_strip -a -v -XlibFuzzer.a -Xlibc++.a -Xlibc++abi.a -Xlibc++experimental.a + dh_strip -a -v -XlibFuzzer.a -Xlibc++-$(LLVM_VERSION).a -Xlibc++abi-$(LLVM_VERSION).a -Xlibc++experimental.a else dh_strip -a -v endif From f1bcd50fa31c8ff522eaad79b51380e51be3fb16 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 14 Sep 2018 11:27:35 +0200 Subject: [PATCH 9/9] improve the changelog --- debian/changelog | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/debian/changelog b/debian/changelog index 0e6190ff..9711e463 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,15 +4,15 @@ llvm-toolchain-7 (1:7~+rc3-4) UNRELEASED; urgency=medium * libc++-7-dev doesn't provide libstdc++-dev anymore (Closes: #908738) [ Reshabh Sharma ] - * Make OpenMP packages coinstallable - * Make libc++ packages coinstallable + * Make OpenMP packages coinstallable from version 7 + * Make libc++ packages coinstallable from version 7 [ John Paul Adrian Glaubitz ] * Add patch to fix missing MultiArch include dir on powerpcspe (Closes: #908791) * Disable LLDB on riscv64 - -- Sylvestre Ledru Thu, 13 Sep 2018 15:26:41 +0200 + -- Sylvestre Ledru Fri, 14 Sep 2018 11:27:28 +0200 llvm-toolchain-7 (1:7~+rc3-3) unstable; urgency=medium