diff --git a/debian/changelog b/debian/changelog index 637ea597..0aeeded2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,15 @@ llvm-toolchain-snapshot (1:10~svn370407-1~exp1) experimental; urgency=medium * New snapshot release + * Update of the license file. Upstream moved to Apache 2 + with LLVM exception (Closes: #935149) + * 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 + * Rename libclang-cpp1-10 to libclang-cpp10 to match the soname and libllvm10 + naming (at some point, all libs should do that ...) -- Sylvestre Ledru Thu, 29 Aug 2019 23:08:07 +0200 @@ -55,11 +64,22 @@ 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~+rc2-1~exp3) experimental; urgency=medium +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 + * 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 + + * New snapshot release * Update of the license file. Upstream moved to Apache 2 with LLVM exception (Closes: #935149) - * experimental New snapshot release * remove 0050-Remove-explicit-python-version-list.patch bug-43011-mips.diff as they are merged upstream * llvm-9-dev depends on llvm-9-tools @@ -71,6 +91,17 @@ llvm-toolchain-9 (1:9~+rc2-1~exp3) experimental; urgency=medium to fix an issue on xenial * Add clangd-X => libclang-common-X-dev dependency See https://bugs.llvm.org/show_bug.cgi?id=43152 + * Remove the -lc++experimental test from the qualify-clang.sh script + as the lib has been removed in 9~svn366022-1~exp1 + * Also install libclang-cpp in /usr/lib/llvm-X/lib/libclang-cpp.so.X + * Improve the fix-clang-path-and-build.diff patch + If this package was built with libclang-common installed on the system, + it could fail with 'use of undeclared identifier' because + #include_next was failing as it was expecting the next header to be + libstdc++ + Now, if the local build headers are found, don't include system's + * Rename libclang-cpp1-9 to libclang-cpp9 to match the soname and libllvm9 + naming (at some point, all libs should do that ...) -- Sylvestre Ledru Tue, 27 Aug 2019 23:38:11 +0200 diff --git a/debian/control b/debian/control index 4e67456c..e00395f1 100644 --- a/debian/control +++ b/debian/control @@ -168,10 +168,20 @@ Description: Clang library - Common development package (profiling, etc). Package: libclang-cpp1-10 +Depends: libclang-cpp10, ${misc:Depends} +Architecture: all +Priority: optional +Section: oldlibs +Description: transitional package + This is a transitional package. It can safely be removed. + +Package: libclang-cpp10 Section: libs Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Pre-Depends: ${misc:Pre-Depends} +Replaces: libclang-cpp1-10 (<< 1:10~svn370407-1~exp1) +Breaks: libclang-cpp1-10 (<< 1:10~svn370407-1~exp1) Description: C++ interface to the Clang library 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 diff --git a/debian/copyright b/debian/copyright index ce3c541b..67a433cf 100644 --- a/debian/copyright +++ b/debian/copyright @@ -5,210 +5,8 @@ Source: https://llvm.org/releases/download.html Files: * Copyright: 2003-2017 University of Illinois at Urbana-Champaign. License: APACHE-2-LLVM-EXCEPTIONS - ============================================================================== - The LLVM Project is under the Apache License v2.0 with LLVM Exceptions: - ============================================================================== - . - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - . - 1. Definitions. - . - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - . - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - . - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - . - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - . - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - . - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - . - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - . - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - . - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - . - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - . - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - . - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - . - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - . - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - . - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - . - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - . - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - . - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - . - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - . - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - . - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - . - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - . - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - . - END OF TERMS AND CONDITIONS - . - APPENDIX: How to apply the Apache License to your work. - . - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - . - Copyright [yyyy] [name of copyright owner] - . - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - . - http://www.apache.org/licenses/LICENSE-2.0 - . - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. + On Debian systems the full text of the Apache Software License 2.0 can be + found in the `/usr/share/common-licenses/Apache-2.0' file. . ---- LLVM Exceptions to the Apache 2.0 License ---- . diff --git a/debian/libclang-cpp1-X.Y.install.in b/debian/libclang-cpp1-X.Y.install.in deleted file mode 100644 index 2401c6a5..00000000 --- a/debian/libclang-cpp1-X.Y.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so.@LLVM_VERSION@ /usr/lib/@DEB_HOST_MULTIARCH@/ diff --git a/debian/libclang-cpp1-X.Y.lintian-overrides.in b/debian/libclang-cpp1-X.Y.lintian-overrides.in deleted file mode 100644 index 37ce714c..00000000 --- a/debian/libclang-cpp1-X.Y.lintian-overrides.in +++ /dev/null @@ -1,2 +0,0 @@ -# I know and I am not planning to change that yet. -libclang-cpp1-@LLVM_VERSION@: package-name-doesnt-match-sonames libclang-cpp@LLVM_VERSION@ diff --git a/debian/libclang-cppX.Y.install.in b/debian/libclang-cppX.Y.install.in new file mode 100644 index 00000000..9edfbeff --- /dev/null +++ b/debian/libclang-cppX.Y.install.in @@ -0,0 +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/libclang-cppX.Y.links.in b/debian/libclang-cppX.Y.links.in new file mode 100644 index 00000000..4f534bd0 --- /dev/null +++ b/debian/libclang-cppX.Y.links.in @@ -0,0 +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 diff --git a/debian/patches/fix-clang-path-and-build.diff b/debian/patches/fix-clang-path-and-build.diff index 74736ad5..c2793e95 100644 --- a/debian/patches/fix-clang-path-and-build.diff +++ b/debian/patches/fix-clang-path-and-build.diff @@ -1,31 +1,30 @@ ---- - clang/lib/Driver/ToolChains.cpp | 2 ++ - 1 file changed, 2 insertions(+) - -Index: llvm-toolchain-snapshot_10~svn370025/clang/lib/Driver/ToolChains/Gnu.cpp +Index: llvm-toolchain-9-9~+rc3/clang/lib/Driver/ToolChains/Linux.cpp =================================================================== ---- llvm-toolchain-snapshot_10~svn370025.orig/clang/lib/Driver/ToolChains/Gnu.cpp -+++ llvm-toolchain-snapshot_10~svn370025/clang/lib/Driver/ToolChains/Gnu.cpp -@@ -1,4 +1,5 @@ --//===--- Gnu.cpp - Gnu Tool and ToolChain Implementations -------*- C++ -*-===// -+//===--- Gnu.cpp - Gnu Tool and ToolChain Implementations -------*- C++ -+//-*-===// - // - // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - // See https://llvm.org/LICENSE.txt for license information. -@@ -15,6 +16,7 @@ - #include "Arch/SystemZ.h" +--- llvm-toolchain-9-9~+rc3.orig/clang/lib/Driver/ToolChains/Linux.cpp ++++ llvm-toolchain-9-9~+rc3/clang/lib/Driver/ToolChains/Linux.cpp +@@ -12,6 +12,7 @@ + #include "Arch/PPC.h" + #include "Arch/RISCV.h" #include "CommonArgs.h" - #include "Linux.h" +#include "clang/Basic/Version.h" - #include "clang/Config/config.h" // for GCC_INSTALL_PREFIX - #include "clang/Driver/Compilation.h" + #include "clang/Config/config.h" + #include "clang/Driver/Distro.h" #include "clang/Driver/Driver.h" -@@ -2612,6 +2614,7 @@ void Generic_GCC::AddClangCXXStdlibInclu - addLibStdCxxIncludePaths(DriverArgs, CC1Args); - break; +@@ -665,7 +666,16 @@ void Linux::AddClangSystemIncludeArgs(co + if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) { + SmallString<128> P(D.ResourceDir); + llvm::sys::path::append(P, "include"); +- addSystemInclude(DriverArgs, CC1Args, P); ++ if (llvm::sys::fs::exists(P)) { ++ /* Include the build include directory only ++ * Otherwise, it fails with stage2 when clang headers are available on the system ++ * they usually fail because of the include_next. Two llvm/clang headers are found ++ * while we are waiting for the lib C++ (std or not) ++ */ ++ addSystemInclude(DriverArgs, CC1Args, P); ++ } else { ++ addSystemInclude(DriverArgs, CC1Args, "/usr/include/clang/" + std::string(CLANG_VERSION_STRING) + "/include/"); ++ } } -+ addSystemInclude(DriverArgs, CC1Args, "/usr/include/clang/" + std::string(CLANG_VERSION_STRING) + "/include/"); - } - void + if (DriverArgs.hasArg(options::OPT_nostdlibinc)) diff --git a/debian/qualify-clang.sh b/debian/qualify-clang.sh index c6beff2a..137b3795 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,14 @@ 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 -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 @@ -379,7 +387,7 @@ struct g { typedef f::e c; }; class h { - struct : g::c {}; + struct : g::c { int i; }; }; struct m { h i; @@ -517,8 +525,6 @@ fi ./o > /dev/null clang++-$VERSION -std=c++11 -stdlib=libc++ foo.cpp -o o ./o > /dev/null -clang++-$VERSION -std=c++14 -stdlib=libc++ foo.cpp -lc++experimental -o o -./o > /dev/null # Bug 889832 echo '#include @@ -556,7 +562,7 @@ int main() { std::filesystem::path >::value, ""); }' > foo.cpp -clang++-$VERSION -std=c++17 -stdlib=libc++ foo.cpp -lc++experimental -o o +clang++-$VERSION -std=c++17 -stdlib=libc++ foo.cpp -o o ./o > /dev/null # Bug LP#1586215 @@ -641,7 +647,8 @@ int main() } " > foo.c clang-$VERSION -O3 -mllvm -polly foo.c -clang-$VERSION -O3 -mllvm -polly -mllvm -polly-parallel -lgomp foo.c +# Comment because of https://bugs.llvm.org/show_bug.cgi?id=43164 +# clang-$VERSION -O3 -mllvm -polly -mllvm -lgomp -polly-parallel foo.c clang-$VERSION -O3 -mllvm -polly -mllvm -polly-vectorizer=stripmine foo.c clang-$VERSION -S -fsave-optimization-record -emit-llvm foo.c -o matmul.s opt-$VERSION -S -polly-canonicalize matmul.s > matmul.preopt.ll > /dev/null @@ -842,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 @@ -869,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 diff --git a/debian/rules b/debian/rules index 96ed5de7..e6a5ac9e 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 @@ -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" @@ -576,6 +576,11 @@ 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.$(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; \ ln -s libomp.so.$(SONAME_OPENMP) libomp.so @@ -707,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: