From df36a469d77312f6dc0dccf08252542c16cf3308 Mon Sep 17 00:00:00 2001 From: Igor Pashev Date: Thu, 29 Dec 2016 13:40:27 +0300 Subject: llvm-toolchain-3.8 (1:3.8.1-16) --- debian/NEWS | 5 + debian/README.source | 5 + debian/TODO | 6 + debian/changelog | 1283 ++++++++++++++++++++ debian/clang-X.Y-doc.docs.in | 2 + debian/clang-X.Y-examples.examples.in | 1 + debian/clang-X.Y.install.in | 40 + debian/clang-X.Y.links.in | 3 + debian/clang-X.Y.lintian-overrides.in | 8 + debian/clang-X.Y.manpages.in | 5 + debian/clang-format-X.Y.install.in | 10 + debian/clang-format-X.Y.lintian-overrides.in | 4 + debian/clang-format-X.Y.manpages.in | 3 + debian/clang-tidy-X.Y.install.in | 5 + debian/clang-tidy-X.Y.links.in | 3 + debian/clang-tidy-X.Y.lintian-overrides.in | 3 + debian/clang-tidy-X.Y.manpages.in | 1 + debian/compat | 1 + debian/control | 474 ++++++++ debian/copyright | 428 +++++++ debian/debian_path.h | 16 + debian/libclang-X.Y-dev.install.in | 9 + debian/libclang-X.Y-dev.links.in | 3 + debian/libclang-common-X.Y-dev.install.in | 14 + debian/libclang-common-X.Y-dev.links.in | 7 + debian/libclang1-X.Y.install.in | 2 + debian/libclang1-X.Y.links.in | 3 + debian/libclang1-X.Y.lintian-overrides.in | 5 + debian/libclang1-X.Y.symbols.in | 323 +++++ debian/liblldb-X.Y-dev.install.in | 5 + debian/liblldb-X.Y.install.in | 2 + debian/liblldb-X.Y.links.in | 3 + debian/liblldb-X.Y.lintian-overrides.in | 5 + debian/libllvm-X.Y-ocaml-dev.META.in | 63 + debian/libllvm-X.Y-ocaml-dev.dirs.in | 2 + debian/libllvm-X.Y-ocaml-dev.install.in | 2 + debian/libllvm-X.Y-ocaml-dev.lintian-overrides.in | 2 + debian/libllvmX.Y.install.in | 1 + debian/libllvmX.Y.links.in | 4 + debian/libllvmX.Y.lintian-overrides.in | 2 + debian/lldb-X.Y.install.in | 9 + debian/lldb-X.Y.lintian-overrides.in | 3 + debian/lldb-X.Y.manpages.in | 2 + debian/lldb-X.Y.postinst.in | 8 + debian/llvm-X.Y-dev.dirs.in | 5 + debian/llvm-X.Y-dev.install.in | 31 + debian/llvm-X.Y-dev.links.in | 18 + debian/llvm-X.Y-doc.dirs.in | 1 + debian/llvm-X.Y-doc.install.in | 6 + debian/llvm-X.Y-examples.dirs.in | 1 + debian/llvm-X.Y-examples.examples.in | 1 + debian/llvm-X.Y-examples.links.in | 3 + debian/llvm-X.Y-runtime.binfmt.in | 3 + debian/llvm-X.Y-runtime.install.in | 6 + debian/llvm-X.Y-runtime.lintian-overrides.in | 1 + debian/llvm-X.Y-runtime.manpages.in | 1 + debian/llvm-X.Y-runtime.postinst.in | 11 + debian/llvm-X.Y-runtime.prerm.in | 18 + debian/llvm-X.Y-tools.dirs.in | 2 + debian/llvm-X.Y-tools.install.in | 9 + debian/llvm-X.Y.dirs.in | 3 + debian/llvm-X.Y.install.in | 14 + debian/llvm-X.Y.lintian-overrides.in | 8 + debian/llvm-X.Y.manpages.in | 9 + debian/llvm-priv-dev.dirs | 1 + debian/orig-tar.sh | 191 +++ .../0003-Debian-version-info-and-bugreport.patch | 15 + debian/patches/0021-shared-lib-debian.patch | 26 + debian/patches/0023-link-libopagent.patch | 33 + debian/patches/0044-soname.diff | 32 + debian/patches/18-soname.patch | 21 + debian/patches/19-clang_debian_version.patch | 21 + .../23-strlcpy_strlcat_warning_removed.diff | 198 +++ debian/patches/26-set-correct-float-abi.diff | 33 + debian/patches/27-fix_clang_stdint.diff | 29 + debian/patches/31-powerpcspe.diff | 15 + debian/patches/34-powerpc-no-altivec.diff | 24 + ...3529-Sema-part-of-attrbute-abi_tag-support.diff | 322 +++++ ...9-Mangler-part-of-attrbute-abi_tag-support.diff | 1234 +++++++++++++++++++ debian/patches/asan-glibc-2.24.diff | 81 ++ debian/patches/atomic_library_1.diff | 45 + debian/patches/atomic_library_2.diff | 42 + debian/patches/clang-analyzer-force-version.diff | 25 + debian/patches/clang-apply-replacements.diff | 35 + debian/patches/clang-format-version.diff | 39 + debian/patches/clang-tidy-run-bin.diff | 17 + debian/patches/compiler-rt-i586.diff | 34 + debian/patches/compiler-rt-path.diff | 13 + debian/patches/declare_clear_cache.diff | 13 + .../disable-display-PASS-UNSUPPORTED-XFAIL.diff | 17 + debian/patches/disable-execinfo-usage.diff | 13 + debian/patches/do-not-fail-on-unexpected-pass.diff | 13 + debian/patches/fix-clang-path-and-build.diff | 13 + debian/patches/fix-cmake-config-prefix.diff | 46 + debian/patches/fix-llvm-config-obj-src-root.patch | 16 + debian/patches/follow-parallel-var.diff | 16 + debian/patches/force-gcc-header-obj.diff | 16 + debian/patches/force-link-pass.o.diff | 28 + debian/patches/hurd-EIEIO-undef.diff | 14 + debian/patches/hurd-pathmax.diff | 59 + debian/patches/kfreebsd-support.diff | 85 ++ debian/patches/lit-force-lang.diff | 13 + debian/patches/lldb-arm64.diff | 12 + ...-dont-assume-64bit-systems-are-all-x86-64.patch | 18 + debian/patches/lldb-libname.diff | 13 + debian/patches/lldb-link-atomic-cmake.patch | 19 + debian/patches/lldb-link-atomic.diff | 15 + debian/patches/lldb-soname.diff | 67 + .../llvm25468-lldb-swig-format-security.diff | 14 + debian/patches/llvm26003-sanitizer-check-env.diff | 11 + debian/patches/mips-fpxx-enable.diff | 13 + debian/patches/python-clangpath.diff | 13 + debian/patches/removeduplicatedeclaration.diff | 38 + debian/patches/scan-build-clang-path.diff | 13 + debian/patches/scan-view-fix-path.diff | 11 + debian/patches/series | 55 + debian/patches/silent-MCJIIT-tests.diff | 250 ++++ debian/patches/silent-llvm-symbolizer.diff | 12 + debian/patches/silent-more-tests.diff | 84 ++ debian/patches/strip-svn.diff | 0 debian/patches/ubuntu-precise-compiler-rt.diff | 23 + debian/patches/unwind-chain-inclusion.diff | 39 + .../upstream-asan-msan-fix-reallocation-logic.diff | 54 + ...stream-msan-prevent-initialization-failure.diff | 124 ++ debian/patches/use-deb-json.diff | 94 ++ debian/pollycc.in | 3 + debian/prepare-new-release.sh | 17 + debian/python-clang-X.Y.install.in | 1 + debian/python-lldb-X.Y.install.in | 1 + debian/python-lldb-X.Y.links.in | 6 + debian/rules | 598 +++++++++ debian/source.lintian-overrides | 6 + debian/source/format | 1 + debian/watch | 4 + 134 files changed, 7453 insertions(+) create mode 100644 debian/NEWS create mode 100644 debian/README.source create mode 100644 debian/TODO create mode 100644 debian/changelog create mode 100644 debian/clang-X.Y-doc.docs.in create mode 100644 debian/clang-X.Y-examples.examples.in create mode 100644 debian/clang-X.Y.install.in create mode 100644 debian/clang-X.Y.links.in create mode 100644 debian/clang-X.Y.lintian-overrides.in create mode 100644 debian/clang-X.Y.manpages.in create mode 100644 debian/clang-format-X.Y.install.in create mode 100644 debian/clang-format-X.Y.lintian-overrides.in create mode 100644 debian/clang-format-X.Y.manpages.in create mode 100644 debian/clang-tidy-X.Y.install.in create mode 100644 debian/clang-tidy-X.Y.links.in create mode 100644 debian/clang-tidy-X.Y.lintian-overrides.in create mode 100644 debian/clang-tidy-X.Y.manpages.in create mode 100644 debian/compat create mode 100644 debian/control create mode 100644 debian/copyright create mode 100644 debian/debian_path.h create mode 100644 debian/libclang-X.Y-dev.install.in create mode 100644 debian/libclang-X.Y-dev.links.in create mode 100644 debian/libclang-common-X.Y-dev.install.in create mode 100644 debian/libclang-common-X.Y-dev.links.in create mode 100644 debian/libclang1-X.Y.install.in create mode 100644 debian/libclang1-X.Y.links.in create mode 100644 debian/libclang1-X.Y.lintian-overrides.in create mode 100644 debian/libclang1-X.Y.symbols.in create mode 100644 debian/liblldb-X.Y-dev.install.in create mode 100644 debian/liblldb-X.Y.install.in create mode 100644 debian/liblldb-X.Y.links.in create mode 100644 debian/liblldb-X.Y.lintian-overrides.in create mode 100644 debian/libllvm-X.Y-ocaml-dev.META.in create mode 100644 debian/libllvm-X.Y-ocaml-dev.dirs.in create mode 100644 debian/libllvm-X.Y-ocaml-dev.install.in create mode 100644 debian/libllvm-X.Y-ocaml-dev.lintian-overrides.in create mode 100644 debian/libllvmX.Y.install.in create mode 100644 debian/libllvmX.Y.links.in create mode 100644 debian/libllvmX.Y.lintian-overrides.in create mode 100644 debian/lldb-X.Y.install.in create mode 100644 debian/lldb-X.Y.lintian-overrides.in create mode 100644 debian/lldb-X.Y.manpages.in create mode 100644 debian/lldb-X.Y.postinst.in create mode 100644 debian/llvm-X.Y-dev.dirs.in create mode 100644 debian/llvm-X.Y-dev.install.in create mode 100644 debian/llvm-X.Y-dev.links.in create mode 100644 debian/llvm-X.Y-doc.dirs.in create mode 100644 debian/llvm-X.Y-doc.install.in create mode 100644 debian/llvm-X.Y-examples.dirs.in create mode 100644 debian/llvm-X.Y-examples.examples.in create mode 100644 debian/llvm-X.Y-examples.links.in create mode 100644 debian/llvm-X.Y-runtime.binfmt.in create mode 100644 debian/llvm-X.Y-runtime.install.in create mode 100644 debian/llvm-X.Y-runtime.lintian-overrides.in create mode 100644 debian/llvm-X.Y-runtime.manpages.in create mode 100644 debian/llvm-X.Y-runtime.postinst.in create mode 100644 debian/llvm-X.Y-runtime.prerm.in create mode 100644 debian/llvm-X.Y-tools.dirs.in create mode 100644 debian/llvm-X.Y-tools.install.in create mode 100644 debian/llvm-X.Y.dirs.in create mode 100644 debian/llvm-X.Y.install.in create mode 100644 debian/llvm-X.Y.lintian-overrides.in create mode 100644 debian/llvm-X.Y.manpages.in create mode 100644 debian/llvm-priv-dev.dirs create mode 100755 debian/orig-tar.sh create mode 100644 debian/patches/0003-Debian-version-info-and-bugreport.patch create mode 100644 debian/patches/0021-shared-lib-debian.patch create mode 100644 debian/patches/0023-link-libopagent.patch create mode 100644 debian/patches/0044-soname.diff create mode 100644 debian/patches/18-soname.patch create mode 100644 debian/patches/19-clang_debian_version.patch create mode 100644 debian/patches/23-strlcpy_strlcat_warning_removed.diff create mode 100644 debian/patches/26-set-correct-float-abi.diff create mode 100644 debian/patches/27-fix_clang_stdint.diff create mode 100644 debian/patches/31-powerpcspe.diff create mode 100644 debian/patches/34-powerpc-no-altivec.diff create mode 100644 debian/patches/D17567-PR23529-Sema-part-of-attrbute-abi_tag-support.diff create mode 100644 debian/patches/D18035-PR23529-Mangler-part-of-attrbute-abi_tag-support.diff create mode 100644 debian/patches/asan-glibc-2.24.diff create mode 100644 debian/patches/atomic_library_1.diff create mode 100644 debian/patches/atomic_library_2.diff create mode 100644 debian/patches/clang-analyzer-force-version.diff create mode 100644 debian/patches/clang-apply-replacements.diff create mode 100644 debian/patches/clang-format-version.diff create mode 100644 debian/patches/clang-tidy-run-bin.diff create mode 100644 debian/patches/compiler-rt-i586.diff create mode 100644 debian/patches/compiler-rt-path.diff create mode 100644 debian/patches/declare_clear_cache.diff create mode 100644 debian/patches/disable-display-PASS-UNSUPPORTED-XFAIL.diff create mode 100644 debian/patches/disable-execinfo-usage.diff create mode 100644 debian/patches/do-not-fail-on-unexpected-pass.diff create mode 100644 debian/patches/fix-clang-path-and-build.diff create mode 100644 debian/patches/fix-cmake-config-prefix.diff create mode 100644 debian/patches/fix-llvm-config-obj-src-root.patch create mode 100644 debian/patches/follow-parallel-var.diff create mode 100644 debian/patches/force-gcc-header-obj.diff create mode 100644 debian/patches/force-link-pass.o.diff create mode 100644 debian/patches/hurd-EIEIO-undef.diff create mode 100644 debian/patches/hurd-pathmax.diff create mode 100644 debian/patches/kfreebsd-support.diff create mode 100644 debian/patches/lit-force-lang.diff create mode 100644 debian/patches/lldb-arm64.diff create mode 100644 debian/patches/lldb-dont-assume-64bit-systems-are-all-x86-64.patch create mode 100644 debian/patches/lldb-libname.diff create mode 100644 debian/patches/lldb-link-atomic-cmake.patch create mode 100644 debian/patches/lldb-link-atomic.diff create mode 100644 debian/patches/lldb-soname.diff create mode 100644 debian/patches/llvm25468-lldb-swig-format-security.diff create mode 100644 debian/patches/llvm26003-sanitizer-check-env.diff create mode 100644 debian/patches/mips-fpxx-enable.diff create mode 100644 debian/patches/python-clangpath.diff create mode 100644 debian/patches/removeduplicatedeclaration.diff create mode 100644 debian/patches/scan-build-clang-path.diff create mode 100644 debian/patches/scan-view-fix-path.diff create mode 100644 debian/patches/series create mode 100644 debian/patches/silent-MCJIIT-tests.diff create mode 100644 debian/patches/silent-llvm-symbolizer.diff create mode 100644 debian/patches/silent-more-tests.diff create mode 100644 debian/patches/strip-svn.diff create mode 100644 debian/patches/ubuntu-precise-compiler-rt.diff create mode 100644 debian/patches/unwind-chain-inclusion.diff create mode 100644 debian/patches/upstream-asan-msan-fix-reallocation-logic.diff create mode 100644 debian/patches/upstream-msan-prevent-initialization-failure.diff create mode 100644 debian/patches/use-deb-json.diff create mode 100755 debian/pollycc.in create mode 100644 debian/prepare-new-release.sh create mode 100644 debian/python-clang-X.Y.install.in create mode 100644 debian/python-lldb-X.Y.install.in create mode 100644 debian/python-lldb-X.Y.links.in create mode 100755 debian/rules create mode 100644 debian/source.lintian-overrides create mode 100644 debian/source/format create mode 100644 debian/watch diff --git a/debian/NEWS b/debian/NEWS new file mode 100644 index 0000000..91160e6 --- /dev/null +++ b/debian/NEWS @@ -0,0 +1,5 @@ +llvm-toolchain-snapshot (1:3.6~svn214630-1~exp1) experimental; urgency=medium + + * clang is now co-instalable. Available on version 3.4, 3.5 and 3.6 + + -- Sylvestre Ledru Sat, 02 Aug 2014 12:57:41 +0200 diff --git a/debian/README.source b/debian/README.source new file mode 100644 index 0000000..deeb3f2 --- /dev/null +++ b/debian/README.source @@ -0,0 +1,5 @@ + +Repack of the snapshot release are done with orig-tar.sh which will checkout the sources. + + -- Sylvestre Ledru , Tue, 26 Feb 2013 14:57:56 +0100 + diff --git a/debian/TODO b/debian/TODO new file mode 100644 index 0000000..0ce53db --- /dev/null +++ b/debian/TODO @@ -0,0 +1,6 @@ +* add the support of libclang in llvm default (for now, it is +called libclang1-3.3.so) + +* move the header at the right place in libclang-dev + +* bootstrap of clang with itself diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..8156d8a --- /dev/null +++ b/debian/changelog @@ -0,0 +1,1283 @@ +llvm-toolchain-3.8 (1:3.8.1-16) unstable; urgency=medium + + * Fix segfaults in the memory sanitizers (Closes: #842642) + Caused by the newer glibc. Many thanks for Nobert Lange for everything + * Enable the sanitizers testsuite + + -- Sylvestre Ledru Fri, 11 Nov 2016 16:14:31 +0100 + +llvm-toolchain-3.8 (1:3.8.1-15) unstable; urgency=medium + + * Limit build-deps on g++-multilib where it is available: + amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel powerpc ppc64 s390 + s390x sparc sparc64 x32 + + -- Sylvestre Ledru Sun, 06 Nov 2016 15:44:34 +0100 + +llvm-toolchain-3.8 (1:3.8.1-14) unstable; urgency=medium + + * libclang-common-3.8-dev: missing multilib binaries for the sanitizer + libraries (Closes: #841923) + Many thanks to Norbert Lange for the changes + + -- Sylvestre Ledru Sat, 05 Nov 2016 14:31:41 +0100 + +llvm-toolchain-3.8 (1:3.8.1-13) unstable; urgency=medium + + * Fix a version issue with run-clang-tidy-3.8.py + * Updated patch kfreebsd-support.diff + * The libstdc++-6-dev & libobjc-6-dev are only install with clang-X.Y + and libclang-X.Y-dev and no longer with libclang1-X.Y + (Closes: #841309) + * silent test llvm-symbolizer + + -- Sylvestre Ledru Tue, 25 Oct 2016 10:53:49 +0200 + +llvm-toolchain-3.8 (1:3.8.1-12) unstable; urgency=medium + + * Fix a ftbfs on lldb on arm64 (Closes: #836591) (Closes: #836335) + Once more, thanks to Ximin Luo for investigating + + -- Sylvestre Ledru Thu, 08 Sep 2016 10:39:51 +0200 + +llvm-toolchain-3.8 (1:3.8.1-11) unstable; urgency=medium + + * Fix the arm64 lldb build issue. Thanks to Ximin Luo (Closes: #836591) + * Fix asan with libc6 >= 2.24 (asan-glibc-2.24.diff, backport of 269633) + Many thanks to Michael Stapelberg for the great bug report. + (Closes: 836723) + + -- Sylvestre Ledru Mon, 05 Sep 2016 08:57:48 +0200 + +llvm-toolchain-3.8 (1:3.8.1-10) unstable; urgency=medium + + * Fix the usage of jsoncpp in polly. Thanks to James Clarke for the patch + (Closes: #835606) + * Port to kfreebsd. Many thanks to Pino Toscano + (Closes: #835665) + * Build lldb on arm64. Hopefully, works. + Should fix the rust migration + + -- Sylvestre Ledru Sat, 27 Aug 2016 17:36:06 +0200 + +llvm-toolchain-3.8 (1:3.8.1-9) unstable; urgency=medium + + * Generate manpages for lli, lldb-mi & git-clang-format + * Fix some lintian overrides + * Bring back the lto (gone with the cmake migration) + (Closes: #819333) (upstream: #27223) + * Add symlink from ./build to ../share and ../lib etc + Thanks to Ximin Luo for the patch (Closes: #834144) + * Disable lldb on mips64el (same as in 3.9) + + -- Sylvestre Ledru Mon, 08 Aug 2016 18:50:13 +0200 + +llvm-toolchain-3.8 (1:3.8.1-8) unstable; urgency=medium + + * Disable the usage of ld gold on powerpc (Closes: #833583) + * Revert drop-avx512-from-skylake.diff, it is causing some regressions in the + testsuite + * Disable lldb on ppc64 + * libfuzzer depends on the same version of clang (Closes: #833564) + * Use filter into of findstring in the gold usage. Thanks Doko for the + suggestion + * amd64 llvm testsuite is green, bring back the failure in case of error + + -- Sylvestre Ledru Sun, 07 Aug 2016 14:10:09 +0200 + +llvm-toolchain-3.8 (1:3.8.1-7) unstable; urgency=medium + + * Fix the detection of gcc. This broke the build on the latest unstable + + -- Sylvestre Ledru Fri, 05 Aug 2016 09:55:15 +0200 + +llvm-toolchain-3.8 (1:3.8.1-6) unstable; urgency=medium + + * Ship libFuzzer in its own package (libfuzzer-X.Y-dev) (Closes: #820159) + * Sync from Ubuntu. Many thanks to Matthias Klose + - drop-avx512-from-skylake.diff: Don't enable AVX512 on Skylake, as it's + a server cpu feature and breaks llvmpipe on workstations. + - Remove the build tree before calling dh_strip; at least the amd64 buildd + runs out of diskspace at this step. + - Add support for gcc's attribute abi_tag (needed for compatibility with + GCC 5's libstdc++); taken from the trunk (Closes: #797038) + (LP: #1510042, #1488254) + D17567-PR23529-Sema-part-of-attrbute-abi_tag-support.diff + D18035-PR23529-Mangler-part-of-attrbute-abi_tag-support.diff + + -- Sylvestre Ledru Thu, 28 Jul 2016 11:15:04 +0200 + +llvm-toolchain-3.8 (1:3.8.1-5) unstable; urgency=medium + + [ Gianfranco Costamagna ] + * Try to fix mips64el build, by enabling the same + packages as the mips and mipsel versions + * Link mips* with latomic. + + [ Sylvestre Ledru ] + * Disable lldb on sparc64 (Closes: #832371) + * Hopefully fix the FTBFS on armel + + -- Sylvestre Ledru Wed, 27 Jul 2016 22:49:09 +0200 + +llvm-toolchain-3.8 (1:3.8.1-4) unstable; urgency=medium + + * Fix the FTBFS under mips/mipsel? (enable the link against atomic) + (Closes: #820537) + * Bring back llvm-3.8-tools to life + * ship clang-tblgen & yaml-bench as part of the libclang-common-X.Y-dev + package + + -- Sylvestre Ledru Wed, 20 Jul 2016 10:20:46 +0200 + +llvm-toolchain-3.8 (1:3.8.1-3) unstable; urgency=medium + + * Add -gsplit-dwarf to CXXFLAGS to workaround the memory allocation + issue on i386 (hopefully) + + -- Sylvestre Ledru Sat, 02 Jul 2016 20:59:08 +0200 + +llvm-toolchain-3.8 (1:3.8.1-2) unstable; urgency=medium + + [ Sylvestre Ledru ] + * Add a symlink from usr/lib/llvm-3.8/share/llvm/cmake + pointing to usr/share/llvm-3.8/cmake + + [ Gianfranco Costamagna ] + * Remove python-lldb-3.8 where liblldb-3.8-dev is not built + + -- Sylvestre Ledru Tue, 28 Jun 2016 14:44:48 +0200 + +llvm-toolchain-3.8 (1:3.8.1-1) unstable; urgency=medium + + * New maintenance release + + [ Kai Wasserbäch ] + * debian/rules: Ensure ld-gold is used. CMake invokes the linker through + g++ most of the time, therefore we need to set -Wl,-fuse-ld=gold. + + [ Brad King ] + * Followup to fix the cmake install (Closes: #819072) + + [ YunQiang Su ] + * Enable FPXX by default on mips/mipsel (Closes: #826749) + + -- Sylvestre Ledru Thu, 23 Jun 2016 08:49:29 +0200 + +llvm-toolchain-3.8 (1:3.8.1~+rc1-1~exp1) experimental; urgency=medium + + * New RC release + * Improve the cmake detection (used for llvm.org/apt) + * Standards-Version updated to 3.9.8 + * Ignore outdated-autotools-helper-file + + [ Brad King ] + * Install cmake files in usr/share/llvm-@LLVM_VERSION@/cmake/ instead of + usr/share/llvm-@LLVM_VERSION@/cmake/ + * Also install libLLVM-3.8.so.1 as a symlink + * debian/patches/fix-cmake-config-prefix.diff: + cover the CMake build system too + (Closes: #819072) + + [ Pablo Oliveira ] + * Fix python-lldb dependencies and make proper symlinks to libLLVM + and liblldb as suggested by Graham Inggs (Closes: #821022) + * Fix liblldb suffix in lldb/scripts/Python/finishSwigPythonLLDB.py + (Closes: #813798) + * Fix LLVM bug 26158 - clang packages don't provide man pages + * Add python-six as a dependency of python-lldb (thanks to Askar Safin). + + [ Gianfranco Costamagna ] + * Make python-lldb-3.8 depend on lldb-3.8-dev, to pick all + the required dependencies + * Unbreak circular dependency by Suggesting the python binding from + liblldb-3.8-dev + + [ Alexis La Goutte ] + * Fix an issue with scan-view (Closes: #825101) + + -- Sylvestre Ledru Thu, 26 May 2016 17:30:00 +0200 + +llvm-toolchain-3.8 (1:3.8-2) unstable; urgency=medium + + * Team upload. + * Disable polly on s390x and fix polly check. + * Fix VCS fields. + + [ Sylvestre Ledru ] + * Fix txt file installation issue, by putting a README.txt file + with some explanation. + + [ Graham Inggs ] + * Tighten llvm dev dependency (Closes: #814142). + + -- Gianfranco Costamagna Mon, 07 Mar 2016 10:56:05 +0100 + +llvm-toolchain-3.8 (1:3.8-1) unstable; urgency=medium + + * New upstream release + * Install a missing library to unbreak lldb (Closes: #815809) + + -- Sylvestre Ledru Thu, 03 Mar 2016 21:16:21 +0100 + +llvm-toolchain-3.8 (1:3.8~+rc3-1~exp1) experimental; urgency=medium + + * New snapshot release + * Update the clang description for something more accurate (C++-11, 14, etc) + * Update debian/orig-tar.sh to remove autoconf/config.sub autoconf/config.guess + in polly + + [ Matthias Klose ] + * clang-tidy-3.8: Remove Breaks/Replaces on clang-modernize-3.8. + * Disable lldb on s390x. + + -- Sylvestre Ledru Thu, 25 Feb 2016 14:26:14 +0100 + +llvm-toolchain-3.8 (1:3.8~+rc2-1~exp1) experimental; urgency=medium + + * New snapshot release + * Remove build-llvm/ after the install step to save space. + Most of the rc1 builds failed because of hd space. + + -- Sylvestre Ledru Wed, 03 Feb 2016 08:59:32 +0100 + +llvm-toolchain-3.8 (1:3.8~+rc1-1~exp1) experimental; urgency=medium + + * New snapshot release + * Cmake migration. Done by Andrew Wilkins. Many thanks to him + - Update patches to set SONAME in CMake build + - Create symlinks with ".links", don't install from build tree + - Remove LLVM-internal tools (lit, FileCheck, not, tblgen, etc.) + - Remove llvm-X.Y-tools package, because it contained only + internal tools that are not intended for distribution. + - Remove autotools-specific artifacts from packages. + - Remove "dummy" documentation artifacts from llvm-X.Y-docs + package. Not built/installed by CMake, not useful. + - Update control/rules to support CMake + - Patch LLDB SWIG interfaces to workaround a bug in SWIG + See https://llvm.org/bugs/show_bug.cgi?id=25468 + - add missing files to clang-format + - Add patch to fix sanitizer lit invocation + - removed LLVM-internal tools (lit, FileCheck, not, *-tblgen, etc.); + not installed by CMake, not intended for distribution + - removed llvm-X.Y-tools (contained only internal tools) + - removed autotools-specific artifacts (configure, Makefile, etc.) + - removed dummy documentation files + + -- Sylvestre Ledru Wed, 20 Jan 2016 16:09:01 +0100 + +llvm-toolchain-snapshot (1:3.8~svn255217-1~exp1) experimental; urgency=medium + + * New snapshot release + * Fix an install issue with clang-tidy + * clang-modernize has been removed. Long live to clang-tidy, its + replacement + + -- Sylvestre Ledru Thu, 10 Dec 2015 05:18:29 +0100 + +llvm-toolchain-snapshot (1:3.8~svn254193-2) UNRELEASED; urgency=medium + + * disable lldb and polly on powerpc, currently ftbfs. + setting the lldb archs in debian/control in just one + place would be appreciated. + * quoting fixes in debian/rules, when make macros + are empty + Thanks to Doko for the two previous changes (Closes: #806729) + + -- Sylvestre Ledru Mon, 30 Nov 2015 15:34:12 +0100 + +llvm-toolchain-snapshot (1:3.8~svn254193-1) unstable; urgency=medium + + * New snapshot release + * Remove some warnings in the manpages generation (Closes: #795310) + * Also ship sancov in clang-3.8 + * Fix the links to scan-build-3.8 & scan-view-3.8 + + -- Sylvestre Ledru Tue, 20 Oct 2015 14:07:06 +0200 + +llvm-toolchain-snapshot (1:3.8~svn250696-1) unstable; urgency=medium + + * Remove macho-dump from LLVM (removed by upstream r248302) + * Introduce clang-tidy-3.8 as a separate package. Replaces clang-modernize + * Ship run-clang-tidy.py & clang-tidy-diff.py in clang-tidy-3.8 + * Remove cpp11-migrate-3.8 package. Has been replaced by clang-modernize + for a while (which will be replaced by clang-tidy) + * Add three new symbols in libclang1 + - clang_CompileCommand_getFilename@Base + - clang_CompileCommand_getMappedSourceContent@Base 3.8 + - clang_CompileCommand_getMappedSourcePath@Base 3.8 + + -- Sylvestre Ledru Mon, 21 Sep 2015 13:16:35 +0200 + +llvm-toolchain-snapshot (1:3.8~svn247576-1) unstable; urgency=medium + + [ Sylvestre Ledru ] + * New snapshot release + * Remove CVE-2015-2305.patch. Already fixed upstream in a different + way + * remove patches merge upstream + - lit-lang.diff + - locale-issue-ld.diff + * Also generate liblldb-3.8-dbg + * Select LLVM OpenMP as the default backend + + [ Gianfranco Costamagna ] + * d/control: Add more conflicting packages (python-clang and python-lldb) + (Closes: #796811, #796843) + * Remove an obsolete declaration about dragonegg + (cherry-pick from 3.7 branch) + + [ James Price ] + * d/p/fix-cmake-config-prefix.diff: fix cmake path, + needs a change after upstream revision r241080 + (Addresses: #794905) + + -- Sylvestre Ledru Mon, 14 Sep 2015 18:29:09 +0200 + +llvm-toolchain-snapshot (1:3.8~svn245286-1) unstable; urgency=medium + + * New snapshot release (3.7 => 3.8) + No need to rename libllvm as 3.8 was not part of the debian archive + + [ Gianfranco Costamagna ] + * Fix VCS fields. + * d/p/CVE-2015-2305.patch, fix security issue on regcomp.c + * Fix many lintian warning/errors + - copyright fixes + - control files + - disabled ocaml documentation + + -- Sylvestre Ledru Tue, 18 Aug 2015 14:28:36 +0200 + +llvm-toolchain-snapshot (1:3.7~svn231060-1~exp2) UNRELEASED; urgency=medium + + * Reflect upstream changes wrt vim package. Split the files into different + directories + * Disable the patch force-gcc-header-obj.diff. Seems to cause bug #23556 + * Fix the CMake build. thanks to Paweł Bylica for the fix. + Fix upstream bug #23352 + * No longer building some clang help page, removing them + + -- Sylvestre Ledru Tue, 21 Apr 2015 09:41:41 +0200 + +llvm-toolchain-snapshot (1:3.7~svn231060-1~exp1) experimental; urgency=medium + + * New snapshot release + * Force the version of clang in the analyzer scripts + clang-analyzer-force-version.diff + + -- Sylvestre Ledru Tue, 03 Mar 2015 09:19:38 +0100 + +llvm-toolchain-snapshot (1:3.7~svn230857-1) unstable; urgency=medium + + * New snapshot release + * Support of gcc 5.0 (Closes: #777988) + * compiler-rt-i586.diff: fix a build issue of compiler-rt under i386 + * lldb-gdbserver & lldb-platform have been merged into lldb-server + * Bring back polly and remove libcloog-isl-dev & libisl-dev as build deps + (shipped in the polly source tree) + * Set the correct conflicts (Closes: #777580, #777581, #777582) + * lit-lang.diff: Force the call to ld to be in english + (was failing with a french locale) + * silent-MCJIIT-tests.diff: enable some tests and silents some other + + -- Sylvestre Ledru Sat, 28 Feb 2015 18:44:59 +0100 + +llvm-toolchain-snapshot (1:3.7~svn227076-1) unstable; urgency=medium + + * New snapshot release + * Switch to version 3.7 + * Standards-Version updated to 3.9.6 + + -- Sylvestre Ledru Mon, 26 Jan 2015 09:23:41 +0100 + +llvm-toolchain-snapshot (1:3.6~svn224810-1) unstable; urgency=medium + + * New snapshot release + * Update library filename declaration 3.5 => 3.6 (Closes: #772006) + + -- Sylvestre Ledru Fri, 05 Dec 2014 17:46:56 -0800 + +llvm-toolchain-snapshot (1:3.6~svn221998-1~exp1) experimental; urgency=medium + + * Disable ocaml binding. Needs libctypes-ocaml 0.3.3 which is not available + * libllvm*.a is not longer built + * Update of the libclang symbols + * Improve the copyright file. Thanks to Dann Frazier (Closes: #766778) + + -- Sylvestre Ledru Tue, 04 Nov 2014 14:43:28 +0100 + +llvm-toolchain-snapshot (1:3.6~svn218612-1) unstable; urgency=medium + + * Fix my screw up. Add .1 to the libclang soname to make + dpkg-shlibdeps happy + * Remove useless dependency on doxygen + * scan-build could not find clang binary (Closes: #758998) + + -- Sylvestre Ledru Fri, 26 Sep 2014 17:05:26 +0200 + +llvm-toolchain-snapshot (1:3.6~svn218446-1) unstable; urgency=medium + + * New snapshot release + * Upload in unstable + * Disable the co-instability of lldb & python-lldb + (Python stuff conflicts) + * Fix bad dependencies on lldb 3.6 + * Refresh of the list of symbol in libclang + * Try to workaround the FTBFS under ppc64el (create an empty directory) + + -- Sylvestre Ledru Wed, 24 Sep 2014 14:20:49 +0200 + +llvm-toolchain-snapshot (1:3.6~svn216933-1~exp1) experimental; urgency=medium + + * New snapshot release + * sync from 1:3.5~+rc4-2~exp1 + * libclang-3.6.so should be used instead libclang.so. Update the soname + to match the new lib name (Closes: #759538) + * Rename liblldb.so to liblldb-3.6.so + update of the soname. + * python-clang-3.6 description updated + * liblldb-3.6 and python-lldb-3.6 added + * lldb-3.6-dev renamed to liblldb-3.6-dev to match the previous changes + * Manpages for llvm-ranlib, clang-apply-replacements, pp-trace and clang-tidy + added + * clang-3.6 should depends on binutils (for ld, at least) + (Closes: #751030) + * clang/www/analyzer/scripts/dbtree.js removed + + -- Sylvestre Ledru Sat, 30 Aug 2014 18:09:20 +0200 + +llvm-toolchain-snapshot (1:3.6~svn215195-3) unstable; urgency=medium + + * Just like in 3.4 & 3.5, bring back lldb & lldb-dev under mips & mipsel + * Ship clang-rename/clang-rename-3.6 + * Disable libstdc++-header-i386.diff & include-target.diff (merged upstream) + + -- Sylvestre Ledru Mon, 18 Aug 2014 09:02:30 +0200 + +llvm-toolchain-snapshot (1:3.6~svn215195-2) unstable; urgency=medium + + * try to build lldb-mi under kfreebsd (kfreebsd-lldb-mi.diff) + * kfreebsd-lldb-gdbserver.diff removed (applied upstream) + + -- Sylvestre Ledru Mon, 11 Aug 2014 08:44:13 +0200 + +llvm-toolchain-snapshot (1:3.6~svn215195-1) unstable; urgency=medium + + * Upload in unstable + * Enable compressed debug sections (Closes: #757002) + * Force scan-build to use the same version of clang + * Old JIT has been removed. 0050-powerpcspe-fp.diff is useless + * try to build lldb-gdbserver under kfreebsd (kfreebsd-lldb-gdbserver.diff) + * Second try to fix build under HURD (hurd-EIEIO-undef.diff) + + -- Sylvestre Ledru Mon, 04 Aug 2014 13:36:15 +0200 + +llvm-toolchain-3.4 (1:3.4.2-8) unstable; urgency=medium + + * Try to bring back lldb-3.4-dev on mips & mipsel (Closes: #758314) + + -- Sylvestre Ledru Sat, 16 Aug 2014 22:39:13 +0200 + +llvm-toolchain-3.4 (1:3.4.2-7) unstable; urgency=medium + + * Upload in unstable + * Try to bring back lldb on mips & mipsel + * Force scan-build to use the same version of clang + * Try to fix hurd (hurd-EIEIO-undef.diff) + + -- Sylvestre Ledru Tue, 05 Aug 2014 14:40:05 +0200 + +llvm-toolchain-3.5 (1:3.5~+rc4-1) unstable; urgency=medium + + * New snapshot release + + -- Sylvestre Ledru Wed, 27 Aug 2014 23:09:59 +0200 + +llvm-toolchain-3.5 (1:3.5~+rc3-1) unstable; urgency=medium + + * New snapshot release + * Cherry-pick to commit from upstream (revisions 214906 214907) + to improve the gcc compat + * Remove scan-build-clang-path.diff (applied upstream) + * Just like in 3.4, bring back lldb & lldb-dev under mips & mipsel + + -- Sylvestre Ledru Wed, 20 Aug 2014 23:43:06 +0200 + +llvm-toolchain-3.5 (1:3.5~+rc2-1) unstable; urgency=medium + + * Fix the version + * try to build lldb-gdbserver under kfreebsd (kfreebsd-lldb-gdbserver.diff) + * Second try to fix build under HURD (hurd-EIEIO-undef.diff) + + -- Sylvestre Ledru Fri, 08 Aug 2014 10:42:13 +0200 + +llvm-toolchain-3.5 (1:3.5~+rc2-1~exp1) unstable; urgency=medium + + * New snapshot release + * Enable compressed debug sections (Closes: #757002) + * Force scan-build to use the same version of clang + * Bring back scan-build-search-path.diff (Closes: #757219) + + -- Sylvestre Ledru Mon, 04 Aug 2014 13:35:35 +0200 + +llvm-toolchain-snapshot (1:3.6~svn214630-1~exp1) experimental; urgency=medium + + * New snapshot release (3.5 => 3.6) + * Co installation of clang (Closes: #736057) + - scan-build => scan-build-3.6 + - scan-view => scan-view-3.6 + - asan_symbolize => asan_symbolize-3.6 + * Refresh of the patches + * Install yaml2obj, obj2yaml & verify-uselistorder in llvm-3.6 + * Remove of pollycc + * clang alternatives are managed by llvm-defaults + + -- Sylvestre Ledru Thu, 31 Jul 2014 18:12:59 +0200 + +llvm-toolchain-3.5 (1:3.5~+rc1-2) unstable; urgency=medium + + * Sync with 3.4 svn to retrieve some changes: + * Replace $(CURDIR)/debian/tmp by a variable + * Move the polly installation in the dh_auto_install rules instead + of using *.install files. In llvm.org/apt/, I have to sometime disable + polly + * hurd-EIEIO-undef.diff: try to undef an errno.h to fix the ftbfs + * clang-X suggests clang-X-doc (Closes: #755922) + * Manage all files using .in mecanism. It will simplify the upgrade of + version + * Disable lldb for ppc64el. Thanks to Dimitri John Ledkov (Closes: #756380) + * Fix the FTBFS under PowerPC. Thanks to Dimitri John Ledkov for the patch + + -- Sylvestre Ledru Thu, 24 Jul 2014 11:42:56 +0200 + +llvm-toolchain-3.5 (1:3.5~+rc1-1) unstable; urgency=medium + + * First RC release of the 3.5 llvm toolchain + * Apply lldb-kfreebsd.diff patch to fix FTBFS under KFreeBSD + Thanks to Ed Maste + + -- Sylvestre Ledru Wed, 23 Jul 2014 08:57:59 +0200 + +llvm-toolchain-snapshot (1:3.5~svn213451-1) unstable; urgency=medium + + * New snapshot release + * If the version of gcc is too old, force the usage of gcc 4.8 + * Clang will now show the full version. Example: 3.5.0-svn213052-1~exp1 + + -- Sylvestre Ledru Sat, 19 Jul 2014 15:27:11 +0200 + +llvm-toolchain-snapshot (1:3.5~svn211669-2) unstable; urgency=medium + + * Remove useless dependency on g++ + * Use the option stable '-analyzer-config stable-report-filename=true' + to the llvm scan-build reports + + -- Sylvestre Ledru Sun, 29 Jun 2014 19:13:05 +0200 + +llvm-toolchain-snapshot (1:3.5~svn211669-1) unstable; urgency=medium + + * New snapshot release + * Fix CVE-2014-2893 (Closes: #744817) + * Merge with 3.4/debian + * Ship lldb-mi in lldb + * Remove scan-build-fix-clang-detection.diff (applied upstream) + * Ship the compiler-rt static libraries + * Running tests respect DEB_BUILD_OPTIONS=parallel=X + (Closes: #751943) + * Fix FTBFS on powerpc and powerpcspe (Closes: #733890) + * Broken library symlink fixed in lldb-3.5 (Closes: #715130) + * Fix --use-cc when no absolute path is provided (Closes: #748777) + + -- Sylvestre Ledru Wed, 25 Jun 2014 07:58:03 +0200 + +llvm-toolchain-snapshot (1:3.5~svn209039-2) unstable; urgency=medium + + * Provide a link as compatibility with previous lib name (Closes: #748569) + * Be less permissive when installing lldb. Remove duplication of the install + of liblldb.so.1 + + -- Sylvestre Ledru Sun, 18 May 2014 20:01:40 +0200 + +llvm-toolchain-snapshot (1:3.5~svn209039-1) unstable; urgency=medium + + * New snapshot release + * Fix the cmake install patch + * Disable profile_rt.diff for now + * Refresh of libclang1-3.5.symbols + * Fix path to /usr/lib/clang/3.5.0/ (Closes upstream #19088) + * Fix the wrong dependency declaration on llvm-3.5-tools + * Add gnustep & gnustep-devel as suggests of clang-3.5 + * Add libc6-dev as an explicit dependency of clang-3.5 + * Build with dh_install --fail-missing + * Start to use /usr/bin/foo-X.Y. First step to have several clang versions + installed together + * Add some missing files: + - lli-child-target - llvm-3.5-runtime + - count - llvm-3.5-tools + - html.tar.gz - llvm-3.5-doc + - ocamldoc.tar.gz - llvm-3.5-doc + - BugpointPasses.so - llvm-3.5-dev + - liblldb* - lldb-3.5-dev + - clang-apply-replacements - clang-3.5 + - clang-tidy - clang-3.5 + - clang-query - clang-3.5 + - pp-trace - clang-3.5 + - lldb-platform - lldb-3.5 + - lldb-gdbserver - lldb-3.5 + + -- Sylvestre Ledru Fri, 16 May 2014 23:23:50 +0200 + +llvm-toolchain-3.4 (1:3.4.2-2) unstable; urgency=medium + + * Improve the CVE-2014-2893 fix (Closes: #744817) + * Add a check to avoid an error on arch where compiler-rt is not available + + -- Sylvestre Ledru Mon, 16 Jun 2014 23:00:47 +0200 + +llvm-toolchain-3.4 (1:3.4.2-1) unstable; urgency=medium + + * New upstream release + * Add build conflict on libllvm-3.5-ocaml-dev + * Also disable lldb tests under armel (like armhf). Timeout + * Update of the repack script + * Use llvm-3.4-dev.links.in to manage the symlinks + * Fix the soname of liblldb.so to see it treated as a real library + (Closes: #750868) + * Switch to the default gcc/g++ compiler. Currently 4.9 (Closes: #751322) + * Fixes CVE-2014-2893 (Closes: #744817) + + -- Sylvestre Ledru Fri, 06 Jun 2014 15:55:57 +0200 + +llvm-toolchain-3.4 (1:3.4.1-4) unstable; urgency=medium + + * Be less permissive when installing lldb. Remove duplication of the install + of liblldb.so.1 + * Add symlinks lldb-3.4, lldb-platform-3.4 & lldb-gdbserver-3.4 without 3.4 + * Clang was unusable with libstdc++ from gcc 4.9 (Closes: #744792) + + -- Sylvestre Ledru Sun, 18 May 2014 20:18:19 +0200 + +llvm-toolchain-3.4 (1:3.4.1-3) unstable; urgency=medium + + * Fix path for arch without support of compiler-rt. Should fix most of the + FTBFS + + -- Sylvestre Ledru Fri, 16 May 2014 15:27:37 +0200 + +llvm-toolchain-3.4 (1:3.4.1-2) unstable; urgency=medium + + * Fix the soname. No changes in the ABI, so, no need to update the soname + (Closes: #747701) + + -- Sylvestre Ledru Sun, 11 May 2014 17:29:22 +0200 + +llvm-toolchain-3.4 (1:3.4.1-1) unstable; urgency=medium + + * New upstream release. Note that only LLVM & Clang had a new release. + I just copied the 3.4 tarballs for clang-extra-tools, polly, lldb and + compiler-rt. + * Symlink for current build mode missing (Closes upstream #18836) + * Add link usr/lib/llvm-3.4/ to usr/lib/llvm-3.4/build/Debug+Asserts + * Backport of a r201586 from upstream. scan-build was failing on some project + like firefox build system. (Yeh, advantage to be the packager of a software + that I use ;) ). See scan-build-fix-clang-detection.diff + * Fix the version in the symbol list (libclang1-3.4.symbols) + * Update the path regarding upstream changed (3.4 => 3.4.1) + (Patch improved also by Martin Nowack) + * Remove generated file libllvm3.4.install + * Add gnustep & gnustep-devel as suggests of clang-3.4 + * Add libc6-dev as an explicit dependency of clang-3.4 + * Build with dh_install --fail-missing + * Start to use /usr/bin/foo-X.Y. First step to have several clang versions + installed together + * Add some missing files: + - lli-child-target - llvm-3.4-runtime + - count - llvm-3.4-tools + - html.tar.gz - llvm-3.4-doc + - ocamldoc.tar.gz - llvm-3.4-doc + - BugpointPasses.so - llvm-3.4-dev + - liblldb* - lldb-3.4-dev + - lldb-platform-3.4 - lldb-3.4 + - clang-apply-replacements - clang-3.4 + - clang-tidy - clang-3.4 + - pp-trace - clang-3.4 + + -- Sylvestre Ledru Fri, 09 May 2014 19:57:33 +0200 + +llvm-toolchain-snapshot (1:3.5~svn200375-1) unstable; urgency=medium + + * New snapshot release + * polly unnopstream is now using the isl trunk. Disabling it for now. + * Only explicit the link against atomic when running mips & mipsel + * Fix the cindex.py declaration (3.3 => 3.5). Closes upstream bug #18365 + * Bring back the dependency on gcc 4.8. It breaks the nightly snapshot + packages and it should be the norm now... + + [ Martin Nowack ] + * Fixed build directory for llvm-config + * Add Unittests for running tests for llvm-based projects + * Install FileCheck and not for testing + + -- Sylvestre Ledru Wed, 29 Jan 2014 07:36:29 -0800 + +llvm-toolchain-snapshot (1:3.5~svn199601-1) unstable; urgency=low + + * New snapshot release + * Update clang-format declaration from 3.4 => 3.5. Closes upstream bug #18451 + * Fix the cindex.py declaration (3.3 => 3.5). Closes upstream bug #18365 + * Force gcc 4.8. LLVM & Co are now in C++ 11. + * Also make clang-3.5 breaks/replaces clang. Conflicts on + /usr/share/clang/scan-view/ScanView.py (Closes: #730266) + + -- Sylvestre Ledru Wed, 15 Jan 2014 15:08:03 +0100 + +llvm-toolchain-snapshot (1:3.5~svn197556-1) unstable; urgency=low + + * New snapshot release + * Merge changes from 1:3.4~+rc3-1 + * Disable much of the display of the lldb display + + -- Sylvestre Ledru Tue, 17 Dec 2013 12:02:52 +0100 + +llvm-toolchain-snapshot (1:3.5~svn195337-1) unstable; urgency=low + + * Sync from 3.4~+rc2-1 + * Make lldb 3.5 also conflict with 3.4 (Closes: #730163) + * Make python-clang 3.5 also conflict with 3.4 (Closes: #730164) + * Fix a FTBFS with clang + * Refresh the /usr/include/clang mess + + -- Sylvestre Ledru Tue, 10 Dec 2013 09:57:15 +0100 + +llvm-toolchain-snapshot (1:3.5~svn195337-1) unstable; urgency=low + + * Switch from 3.4 to 3.5 + * Remove patch 0046-Revert-Patch-to-set-is_stmt-a-little-better-for-prol.patch + Useless now and missleading + * Standards-Version updated to 3.9.5 + * kfreebsd.diff remove (applied upstream) + + -- Sylvestre Ledru Wed, 20 Nov 2013 21:24:28 +0100 + +llvm-toolchain-3.4 (1:3.4-2) unstable; urgency=medium + + * Only explicit the link against atomic when running mips & mipsel + * Fix the cindex.py declaration (3.3 => 3.5). Closes upstream bug #18365 + * Bring back the dependency on gcc 4.8. It breaks the nightly snapshot + packages and it should be the norm now... + * Introduce llvm-3.4-tools to contain the new files needed by Martin + + [ Matthias Klose ] + * Disable the lldb build for AArch64. + * Don't run the lldb tests on armhf (time out on the buildd). + + [ Martin Nowack ] + * Fixed build directory for llvm-config + * Add Unittests for running tests for llvm-based projects + * Install FileCheck and not for testing + + -- Sylvestre Ledru Tue, 11 Feb 2014 11:19:21 +0100 + +llvm-toolchain-3.4 (1:3.4-1) unstable; urgency=medium + + * New upstream release + * Remove explicit dep on gcc 4.8 + + -- Sylvestre Ledru Fri, 20 Dec 2013 18:36:58 +0100 + +llvm-toolchain-3.4 (1:3.4~+rc3-1ubuntu4) trusty; urgency=medium + + * Rebuild for ocaml-4.01. + + -- Matthias Klose Mon, 23 Dec 2013 12:11:17 +0000 + +llvm-toolchain-3.4 (1:3.4~+rc3-1ubuntu3) trusty; urgency=low + + * Bring over Ubuntu changes from 3.3: + - Revert to using the static copy of libjsoncpp, since the shared + library lacks sane versioning, and this is only a few thousand + lines of cargo-culted code from a reasonably stagnant upstream. + - Drop lcov build-dep to avoid pulling it into main, due to its + being fundamentally incompatibe with our newer GCC versions. + + -- Matthias Klose Fri, 20 Dec 2013 12:59:01 +0100 + +llvm-toolchain-3.4 (1:3.4~+rc3-1ubuntu2) trusty; urgency=low + + * Don't run the lldb tests on armhf (time out on the buildd). + + -- Matthias Klose Wed, 18 Dec 2013 12:29:56 +0100 + +llvm-toolchain-3.4 (1:3.4~+rc3-1ubuntu1) trusty; urgency=low + + * Disable the lldb build for AArch64. + * Build-depend on gcc-multilib on amd64 and i386. + + -- Matthias Klose Tue, 17 Dec 2013 18:44:50 +0100 + +llvm-toolchain-3.4 (1:3.4~+rc3-1) unstable; urgency=low + + * New testing upstream release + * Relative call in the chroot without proc failed. + See: fix-an-issue-in-chroot-witout-proc.diff + * Bring back lldb-link-atomic.diff to make sure lldb builds under + powerpc + * Also limit the number of archs for liblldb-dev + + -- Sylvestre Ledru Tue, 17 Dec 2013 11:27:40 +0100 + +llvm-toolchain-3.4 (1:3.4~+rc2-3) unstable; urgency=low + + * Fix the bad declaration on the lldb desactivation + * Also disable lldb under powerpc + * Hopefully, fix lldb under Kfreebsd-* (thanks to Ed Maste if it works) + + -- Sylvestre Ledru Wed, 04 Dec 2013 23:53:49 +0100 + +llvm-toolchain-3.4 (1:3.4~+rc2-2) unstable; urgency=low + + * Add the Ocaml ABI dependency (Closes: #731344) + * Disable LLDB also for ia64, mips & mipsel + + -- Sylvestre Ledru Wed, 04 Dec 2013 15:37:39 +0100 + +llvm-toolchain-3.4 (1:3.4~+rc2-1) unstable; urgency=low + + * New testing upstream release + * 0047-version-name.diff ocamldoc.diff removed (applied upstream) + * r600 is now compiled by default (remove the configure arg) + + -- Sylvestre Ledru Tue, 03 Dec 2013 10:25:59 +0100 + +llvm-toolchain-3.4 (1:3.4~+rc1-3) unstable; urgency=low + + * Remove the usage of --with-c-include-dirs, --with-cxx-include-root, + --with-cxx-include-arch and --with-cxx-include-64bit-dir + It was blocking the automatic detection of the path of clang. + In particular in the context of the usage of -target. + However, it does not completely fix the detection of the i386 C++ path. + See the next item. + (Closes: #729933) + * Bring back the path to libstdc++ under i386. Still not fixed upstream + (Closes: #730857) + * Define also MAXPATHLEN in Path.inc for HURD. + * Silent the trillion of warnings in the LLDB Python wrapper (swig generated) + See silent-swig-warning.diff + * Silent some i386 tests failing (it is expected) + See silent-MCJIIT-tests.diff + * Make lldb 3.4 also conflict with 3.5 (Closes: #730163) + * Make python-clang 3.4 also conflict with 3.5 (Closes: #730164) + * Port LLVM to mips64el. Thanks to YunQiang Su. Initially done for + 3.3 and ported on the 3.4 (Closes: #730808) + * If we get an unexpected pass, do not break the tests + do-not-fail-on-unexpected-pass.diff (I am disabling some tests) + * Fix the path detection of the objective h headers. + * Also add usr/lib/llvm-3.4/lib/clang/3.4/include => + usr/lib/clang/3.4/include symlink to simplify the path detection + + -- Sylvestre Ledru Sun, 01 Dec 2013 17:49:46 +0100 + +llvm-toolchain-3.4 (1:3.4~+rc1-2) unstable; urgency=low + + * Force the build to gcc 4.8... gcc 4.6 used on some Debian archs does not + support some C++ features. + * Fail the build when llvm tests are failing under amd64 + i386. More to come. + * Fix a libclang.so.1 issue during the clang tests + * Improve the patch 23-strlcpy_strlcat_warning_removed.diff + (also remove the tests) + * Make lldb 3.4 also conflict with 3.5 (Closes: #730163) + * Make python-clang 3.4 also conflict with 3.5 (Closes: #730164) + * Remove usr/lib/llvm-3.4/build/autoconf/LICENSE.TXT + * silent warning "manpage-has-useless-whatis-entry" in lldb-3.4 + * silent warning "package-name-doesnt-match-sonames libclang1" + * Refresh patch kfreebsd_v2.diff to, maybe, fix lldb build under kfreebsd. + Thanks to Ed Maste for the patch. + + -- Sylvestre Ledru Tue, 26 Nov 2013 18:32:49 +0100 + +llvm-toolchain-3.4 (1:3.4~+rc1-1) unstable; urgency=low + + * New testing upstream release + * kfreebsd.diff removed. Applied upstream + * Remove patch 0046-Revert-Patch-to-set-is_stmt-a-little-better-for-prol.patch + Useless now and missleading + * Branch from llvm-toolchain-snapshot + * Standards-Version updated to 3.9.5 + + -- Sylvestre Ledru Wed, 20 Nov 2013 21:24:28 +0100 + +llvm-toolchain-snapshot (1:3.4~svn194079-1) unstable; urgency=low + + * New snapshot release + * Also install clang 3.4 examples (clang-3.4-examples) (Closes: #728260) + * Move c-index-test* from llvm-3.4 => clang-3.4. It was triggering an + unnecessary dependency from llvm-3.4 to libclang + + -- Sylvestre Ledru Fri, 01 Nov 2013 05:19:55 +0100 + +llvm-toolchain-snapshot (1:3.4~svn193628-1) unstable; urgency=low + + * New snapshot release + - Fix the scan-build warning (Closes: #725332) + * Merge changes from the 3.3 branch (see 1:3.3-12) + * Add lldb-3.4-dev package + * Remove mipsel-ftbfs.diff (applied upstream) + * Add support of coverity checker (non-free and not packaged) + * libprofile_rt and runtime has been removed upstream (r191835) + Features are provided by compiler-rt + * Update the build dependency from tcl8.5 to tcl (Closes: #725954) + * clang-modernize-3.4 was not coinstallable with clang 3.4 + (Closes: #724245) + * The package wasn't cleaned correctly (Closes: #722155) + * libtinfo-dev is now a dependency of llvm-3.4-dev (Closes: #727129) + * Install libclang.so in /usr/lib/*/libclang-3.4.so + * Install libclang.so.1 in /usr/lib/*/libclang-3.4.so.1 + * Also ship the python clang binding (python-clang-3.4) + * Enable polly if the dependencies are OK (only Debian unstable for now) + * Bring back /usr/lib/llvm-3.4/lib/libclang.so (libclang-3.4-dev) and + /usr/lib/llvm-3.4/lib/libclang.so.1 (libclang1-3.4) + * Honor the option "nocheck" + * Disable the build of lldb under HURD + * Ship the lldb headers into lldb-X.Y-dev (Closes: #723743) + I might create a liblldb-X.Y library at some point but I think it is too + early. + * Update the build dependency from tcl8.5 to tcl (Closes: #725953) + * Update of the clang descriptions (Closes: #727684) + + -- Sylvestre Ledru Tue, 29 Oct 2013 17:56:18 +0100 + +llvm-toolchain-snapshot (1:3.4~svn190846-1) unstable; urgency=low + + * New snapshot release + * Merge changes from the 3.3 branch (see 1:3.3-9) + * Remove ia64-fix.diff (applied upstream) + * cpp11-migrate renamed to clang-modernize + * lldb-3.4 is back to Architectures: any + * Patch lldb-hurd.diff removed (applied upstream) + * Directory www/ from tarballs polly & lldb removed + * Update of the description of LLVM packages + (LLVM no longer mean Low Level Virtual Machine) + + [ Luca Falavigna ] + * debian/control: + - Add llvm-3.4-dev to lldb-3.4 Depends field. + + -- Sylvestre Ledru Thu, 05 Sep 2013 12:04:35 +0200 + +llvm-toolchain-3.3 (1:3.3-9) unstable; urgency=low + + [ Luca Falavigna ] + * debian/control: + - Add llvm-3.3-dev to lldb-3.3 Depends field (Closes: #715129). + + [ Sylvestre Ledru ] + * Only use -fuse-ld=gold on supported distribution. Simplify the + backports. + * Fix 'bits/c++config.h' file not found under i386 + See libstdc++-header-i386.diff. (Closes: #714890) + * Add more fixes for the HURD port... (but still fails) + + [ Robert Millan ] + * clang under KfFreeBSD was not exporting the correct defines + (Closes: #721880) + + [ Jon Severinsson ] + * Merge from llvm-toolchain-3.2 branch up to 3.2repack-11. + * Drop auto-generated file debian/libllvm3.3.install. + * Automatically determine GCC_VERSION and dep:devlibs based on g++ package + version. + * Automatically determine if -fuse-ld=gold is supported based on binutils + package version. + + [ Adam Conrad ] + * debian/patches/lldb-link-atomic.diff: Link lldb with -latomic to get + builtin GCC atomic helpers on arches (like powerpc) that need them. + + -- Sylvestre Ledru Mon, 26 Aug 2013 14:48:42 +0200 + +llvm-toolchain-3.3 (1:3.3-8) unstable; urgency=low + + [ Sylvestre Ledru ] + * Fix another issues under HURD... + + [ Luca Falavigna ] + * debian/patches/libprofile_rt_sparc.patch: + - Re-enable libprofile_rt on Sparc, fix FTBFS. + + -- Sylvestre Ledru Fri, 23 Aug 2013 15:02:05 +0200 + +llvm-toolchain-3.3 (1:3.3-7) unstable; urgency=low + + * debhelper version 9.20130720 fails on the call to dh_auto_clean + Remove it. It was anyway useless. + + -- Sylvestre Ledru Thu, 22 Aug 2013 14:28:25 +0200 + +llvm-toolchain-3.3 (1:3.3-6) unstable; urgency=low + + * Fix the FTBFS under hurd and KFreeBSD + * Do not remove all *.o in tests. Some of them are from upstream source + tarball. Thanks to Maarten Lankhorst for the fix. + * Fix the lintian error 'lldb-3.3: postinst-must-call-ldconfig' + * Add the manpages of clang-format-3.3 + * Overrides the manpages warnings + * Also apply unwind-chain-inclusion.diff from the snapshot branch to make sure + we can build the package locally even if libclang-dev is installed + + -- Sylvestre Ledru Thu, 22 Aug 2013 09:01:04 +0200 + +llvm-toolchain-3.3 (1:3.3-5) unstable; urgency=low + + * Install llvm-c headers also in usr/include/llvm-3.3/llvm-c + * Fix the FTBFS under mips & mipsel + * Refresh of the kfreebsd i386 patch + + -- Sylvestre Ledru Wed, 07 Aug 2013 13:12:23 +0200 + +llvm-toolchain-3.3 (1:3.3-4) unstable; urgency=low + + * Use the static library libjsoncpp.a instead of the ship library in polly + + -- Sylvestre Ledru Sun, 11 Aug 2013 09:54:17 +0200 + +llvm-toolchain-snapshot (1:3.4~svn185325-1) unstable; urgency=low + + * binutils-gold no longer exists. Use -fuse-ld=gold instead. + + -- Sylvestre Ledru Thu, 01 Aug 2013 14:06:38 +0200 + +llvm-toolchain-snapshot (1:3.3-2) unstable; urgency=low + + * Fix warning python-script-but-no-python-dep on clang-format-X.Y + * manpages are generated during build time (simplifies maintenance) + * Fix duplicate underscore.js and jquery.js + * Move libjs-jquery & libjs-underscore dependencies to llvm-X.Y-doc + * Add lldb-X.Y manpage + * Hopefully fix the ftbfs under mipsel (mipsel-ftbfs.diff) + * Disable the usage of binutils-gold under armel. It currently fails with: + "attempt to map 2752512 bytes at offset 2066666 exceeds size of file; + the file may be corrupt" + + [ Léo Cavaillé ] + * Add patch to find correctly LLVMGold.so with -O4 (Closes: #712437) + + -- Sylvestre Ledru Thu, 20 Jun 2013 15:39:11 +0200 + +llvm-toolchain-snapshot (1:3.4~svn184294-1~exp1) experimental; urgency=low + + * New snapshot release + * Improve some scripts and fix cpp11-migrate install from + clang-tools-extra. + * Fix "versionless" clang manpages install. + * Fix Toolchain patch from change of scope (add namespaces). + + -- Sylvestre Ledru Wed, 19 Jun 2013 14:20:12 +0200 + +llvm-toolchain-snapshot (1:3.4~svn183914-1) unstable; urgency=low + + * New snapshot release + * Upload to unstable (will be blocked by a RC bug) + * Sync changes from llvm-toolchain-3.3: + - Introduce cpp11-migrate-3.4 and clang-format-3.4 + - Install the vim llvm script at the right place + + -- Sylvestre Ledru Thu, 13 Jun 2013 18:47:08 +0200 + +llvm-toolchain-snapshot (1:3.4~svn182733-1~exp1) experimental; urgency=low + + * New snapshot release (3.4 release) + * Add a symlink of libLLVM-3.4.so.1 to usr/lib/llvm-3.4/lib/libLLVM-3.4.so + to fix make the llvm-config-3.4 --libdir work (Closes: #708677) + * Various packages rename to allow co installations: + * libclang1 => libclang1-3.4 + * libclang1-dbg => libclang1-3.4-dbg + * libclang-dev => libclang-3.4-dev + * libclang-common-dev => libclang-common-3.4-dev + + -- Sylvestre Ledru Mon, 27 May 2013 15:01:57 +0200 + +llvm-toolchain-snapshot (1:3.3~svn179851-1~exp1) experimental; urgency=low + + * Draft of a snapshot release (3.3) + * Enable r600 experimental backend + * Improve the dependencies: + * clang-3.3 depends on the exact same libllvm3.3 release + * idem for lldb-3.3 + + -- Sylvestre Ledru Fri, 19 Apr 2013 09:31:38 +0200 + +llvm-toolchain-3.2 (1:3.2repack-11) unstable; urgency=low + + * dh_auto_clean removed, just like in the 3.3 + * Use the static library libjsoncpp.a instead of shipping library in polly + Backport of the modification of 3.3 + + [ Adam Conrad ] + * Revive deltas from the previous Ubuntu versions of llvm and clang: + - debian/patches/35-ubuntu-releases.diff: Add UbuntuSaucy to table. + - debian/patches/JITEmitter.patch: Fix a segfault in the exception + table of the JIT code emitter (See Launchpad bug #1160587) + + [ Luca Falavigna ] + * debian/patches/libprofile_rt_sparc.patch: + - Re-enable libprofile_rt on Sparc, fix FTBFS. + + -- Sylvestre Ledru Fri, 23 Aug 2013 11:49:09 +0200 + +llvm-toolchain-3.2 (1:3.2repack-10) unstable; urgency=low + + * Fix the wrong package declaration on libstdc++-4.8-dev (Closes: #713944) + + -- Sylvestre Ledru Mon, 24 Jun 2013 23:00:47 +0200 + +llvm-toolchain-3.2 (1:3.2repack-9) unstable; urgency=low + + * Switch to libstdc++ 4.8 instead of 4.7 for the headers (Closes: #712520) + * Depends against libobjc-4.8-dev and libgcc-4.8-dev + * Disable the usage of binutils-gold under armel. It currently fails with: + "attempt to map 2752512 bytes at offset 2066666 exceeds size of file; + the file may be corrupt" + * Add DEBUGMAKE=1 to get information about compiler-rt compilation + * Fix "libclang-common-dev: missing-depends-line" + + -- Sylvestre Ledru Sat, 22 Jun 2013 07:38:41 +0200 + +llvm-toolchain-3.2 (1:3.2repack-8) unstable; urgency=low + + * Fix the build under ia64. Thanks to Luca Falavigna for the patch + (ia64-fix.diff) + * Disable lldb-3.2: + - the quality is not good enough + - We have lldb-3.3 now in the archive + - Too many backported patches would be necessary for lldb-3.2 to work + - It blocks some important transitions (mesa) + * Add the detection of Ubuntu saucy + + -- Sylvestre Ledru Mon, 03 Jun 2013 11:32:29 +0200 + +llvm-toolchain-3.2 (1:3.2repack-7) unstable; urgency=low + + * For now, enable only lldb for amd64 and i386 (blocks too many things) + (Bis) (Closes: #707866) + * Add a symlink of libLLVM-3.2.so.1 to usr/lib/llvm-3.2/lib/libLLVM-3.2.so + to fix make the llvm-config-3.2 --libdir work (Closes: #708677) + + -- Sylvestre Ledru Mon, 27 May 2013 13:20:30 +0200 + +llvm-toolchain-3.2 (1:3.2repack-6) unstable; urgency=low + + * Create the compiler-rt directory to make the install of compiler-rt works + + -- Sylvestre Ledru Sat, 18 May 2013 18:08:52 +0200 + +llvm-toolchain-3.2 (1:3.2repack-5) unstable; urgency=low + + * For now, enable only lldb for amd64 and i386 (blocks too many things) + + -- Sylvestre Ledru Sat, 18 May 2013 10:24:04 +0200 + +llvm-toolchain-3.2 (1:3.2repack-4) unstable; urgency=low + + * Add several patches which, hopefully, will fix the build under ARM, S390, + S390X, etc (lldb-apple_only.diff, lldb-user-remove.diff & lldb-hurd.diff) + * Include sys/wait.h also under kfreebsd (kfreebsd-thread.diff) + + -- Sylvestre Ledru Wed, 15 May 2013 12:04:24 +0200 + +llvm-toolchain-3.2 (1:3.2repack-3) unstable; urgency=low + + * Before the configure, show which version of CC is being used. + * Add support of kfreebsd and hurd in lldb (kfreebsd-hurd-lldb.diff) + * Force the usage of gcc 4.7 for all archs. Should fix some FTBFS + (Closes: #707866) + * Fix the symlink on clang++.1.gz llvm-clang.1.gz (Closes: #707832) + + [ Jon Severinsson ] + * Re-enable the r600 backend and update it to the mesa-9.1.1 tag. + (Closes: #708009) + + -- Sylvestre Ledru Tue, 14 May 2013 12:10:07 +0200 + +llvm-toolchain-3.2 (1:3.2repack-2) unstable; urgency=low + + * Do not depend on libobjc-4.7-dev & libgcc-4.7-dev. + They are still only in experimental + * Disable the usage of binutils-gold under [powerpc powerpcspe ppc64 sparc + sparc64] to fix FTBFS + + -- Sylvestre Ledru Tue, 07 May 2013 13:15:20 +0200 + +llvm-toolchain-3.2 (1:3.2repack-1) unstable; urgency=low + + * Upload to unstable + * Standards-Version update to 3.9.4 + * clang pure virtual function call crash with binaries built with C++11's + std::thread. Upstream commit 178816 (Closes: #705838) + * Introduce a symbols file for libclang1 (Closes: #705672) + + -- Sylvestre Ledru Sun, 21 Apr 2013 14:06:23 +0200 + +llvm-toolchain-3.2 (1:3.2repack-1~exp4) experimental; urgency=low + + * Build using binutls-gold to improve the quality of the binaries. + See: http://allievi.sssup.it/techblog/?p=791 + * Detect the vendor (Debian or Ubuntu) and update the configuration + * Port to powerpcspe. Thanks to Roland Stigge (Closes: #701587) + See: 31-powerpcspe.diff + * Fix the path detection of scan-build (Closes: #698352) + See: 32-scan-build-path.diff + * debian/patches/r600-snapshot.diff: Move backports into individual patches. + * debian/patches/r600-snapshot.diff: Update to mesa-9.1 git tag. + (Closes: #703671, #697356) + * Fix a typo in the detection of the vendor + + [ Peter Michael Green ] + * Use binutils-gold only on architectures where it is actually available + * 33-armhf-defaults.diff Fix defaults to use correct CPU and FPU for + debian armhf (Closes: #704111) + * 34-powerpc-no-altivec.diff disable altivec by default on powerpc because + debian powerpc does not require altivec (patch cherry picked from ubuntu) + + -- Sylvestre Ledru Thu, 14 Mar 2013 17:47:12 +0100 + +llvm-toolchain-3.2 (1:3.2repack-1~exp3) experimental; urgency=low + + * Remove package "clang". It is now provided by llvm-defaults. + * Fix some issues relative to the epoch change + * Fix a wrong path in the _lldb.so Python symlink + * Install cmake files to build LLVM extensions (Closes: #701153) + * Remove the embedded copy of libjs-jquery (Closes: #701087) + * Fix the install of lli manpage (Closes: #697117) + + -- Sylvestre Ledru Sun, 17 Feb 2013 12:05:15 +0100 + +llvm-toolchain-3.2 (1:3.2repack-1~exp2) experimental; urgency=low + + * Install the python files for lldb. Thanks to Daniel Malea for spotting this. + * Update of the clean target + * Introduce an epoch to match the changes in bug #699899 + + -- Sylvestre Ledru Wed, 13 Feb 2013 12:22:30 +0100 + +llvm-toolchain-3.2 (3.2repack-1~exp1) experimental; urgency=low + + * Build the whole LLVM toolchain at once. This includes: + - LLVM + - Clang + - compiler-rt + - lldb + - polly + * Also install clang-check & clang-tblgen in the clang-3.2 package + * Fix the patch detection of clang from scan-build (Closes: #698352) + * debian/patches/0050-powerpcspe-fp.diff: Add, hopefully fix FTBFS on + powerpcspe, by disabling save / restore of floating point registers which + don't exist on powerpcspe. Thanks to Roland Stigge for the patch. + (Closes: #696474) + * libLLVM-3.2.so.1 is now shipped only once (Closes: #696913) + * Enable RTTI (Closes: #697754) + * Introduce lldb as a new package (Closes: #698601) + * Add a script pollycc which will call clang with the right arguments. + * Use __builtin___clear_cache on ARM to fix a clang bug. + Thanks to Matthias Klose. + + -- Sylvestre Ledru Sat, 09 Feb 2013 12:14:10 +0100 diff --git a/debian/clang-X.Y-doc.docs.in b/debian/clang-X.Y-doc.docs.in new file mode 100644 index 0000000..b3cc6a0 --- /dev/null +++ b/debian/clang-X.Y-doc.docs.in @@ -0,0 +1,2 @@ +tools/clang/docs/_build/html/ + diff --git a/debian/clang-X.Y-examples.examples.in b/debian/clang-X.Y-examples.examples.in new file mode 100644 index 0000000..49cbc5f --- /dev/null +++ b/debian/clang-X.Y-examples.examples.in @@ -0,0 +1 @@ +clang/examples/* diff --git a/debian/clang-X.Y.install.in b/debian/clang-X.Y.install.in new file mode 100644 index 0000000..f095a1a --- /dev/null +++ b/debian/clang-X.Y.install.in @@ -0,0 +1,40 @@ +usr/lib/llvm-@LLVM_VERSION@/bin/clang +usr/lib/llvm-@LLVM_VERSION@/bin/clang++ +usr/lib/llvm-@LLVM_VERSION@/bin/clang-check +usr/lib/llvm-@LLVM_VERSION@/bin/clang-apply-replacements +usr/lib/llvm-@LLVM_VERSION@/bin/clang-query +usr/lib/llvm-@LLVM_VERSION@/bin/clang-rename +usr/lib/llvm-@LLVM_VERSION@/bin/sancov +usr/lib/llvm-@LLVM_VERSION@/share/scan-view/ +usr/lib/llvm-@LLVM_VERSION@/share/scan-build/ +usr/lib/llvm-@LLVM_VERSION@/share/man/man1/scan-build.1 +usr/lib/llvm-@LLVM_VERSION@/libexec/ccc-analyzer +usr/lib/llvm-@LLVM_VERSION@/libexec/c++-analyzer + +usr/lib/llvm-@LLVM_VERSION@/bin/scan-view +usr/lib/llvm-@LLVM_VERSION@/bin/clang-cl + +usr/lib/llvm-@LLVM_VERSION@/bin/scan-build +usr/lib/llvm-@LLVM_VERSION@/bin/modularize +usr/lib/llvm-@LLVM_VERSION@/bin/c-index-test + +usr/bin/c-index-test-@LLVM_VERSION@ + +tools/clang/tools/scan-build-@LLVM_VERSION@ usr/share/clang/ +tools/clang/tools/scan-view-@LLVM_VERSION@ usr/share/clang/ +#usr/share/man/man1/clang.1 usr/share/man/man1/ +usr/lib/llvm-@LLVM_VERSION@/share/clang/cmake/ +# todo: check if it is not be moved +#usr/lib/llvm-@LLVM_VERSION@/lib/cmake/clang/*.cmake usr/share/llvm-@LLVM_VERSION@/cmake/ + +usr/bin/clang-@LLVM_VERSION@ +usr/bin/clang++-@LLVM_VERSION@ +usr/bin/clang-check-@LLVM_VERSION@ +usr/bin/clang-apply-replacements-@LLVM_VERSION@ +usr/bin/clang-query-@LLVM_VERSION@ +usr/bin/clang-rename-@LLVM_VERSION@ +usr/bin/sancov-@LLVM_VERSION@ +usr/bin/clang-cl-@LLVM_VERSION@ +usr/bin/modularize-@LLVM_VERSION@ +usr/bin/scan-build-@LLVM_VERSION@ +usr/bin/scan-view-@LLVM_VERSION@ diff --git a/debian/clang-X.Y.links.in b/debian/clang-X.Y.links.in new file mode 100644 index 0000000..6340f7d --- /dev/null +++ b/debian/clang-X.Y.links.in @@ -0,0 +1,3 @@ +usr/share/clang/scan-build-@LLVM_VERSION@/bin/scan-build usr/bin/scan-build-@LLVM_VERSION@ +usr/share/clang/scan-view-@LLVM_VERSION@/bin/scan-view usr/bin/scan-view-@LLVM_VERSION@ + diff --git a/debian/clang-X.Y.lintian-overrides.in b/debian/clang-X.Y.lintian-overrides.in new file mode 100644 index 0000000..f51804d --- /dev/null +++ b/debian/clang-X.Y.lintian-overrides.in @@ -0,0 +1,8 @@ +# I know but well... +clang-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/clang-check.1.gz +clang-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/scan-view.1.gz +clang-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/clang-apply-replacements-@LLVM_VERSION@.1.gz +clang-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/clang-check-@LLVM_VERSION@.1.gz +clang-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/clang-tblgen-@LLVM_VERSION@.1.gz +clang-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/scan-view-@LLVM_VERSION@.1.gz + diff --git a/debian/clang-X.Y.manpages.in b/debian/clang-X.Y.manpages.in new file mode 100644 index 0000000..7be800e --- /dev/null +++ b/debian/clang-X.Y.manpages.in @@ -0,0 +1,5 @@ +clang/docs/_build/man/clang-@LLVM_VERSION@.1 +clang/tools/scan-build/man/scan-build-@LLVM_VERSION@.1 +debian/man/clang-check-@LLVM_VERSION@.1 +debian/man/scan-view-@LLVM_VERSION@.1 +debian/man/clang-apply-replacements-@LLVM_VERSION@.1 diff --git a/debian/clang-format-X.Y.install.in b/debian/clang-format-X.Y.install.in new file mode 100644 index 0000000..d3a18a5 --- /dev/null +++ b/debian/clang-format-X.Y.install.in @@ -0,0 +1,10 @@ +clang/tools/clang-format/clang-format-@LLVM_VERSION@.py usr/share/vim/addons/syntax/ +clang/tools/clang-format/clang-format-diff-@LLVM_VERSION@ /usr/bin/ +usr/bin/clang-format-@LLVM_VERSION@ +usr/bin/git-clang-format-@LLVM_VERSION@ +usr/lib/llvm-@LLVM_VERSION@/bin/clang-format +usr/lib/llvm-@LLVM_VERSION@/bin/git-clang-format +usr/lib/llvm-@LLVM_VERSION@/share/clang/clang-format-diff.py usr/share/clang/clang-format-@LLVM_VERSION@/ +usr/lib/llvm-@LLVM_VERSION@/share/clang/clang-format.py usr/share/clang/clang-format-@LLVM_VERSION@/ +usr/lib/llvm-@LLVM_VERSION@/share/clang/clang-format.el usr/share/emacs/site-lisp/clang-format-@LLVM_VERSION@/ +usr/lib/llvm-@LLVM_VERSION@/share/clang/clang-format-sublime.py usr/share/clang/clang-format-@LLVM_VERSION@/ diff --git a/debian/clang-format-X.Y.lintian-overrides.in b/debian/clang-format-X.Y.lintian-overrides.in new file mode 100644 index 0000000..aa78679 --- /dev/null +++ b/debian/clang-format-X.Y.lintian-overrides.in @@ -0,0 +1,4 @@ +# I know but well... +clang-format-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/clang-format-diff-@LLVM_VERSION@.1.gz +clang-format-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/clang-format-@LLVM_VERSION@.1.gz + diff --git a/debian/clang-format-X.Y.manpages.in b/debian/clang-format-X.Y.manpages.in new file mode 100644 index 0000000..27cf934 --- /dev/null +++ b/debian/clang-format-X.Y.manpages.in @@ -0,0 +1,3 @@ +debian/man/clang-format-diff-@LLVM_VERSION@.1 +debian/man/clang-format-@LLVM_VERSION@.1 +debian/man/git-clang-format-@LLVM_VERSION@.1 diff --git a/debian/clang-tidy-X.Y.install.in b/debian/clang-tidy-X.Y.install.in new file mode 100644 index 0000000..ef992c5 --- /dev/null +++ b/debian/clang-tidy-X.Y.install.in @@ -0,0 +1,5 @@ +usr/lib/llvm-@LLVM_VERSION@/bin/clang-tidy +usr/lib/llvm-@LLVM_VERSION@/share/clang/run-clang-tidy.py +usr/lib/llvm-@LLVM_VERSION@/share/clang/clang-tidy-diff.py + +usr/bin/clang-tidy-@LLVM_VERSION@ diff --git a/debian/clang-tidy-X.Y.links.in b/debian/clang-tidy-X.Y.links.in new file mode 100644 index 0000000..5d959f4 --- /dev/null +++ b/debian/clang-tidy-X.Y.links.in @@ -0,0 +1,3 @@ +usr/lib/llvm-@LLVM_VERSION@/share/clang/run-clang-tidy.py usr/bin/run-clang-tidy-@LLVM_VERSION@.py +usr/lib/llvm-@LLVM_VERSION@/share/clang/clang-tidy-diff.py usr/bin/clang-tidy-diff-@LLVM_VERSION@.py + diff --git a/debian/clang-tidy-X.Y.lintian-overrides.in b/debian/clang-tidy-X.Y.lintian-overrides.in new file mode 100644 index 0000000..c915da6 --- /dev/null +++ b/debian/clang-tidy-X.Y.lintian-overrides.in @@ -0,0 +1,3 @@ +# I know but well... +clang-tidy-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/clang-tidy-@LLVM_VERSION@.1.gz + diff --git a/debian/clang-tidy-X.Y.manpages.in b/debian/clang-tidy-X.Y.manpages.in new file mode 100644 index 0000000..fa4a814 --- /dev/null +++ b/debian/clang-tidy-X.Y.manpages.in @@ -0,0 +1 @@ +debian/man/clang-tidy-@LLVM_VERSION@.1 diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +9 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..80c274d --- /dev/null +++ b/debian/control @@ -0,0 +1,474 @@ +Source: llvm-toolchain-3.8 +Section: devel +Priority: optional +Maintainer: LLVM Packaging Team +Uploaders: Sylvestre Ledru +Build-Depends: debhelper (>= 9.0), flex, bison, dejagnu, tcl, expect, + cmake, perl, libtool, chrpath, texinfo, sharutils, libffi-dev (>= 3.0.9), + lsb-release, patchutils, diffstat, xz-utils, python-dev, + libedit-dev, swig, python-six, python-sphinx, ocaml-nox, binutils-dev, + libjsoncpp-dev, + lcov, procps, help2man, dh-ocaml, zlib1g-dev, + g++-multilib [amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel powerpc ppc64 s390 s390x sparc sparc64 x32] +Build-Conflicts: oprofile, ocaml, libllvm-3.4-ocaml-dev, libllvm-3.5-ocaml-dev, + libllvm-3.8-ocaml-dev +Standards-Version: 3.9.8 +Homepage: http://www.llvm.org/ +Vcs-Svn: svn://anonscm.debian.org/svn/pkg-llvm/llvm-toolchain/branches/3.8/ +Vcs-Browser: https://svn.debian.org/viewsvn/pkg-llvm/llvm-toolchain/branches/3.8/ + +# ------------- clang ------------- + +Package: clang-3.8 +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, ${dep:devlibs}, + ${dep:devlibs-objc}, libclang-common-3.8-dev (= ${binary:Version}), + libclang1-3.8 (= ${binary:Version}), libc6-dev, binutils +Provides: c-compiler, objc-compiler, c++-compiler +Recommends: llvm-3.8-dev, python +Suggests: gnustep, gnustep-devel, clang-3.8-doc +Replaces: clang-3.1, clang-3.2, clang-3.3, + clang-3.4 (<< 1:3.4.2-7~exp1), clang-3.5 (<< 1:3.5~+rc1-3~exp1), compiler-rt +Breaks: clang-3.1, clang-3.2, clang-3.3, + clang-3.4 (<< 1:3.4.2-7~exp1), clang-3.5 (<< 1:3.5~+rc1-3~exp1), compiler-rt +Description: C, C++ and Objective-C compiler (LLVM based) + Clang project is a C, C++, Objective C and Objective C++ front-end + for the LLVM compiler. Its goal is to offer a replacement to the GNU Compiler + Collection (GCC). + . + Clang fully implements all published ISO C++ standards including C++11, as + well as the upcoming C++14 standard, and some parts of the fledgling C++1z + standard, and is considered a production-quality C++ compiler. + +Package: clang-format-3.8 +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, python +Replaces: clang-format-3.3 +Breaks: clang-format-3.3 +Description: Tool to format C/C++/Obj-C code + Clang-format is both a library and a stand-alone tool with the goal of + automatically reformatting C++ sources files according to configurable + style guides. To do so, clang-format uses Clang's Lexer to transform an + input file into a token stream and then changes all the whitespace around + those tokens. The goal is for clang-format to both serve both as a user + tool (ideally with powerful IDE integrations) and part of other + refactoring tools, e.g. to do a reformatting of all the lines changed + during a renaming. + . + This package also provides vim and emacs plugins. + +Package: clang-tidy-3.8 +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, python +Replaces: clang-3.8 (<< 1:3.8~svn250696-1) +Breaks: clang-3.8 (<< 1:3.8~svn250696-1) +Description: clang-based C++ linter tool + Provide an extensible framework for diagnosing and fixing typical programming + errors, like style violations, interface misuse, or bugs that can be deduced + via static analysis. clang-tidy is modular and provides a convenient interface + for writing new checks. + + +Package: clang-3.8-doc +Architecture: all +Section: doc +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: C, C++ and Objective-C compiler (LLVM based) - Documentation + Clang project is a C, C++, Objective C and Objective C++ front-end + for the LLVM compiler. Its goal is to offer a replacement to the GNU Compiler + Collection (GCC). + . + Clang fully implements all published ISO C++ standards including C++11, as + well as the upcoming C++14 standard, and some parts of the fledgling C++1z + standard, and is considered a production-quality C++ compiler. + . + This package contains the documentation. + +Package: libclang1-3.8 +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Pre-Depends: ${misc:Pre-Depends} +Multi-Arch: same +Description: C interface to the clang library + Clang project is a C, C++, Objective C and Objective C++ front-end + for the LLVM compiler. Its goal is to offer a replacement to the GNU Compiler + Collection (GCC). + . + Clang fully implements all published ISO C++ standards including C++11, as + well as the upcoming C++14 standard, and some parts of the fledgling C++1z + standard, and is considered a production-quality C++ compiler. + . + This package contains the clang library. + . + The C Interface to Clang provides a relatively small API that exposes + facilities for parsing source code into an abstract syntax tree (AST), + loading already-parsed ASTs, traversing the AST, associating physical source + locations with elements within the AST, and other facilities that support + Clang-based development tools. + +Package: libclang1-3.8-dbg +Architecture: any +Multi-Arch: same +Section: debug +Priority: extra +Depends: ${shlibs:Depends}, ${misc:Depends}, ${dep:devlibs}, libclang1-3.8 (= ${binary:Version}) +Description: clang library + Clang project is a C, C++, Objective C and Objective C++ front-end + for the LLVM compiler. Its goal is to offer a replacement to the GNU Compiler + Collection (GCC). + . + Clang fully implements all published ISO C++ standards including C++11, as + well as the upcoming C++14 standard, and some parts of the fledgling C++1z + standard, and is considered a production-quality C++ compiler. + . + This package contains the debugging symbols. + +Package: libclang-3.8-dev +Architecture: any +Section: libdevel +Depends: ${shlibs:Depends}, ${misc:Depends}, ${dep:devlibs}, + ${dep:devlibs-objc}, libclang1-3.8 (= ${binary:Version}), + libclang-common-3.8-dev (= ${binary:Version}) +Description: clang library - Development package + Clang project is a C, C++, Objective C and Objective C++ front-end + for the LLVM compiler. Its goal is to offer a replacement to the GNU Compiler + Collection (GCC). + . + Clang fully implements all published ISO C++ standards including C++11, as + well as the upcoming C++14 standard, and some parts of the fledgling C++1z + standard, and is considered a production-quality C++ compiler. + . + This package contains the clang headers to develop extensions over + libclang1-3.8. + +Package: libclang-common-3.8-dev +Architecture: any +Section: libdevel +Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm3.8 (= ${binary:Version}) +Description: clang library - Common development package + Clang project is a C, C++, Objective C and Objective C++ front-end + for the LLVM compiler. Its goal is to offer a replacement to the GNU Compiler + Collection (GCC). + . + Clang fully implements all published ISO C++ standards including C++11, as + well as the upcoming C++14 standard, and some parts of the fledgling C++1z + standard, and is considered a production-quality C++ compiler. + . + This package contains the clang generic headers and some libraries + (profiling, etc). + + +Package: libfuzzer-3.8-dev +Architecture: any +Section: libdevel +Depends: ${shlibs:Depends}, ${misc:Depends}, clang-3.8 (= ${binary:Version}) +Description: Library for coverage-guided fuzz testing + LibFuzzer is a library for in-process, coverage-guided, evolutionary fuzzing + of other libraries. + . + LibFuzzer is similar in concept to American Fuzzy Lop (AFL), but it performs + all of its fuzzing inside a single process. This in-process fuzzing can be + more restrictive and fragile, but is potentially much faster as there is no + overhead for process start-up. + . + The fuzzer is linked with the library under test, and feeds fuzzed inputs to + the library via a specific fuzzing entrypoint (aka 'target function'); the + fuzzer then tracks which areas of the code are reached, and generates mutations + on the corpus of input data in order to maximize the code coverage. The code + coverage information for libFuzzer is provided by LLVM's SanitizerCoverage + instrumentation. + + + +Package: python-clang-3.8 +Section: python +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, python +Replaces: python-clang-3.3, python-clang-3.4, python-clang-3.5, python-clang-3.6, python-clang-3.7 +Breaks: python-clang-3.3, python-clang-3.4, python-clang-3.5, python-clang-3.6, python-clang-3.7 +Description: Clang Python Bindings + Clang project is a C, C++, Objective C and Objective C++ front-end + for the LLVM compiler. Its goal is to offer a replacement to the GNU Compiler + Collection (GCC). + . + Clang fully implements all published ISO C++ standards including C++11, as + well as the upcoming C++14 standard, and some parts of the fledgling C++1z + standard, and is considered a production-quality C++ compiler. + . + This binding package provides access to the Clang compiler and libraries. + + +Package: clang-3.8-examples +Architecture: any +Section: doc +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Clang examples + Clang project is a C, C++, Objective C and Objective C++ front-end + for the LLVM compiler. Its goal is to offer a replacement to the GNU Compiler + Collection (GCC). + . + Clang fully implements all published ISO C++ standards including C++11, as + well as the upcoming C++14 standard, and some parts of the fledgling C++1z + standard, and is considered a production-quality C++ compiler. + . + This package contains the clang examples. + +# ------------- LLVM ------------- + +Package: libllvm3.8 +Architecture: any +Section: libs +Depends: ${shlibs:Depends}, ${misc:Depends} +Pre-Depends: ${misc:Pre-Depends} +Multi-Arch: same +Description: Modular compiler and toolchain technologies, runtime library + LLVM is a collection of libraries and tools that make it easy to build + compilers, optimizers, just-in-time code generators, and many other + compiler-related programs. + . + This package contains the LLVM runtime library. + +Package: libllvm3.8-dbg +Architecture: any +Section: debug +Priority: extra +Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm3.8 (= ${binary:Version}) +Pre-Depends: ${misc:Pre-Depends} +Multi-Arch: same +Description: Modular compiler and toolchain technologies, debugging libraries + LLVM is a collection of libraries and tools that make it easy to build + compilers, optimizers, just-in-time code generators, and many other + compiler-related programs. + . + This package contains the LLVM runtime library debug symbols. + +Package: llvm-3.8 +Architecture: any +Suggests: llvm-3.8-doc +Depends: llvm-3.8-runtime (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Recommends: llvm-3.8-dev +Description: Modular compiler and toolchain technologies + LLVM is a collection of libraries and tools that make it easy to build + compilers, optimizers, just-in-time code generators, and many other + compiler-related programs. + . + LLVM uses a single, language-independent virtual instruction set both + as an offline code representation (to communicate code between + compiler phases and to run-time systems) and as the compiler internal + representation (to analyze and transform programs). This persistent + code representation allows a common set of sophisticated compiler + techniques to be applied at compile-time, link-time, install-time, + run-time, or "idle-time" (between program runs). + . + The strengths of the LLVM infrastructure are its extremely + simple design (which makes it easy to understand and use), + source-language independence, powerful mid-level optimizer, automated + compiler debugging support, extensibility, and its stability and + reliability. LLVM is currently being used to host a wide variety of + academic research projects and commercial projects. LLVM includes C + and C++ front-ends, a front-end for a Forth-like language (Stacker), + a young scheme front-end, and Java support is in development. LLVM can + generate code for X86, SparcV9, PowerPC or many other architectures. + +Package: llvm-3.8-runtime +Architecture: any +Depends: binfmt-support, ${shlibs:Depends}, ${misc:Depends} +Conflicts: llvm (<< 2.7-1) +Replaces: llvm (<< 2.7-1) +Description: Modular compiler and toolchain technologies, IR interpreter + LLVM is a collection of libraries and tools that make it easy to build + compilers, optimizers, just-in-time code generators, and many other + compiler-related programs. + . + LLVM uses a single, language-independent virtual instruction set both + as an offline code representation (to communicate code between + compiler phases and to run-time systems) and as the compiler internal + representation (to analyze and transform programs). This persistent + code representation allows a common set of sophisticated compiler + techniques to be applied at compile-time, link-time, install-time, + run-time, or "idle-time" (between program runs). + . + This package provides the minimal required to execute programs in LLVM + format. + +Package: llvm-3.8-dev +Architecture: any +Depends: ${shlibs:Depends}, libffi-dev (>= 3.0.9), ${misc:Depends}, + llvm-3.8 (= ${binary:Version}), libllvm3.8 (= ${binary:Version}), libtinfo-dev +Replaces: llvm (<< 2.2-3) +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 + compiler-related programs. + . + LLVM uses a single, language-independent virtual instruction set both + as an offline code representation (to communicate code between + compiler phases and to run-time systems) and as the compiler internal + representation (to analyze and transform programs). This persistent + code representation allows a common set of sophisticated compiler + techniques to be applied at compile-time, link-time, install-time, + run-time, or "idle-time" (between program runs). + . + This package provides the libraries and headers to develop applications + using llvm. + +Package: llvm-3.8-tools +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, python, + llvm-3.8-dev (= ${binary:Version}) +Description: Modular compiler and toolchain technologies, tools + LLVM is a collection of libraries and tools that make it easy to build + compilers, optimizers, just-in-time code generators, and many other + compiler-related programs. + . + LLVM uses a single, language-independent virtual instruction set both + as an offline code representation (to communicate code between + compiler phases and to run-time systems) and as the compiler internal + representation (to analyze and transform programs). This persistent + code representation allows a common set of sophisticated compiler + techniques to be applied at compile-time, link-time, install-time, + run-time, or "idle-time" (between program runs). + . + This package provides tools for testing. + +Package: libllvm-3.8-ocaml-dev +Section: ocaml +Architecture: any +Suggests: llvm-3.8-doc +Depends: ${shlibs:Depends}, ${misc:Depends}, ${ocaml:Depends}, llvm-3.8-dev (= ${binary:Version}) +Provides: ${ocaml:Provides} +Description: Modular compiler and toolchain technologies, OCaml bindings + LLVM is a collection of libraries and tools that make it easy to build + compilers, optimizers, just-in-time code generators, and many other + compiler-related programs. + . + LLVM uses a single, language-independent virtual instruction set both + as an offline code representation (to communicate code between + compiler phases and to run-time systems) and as the compiler internal + representation (to analyze and transform programs). This persistent + code representation allows a common set of sophisticated compiler + techniques to be applied at compile-time, link-time, install-time, + run-time, or "idle-time" (between program runs). + . + This package provides the OCaml bindings to develop applications using llvm. + +Package: llvm-3.8-doc +Section: doc +Architecture: all +Depends: ${misc:Depends}, libjs-jquery, libjs-underscore +Description: Modular compiler and toolchain technologies, documentation + LLVM is a collection of libraries and tools that make it easy to build + compilers, optimizers, just-in-time code generators, and many other + compiler-related programs. + . + LLVM uses a single, language-independent virtual instruction set both + as an offline code representation (to communicate code between + compiler phases and to run-time systems) and as the compiler internal + representation (to analyze and transform programs). This persistent + code representation allows a common set of sophisticated compiler + techniques to be applied at compile-time, link-time, install-time, + run-time, or "idle-time" (between program runs). + . + This package contains all documentation (extensive). + +Package: llvm-3.8-examples +Section: doc +Architecture: all +Depends: ${misc:Depends}, llvm-3.8-dev (>= ${source:Version}), llvm-3.8-dev (<< ${source:Version}+c~) +Description: Modular compiler and toolchain technologies, examples + LLVM is a collection of libraries and tools that make it easy to build + compilers, optimizers, just-in-time code generators, and many other + compiler-related programs. + . + LLVM uses a single, language-independent virtual instruction set both + as an offline code representation (to communicate code between + compiler phases and to run-time systems) and as the compiler internal + representation (to analyze and transform programs). This persistent + code representation allows a common set of sophisticated compiler + techniques to be applied at compile-time, link-time, install-time, + run-time, or "idle-time" (between program runs). + . + This package contains examples for using LLVM, both in developing + extensions to LLVM and in using it to compile code. + + +# ------------- lldb ------------- + +Package: lldb-3.8 +Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe sh4 x32 mips mipsel arm64 +# ia64 hurd powerpc ppc64el sparc64 ppc64 mips64el have been removed +Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm3.8 (= ${binary:Version}), llvm-3.8-dev +Suggests: python-lldb-3.8 +Conflicts: lldb-3.4, lldb-3.5 +Pre-Depends: ${misc:Pre-Depends} +Description: Next generation, high-performance debugger + LLDB is a next generation, high-performance debugger. It is built as a set of + reusable components which highly leverage existing libraries in the larger LLVM + Project, such as the Clang expression parser and LLVM disassembler. + +Package: liblldb-3.8 +Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe sh4 x32 mips mipsel arm64 +# ia64 hurd powerpc ppc64el sparc64 ppc64 mips64el have been removed +Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm3.8 (= ${binary:Version}) +Pre-Depends: ${misc:Pre-Depends} +Section: libs +Replaces: lldb-3.8 (<= 1:3.8~svn215195-2) +Breaks: lldb-3.8 (<< 1:3.8~svn215195-2) +Description: Next generation, high-performance debugger, library + LLDB is a next generation, high-performance debugger. It is built as a set of + reusable components which highly leverage existing libraries in the larger LLVM + Project, such as the Clang expression parser and LLVM disassembler. + . + This package contains the LLDB runtime library. + +Package: liblldb-3.8-dbg +Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc hppa m68k powerpcspe sh4 x32 mips mipsel arm64 +# ia64 hurd ppc64el alpha s390x powerpc sparc64 ppc64 mips64el have been removed +Depends: ${shlibs:Depends}, ${misc:Depends}, liblldb-3.8 (= ${binary:Version}) +Pre-Depends: ${misc:Pre-Depends} +Section: debug +Priority: extra +Description: Next generation, high-performance debugger, debugging libraries + LLDB is a next generation, high-performance debugger. It is built as a set of + reusable components which highly leverage existing libraries in the larger LLVM + Project, such as the Clang expression parser and LLVM disassembler. + . + This package contains the LLDB runtime library debug symbols. + + +Package: python-lldb-3.8 +Section: python +Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe sh4 x32 mips mipsel arm64 +Depends: ${shlibs:Depends}, ${misc:Depends}, liblldb-3.8-dev, python, python-six +Conflicts: python-lldb-3.4, python-lldb-3.5, python-lldb-3.6, python-lldb-3.7 +Pre-Depends: ${misc:Pre-Depends} +Description: Next generation, high-performance debugger, python lib + LLDB is a next generation, high-performance debugger. It is built as a set of + reusable components which highly leverage existing libraries in the larger LLVM + Project, such as the Clang expression parser and LLVM disassembler. + . + This binding package provides access to lldb. + + +Package: liblldb-3.8-dev +Section: libdevel +Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe sh4 x32 mips mipsel arm64 +# ia64 hurd powerpc ppc64el sparc64 ppc64 mips64el have been removed +Depends: ${shlibs:Depends}, ${misc:Depends}, lldb-3.8 (= ${binary:Version}) +Replaces: lldb-3.8-dev (<= 1:3.8~svn215195-2) +Breaks: lldb-3.8-dev (<< 1:3.8~svn215195-2) +Pre-Depends: ${misc:Pre-Depends} +Description: Next generation, high-performance debugger - Header files + LLDB is a next generation, high-performance debugger. It is built as a set of + reusable components which highly leverage existing libraries in the larger LLVM + Project, such as the Clang expression parser and LLVM disassembler. + . + This package provides the header files to build extension over lldb. + + +Package: lldb-3.8-dev +Depends: liblldb-3.8-dev, ${misc:Depends} +Architecture: all +Section: oldlibs +Description: transitional dummy package to liblldb-3.8-dev + This is a transitional dummy package. It can safely be removed. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..a50dd55 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,428 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: LLVM/Clang +Source: http://llvm.org/releases/download.html + +Files: * +Copyright: 2003-2007 University of Illinois at Urbana-Champaign. +License: U-OF-I-BSD-LIKE + +Files: */install-sh +Copyright: 1994 X Consortium +License: LLVM + This script is licensed under the LLVM license, with the following + additional copyrights and restrictions: + . + Copyright 1991 by the Massachusetts Institute of Technology + . + Permission to use, copy, modify, distribute, and sell this software and its + documentation for any purpose is hereby granted without fee, provided that + the above copyright notice appear in all copies and that both that + copyright notice and this permission notice appear in supporting + documentation, and that the name of M.I.T. not be used in advertising or + publicity pertaining to distribution of the software without specific, + written prior permission. M.I.T. makes no representations about the + suitability of this software for any purpose. It is provided "as is" + without express or implied warranty. + . + ============================================================================== + LLVM Release License + ============================================================================== + University of Illinois/NCSA + Open Source License + . + Copyright (c) 2003-2013 University of Illinois at Urbana-Champaign. + All rights reserved. + . + Developed by: + . + LLVM Team + . + University of Illinois at Urbana-Champaign + . + http://llvm.org + . + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal with + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do + so, subject to the following conditions: + . + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimers. + . + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimers in the + documentation and/or other materials provided with the distribution. + . + * Neither the names of the LLVM Team, University of Illinois at + Urbana-Champaign, nor the names of its contributors may be used to + endorse or promote products derived from this Software without specific + prior written permission. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE + SOFTWARE. + +Files: clang/lib/Headers/* +Copyright: 2003-2007 University of Illinois at Urbana-Champaign +License: Expat + +Files: clang/lib/Headers/iso646.h +Copyright: 2008 Eli Friedman +License: Expat + +Files: clang/lib/Headers/limits.h +Copyright: 2009 Chris Lattner +License: Expat + +Files: clang/lib/Headers/stdarg.h +Copyright: 2008 Eli Friedman +License: Expat + +Files: clang/lib/Headers/stdbool.h +Copyright: 2008 Eli Friedman +License: Expat + +Files: clang/lib/Headers/stddef.h +Copyright: 2008 Eli Friedman +License: Expat + +Files: clang/lib/Headers/stdint.h +Copyright: 2009 Chris Lattner +License: Expat + +Files: clang/lib/Headers/tgmath.h +Copyright: 2009 Howard Hinnant +License: Expat + +Files: compiler-rt/* +Copyright: 2009-2013 Craig van Vliet + 2009-2013 Edward O'Callaghan + 2009-2013 Howard Hinnant +License: U-OF-I-BSD-LIKE or MIT + +Files: compiler-rt/lib/BlocksRuntime/Block.h +Copyright: 2008-2010 Apple, Inc. +License: MIT + +Files: compiler-rt/lib/BlocksRuntime/Block_private.h +Copyright: 2008-2010 Apple, Inc. +License: MIT + +Files: compiler-rt/lib/BlocksRuntime/data.c +Copyright: 2008-2010 Apple, Inc. +License: MIT + +Files: compiler-rt/lib/BlocksRuntime/runtime.c +Copyright: 2008-2010 Apple, Inc. +License: MIT + +Files: include/llvm/Support/* +Copyright: 2003-2013 University of Illinois at Urbana-Champaign. + Copyright (C) 2004 eXtensible Systems, Inc. +License: U-OF-I-BSD-LIKE + +Files: lib/Support/reg* +Copyright: 1992, 1993, 1994 Henry Spencer + 1992, 1993, 1994 The Regents of the University of California +License: BSD-3-clause + +Files: lib/Target/ARM/* +Copyright: ARM Limited +License: ARM + ARM Limited + . + Software Grant License Agreement ("Agreement") + . + Except for the license granted herein to you, ARM Limited ("ARM") reserves all + right, title, and interest in and to the Software (defined below). + . + Definition + . + "Software" means the code and documentation as well as any original work of + authorship, including any modifications or additions to an existing work, that + is intentionally submitted by ARM to llvm.org (http://llvm.org) ("LLVM") for + inclusion in, or documentation of, any of the products owned or managed by LLVM + (the "Work"). For the purposes of this definition, "submitted" means any form of + electronic, verbal, or written communication sent to LLVM 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, LLVM for the purpose of discussing and improving + the Work, but excluding communication that is conspicuously marked otherwise. + . + 1. Grant of Copyright License. Subject to the terms and conditions of this + Agreement, ARM hereby grants to you and to recipients of the Software + distributed by LLVM 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 + Software and such derivative works. + . + 2. Grant of Patent License. Subject to the terms and conditions of this + Agreement, ARM hereby grants you and to recipients of the Software + distributed by LLVM 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 ARM that are necessarily infringed by ARM's Software alone or by + combination of the Software with the Work to which such Software was + submitted. If any entity institutes patent litigation against ARM or any + other entity (including a cross-claim or counterclaim in a lawsuit) alleging + that ARM's Software, or the Work to which ARM has contributed constitutes + direct or contributory patent infringement, then any patent licenses granted + to that entity under this Agreement for the Software or Work shall terminate + as of the date such litigation is filed. + . + Unless required by applicable law or agreed to in writing, the software is + provided 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. + +Files: lldb/* +Copyright: 2010, 2012 Apple Inc. +License: NCSA + University of Illinois/NCSA + Open Source License + . + Copyright (c) 2010 Apple Inc. + All rights reserved. + . + Developed by: + . + LLDB Team + . + http://lldb.llvm.org/ + . + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal with + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do + so, subject to the following conditions: + . + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimers. + . + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimers in the + documentation and/or other materials provided with the distribution. + . + * Neither the names of the LLDB Team, copyright holders, nor the names of + its contributors may be used to endorse or promote products derived from + this Software without specific prior written permission. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE + SOFTWARE. + +Files: lldb/test/pexpect-2.4/* +Copyright: 2008 Noah Spurrier +License: Expat + +License: Expat + . + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + . + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. + +Files: lldb/test/unittest2/* +Copyright: 1999-2003 Steve Purcell + 2003-2010 Python Software Foundation +License: Python + This module is free software, and you may redistribute it and/or modify + it under the same terms as Python itself, so long as this copyright message + and disclaimer are retained in their original form. + . + IN NO EVENT SHALL THE AUTHOR BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, + SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF + THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + DAMAGE. + . + THE AUTHOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, + AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, + SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + +Files: polly/* +Copyright: 2009-2013 Polly Team +License: Polly + ============================================================================== + Polly Release License + ============================================================================== + University of Illinois/NCSA + Open Source License + . + Copyright (c) 2009-2013 Polly Team + All rights reserved. + . + Developed by: + . + Polly Team + . + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal with + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do + so, subject to the following conditions: + . + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimers. + . + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimers in the + documentation and/or other materials provided with the distribution. + . + * Neither the names of the Polly Team, copyright holders, nor the names of + its contributors may be used to endorse or promote products derived from + this Software without specific prior written permission. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE + SOFTWARE. + +Files: polly/lib/JSON/* +Copyright: Polly Team +License: public-domain + **FIXME** + polly/lib/JSON/LICENSE.txt claims that these files are in the public domain, but + the machine-readable copyright spec requires additional clarification. + +Files: polly/tools/GPURuntime/* +Copyright: Polly Team +License: U-OF-I-BSD-LIKE or MIT + +Files: test/YAMLParser/* +Copyright: 2006 Kirill Simonov +License: MIT + +Files: lldb/tools/debugserver/source/MacOSX/stack_logging.h +Copyright: 1999-2007 Apple Inc. +License: Apple + This file contains Original Code and/or Modifications of Original Code + as defined in and that are subject to the Apple Public Source License + Version 2.0 (the 'License'). You may not use this file except in + compliance with the License. Please obtain a copy of the License at + http://www.opensource.apple.com/apsl/ and read it before using this + file. + . + The Original Code and all software distributed under the License are + distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + Please see the License for the specific language governing rights and + limitations under the License. + +Files: utils/unittest/googletest/* +Copyright: 2006-2008, Google Inc. +License: BSD-3-Clause + +License: BSD-3-Clause + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + . + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + . + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + +License: U-OF-I-BSD-LIKE + ============================================================================== + LLVM Release License + ============================================================================== + University of Illinois/NCSA + Open Source License + . + Copyright (c) 2003-2013 University of Illinois at Urbana-Champaign. + All rights reserved. + . + Developed by: + . + LLVM Team + . + University of Illinois at Urbana-Champaign + . + http://llvm.org + . + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal with + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do + so, subject to the following conditions: + . + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimers. + . + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimers in the + documentation and/or other materials provided with the distribution. + . + * Neither the names of the LLVM Team, University of Illinois at + Urbana-Champaign, nor the names of its contributors may be used to + endorse or promote products derived from this Software without specific + prior written permission. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE + SOFTWARE. + +License: MIT + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + . + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. diff --git a/debian/debian_path.h b/debian/debian_path.h new file mode 100644 index 0000000..539636f --- /dev/null +++ b/debian/debian_path.h @@ -0,0 +1,16 @@ +//===----------------------------------------------------------------------===// +// +// Debian paths declaration management +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef DEBIAN_PATH_H +#define DEBIAN_PATH_H + +// Provides the debian revision +#define DEB_PATCHSETVERSION "@DEB_PATCHSETVERSION@" + +#endif diff --git a/debian/libclang-X.Y-dev.install.in b/debian/libclang-X.Y-dev.install.in new file mode 100644 index 0000000..d91e186 --- /dev/null +++ b/debian/libclang-X.Y-dev.install.in @@ -0,0 +1,9 @@ +usr/lib/llvm-@LLVM_VERSION@/include/clang +usr/lib/llvm-@LLVM_VERSION@/include/clang-c +usr/lib/llvm-@LLVM_VERSION@/lib/libclang*a +usr/lib/llvm-@LLVM_VERSION@/lib/libclang*so + +#usr/include/clang /usr/include/ +#usr/include/clang-c /usr/include/ +#usr/lib/libclang.so /usr/lib/ +#usr/lib/libclang*a /usr/lib/ diff --git a/debian/libclang-X.Y-dev.links.in b/debian/libclang-X.Y-dev.links.in new file mode 100644 index 0000000..6f99d5b --- /dev/null +++ b/debian/libclang-X.Y-dev.links.in @@ -0,0 +1,3 @@ +usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so.1 usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so +usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/libclang.so +usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/libclang-@LLVM_VERSION@.so diff --git a/debian/libclang-common-X.Y-dev.install.in b/debian/libclang-common-X.Y-dev.install.in new file mode 100644 index 0000000..3d9d13e --- /dev/null +++ b/debian/libclang-common-X.Y-dev.install.in @@ -0,0 +1,14 @@ +usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/include + +usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/lib +usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/*.txt + +#usr/lib/clang/@LLVM_VERSION_FULL@/lib /usr/lib/clang/@LLVM_VERSION@/ +#usr/lib/clang/@LLVM_VERSION_FULL@/include/ /usr/include/clang/@LLVM_VERSION@/ + +usr/lib/llvm-@LLVM_VERSION@/bin/clang-tblgen +usr/lib/llvm-@LLVM_VERSION@/bin/yaml-bench + +usr/bin/clang-tblgen-@LLVM_VERSION@ +usr/bin/yaml-bench-@LLVM_VERSION@ + diff --git a/debian/libclang-common-X.Y-dev.links.in b/debian/libclang-common-X.Y-dev.links.in new file mode 100644 index 0000000..717c6b2 --- /dev/null +++ b/debian/libclang-common-X.Y-dev.links.in @@ -0,0 +1,7 @@ +usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/include usr/include/clang/@LLVM_VERSION@/include +usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/include usr/lib/clang/@LLVM_VERSION@/include +usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/lib usr/lib/clang/@LLVM_VERSION@/lib +usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/include usr/include/clang/@LLVM_VERSION_FULL@/include +usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/include usr/lib/clang/@LLVM_VERSION_FULL@/include +usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/lib usr/lib/clang/@LLVM_VERSION_FULL@/lib + diff --git a/debian/libclang1-X.Y.install.in b/debian/libclang1-X.Y.install.in new file mode 100644 index 0000000..48a548a --- /dev/null +++ b/debian/libclang1-X.Y.install.in @@ -0,0 +1,2 @@ +usr/lib/llvm-@LLVM_VERSION@/lib/libclang-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/ + diff --git a/debian/libclang1-X.Y.links.in b/debian/libclang1-X.Y.links.in new file mode 100644 index 0000000..3ea44c8 --- /dev/null +++ b/debian/libclang1-X.Y.links.in @@ -0,0 +1,3 @@ +# as upstream +usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/libclang-@LLVM_VERSION@.so.1 +usr/lib/llvm-@LLVM_VERSION@/lib/libclang-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/libclang.so.1 diff --git a/debian/libclang1-X.Y.lintian-overrides.in b/debian/libclang1-X.Y.lintian-overrides.in new file mode 100644 index 0000000..9fc47a7 --- /dev/null +++ b/debian/libclang1-X.Y.lintian-overrides.in @@ -0,0 +1,5 @@ +# I know and I am not planning to change that yet. +libclang1-@LLVM_VERSION@: package-name-doesnt-match-sonames libclang1-@LLVM_VERSION@-1 +# Provided as transition +libclang1-@LLVM_VERSION@: dev-pkg-without-shlib-symlink usr/lib/*/libclang-@LLVM_VERSION@.so.1 usr/lib/*/libclang.so +libclang1-@LLVM_VERSION@: ldconfig-symlink-missing-for-shlib usr/lib/*/libclang-LLVM_VERSION@.so usr/lib/*/libclang-LLVM_VERSION@.so.1 libclang-LLVM_VERSION@.so diff --git a/debian/libclang1-X.Y.symbols.in b/debian/libclang1-X.Y.symbols.in new file mode 100644 index 0000000..b0b3432 --- /dev/null +++ b/debian/libclang1-X.Y.symbols.in @@ -0,0 +1,323 @@ +libclang-@LLVM_VERSION@.so.1 libclang1-@LLVM_VERSION@ #MINVER# + clang_BlockCommandComment_getArgText@Base 3.2 + clang_BlockCommandComment_getCommandName@Base 3.2 + clang_BlockCommandComment_getNumArgs@Base 3.2 + clang_BlockCommandComment_getParagraph@Base 3.2 + clang_CXCursorSet_contains@Base 3.2 + clang_CXCursorSet_insert@Base 3.2 + clang_CXIndex_getGlobalOptions@Base 3.2 + clang_CXIndex_setGlobalOptions@Base 3.2 + clang_CXXField_isMutable@Base 3.8 + clang_CXXMethod_isConst@Base 3.4 + clang_CXXMethod_isPureVirtual@Base 3.4 + clang_CXXMethod_isStatic@Base 3.2 + clang_CXXMethod_isVirtual@Base 3.2 + clang_Comment_getChild@Base 3.2 + clang_Comment_getKind@Base 3.2 + clang_Comment_getNumChildren@Base 3.2 + clang_Comment_isWhitespace@Base 3.2 + clang_CompilationDatabase_dispose@Base 3.2 + clang_CompilationDatabase_fromDirectory@Base 3.2 + clang_CompilationDatabase_getAllCompileCommands@Base 3.4 + clang_CompilationDatabase_getCompileCommands@Base 3.2 + clang_CompileCommand_getArg@Base 3.2 + clang_CompileCommand_getDirectory@Base 3.2 + clang_CompileCommand_getFilename@Base 3.8 + clang_CompileCommand_getMappedSourceContent@Base 3.8 + clang_CompileCommand_getMappedSourcePath@Base 3.8 + clang_CompileCommand_getNumArgs@Base 3.2 + clang_CompileCommands_dispose@Base 3.2 + clang_CompileCommands_getCommand@Base 3.2 + clang_CompileCommands_getSize@Base 3.2 + clang_Cursor_getArgument@Base 3.2 + clang_Cursor_getBriefCommentText@Base 3.2 + clang_Cursor_getCXXManglings@Base 3.8 + clang_Cursor_getCommentRange@Base 3.2 + clang_Cursor_getMangling@Base 3.6 + clang_Cursor_getModule@Base 3.2 + clang_Cursor_getNumArguments@Base 3.2 + clang_Cursor_getNumTemplateArguments@Base 3.6 + clang_Cursor_getObjCDeclQualifiers@Base 3.4 + clang_Cursor_getObjCPropertyAttributes@Base 3.4 + clang_Cursor_getObjCSelectorIndex@Base 3.2 + clang_Cursor_getOffsetOfField@Base 3.7 + clang_Cursor_getParsedComment@Base 3.2 + clang_Cursor_getRawCommentText@Base 3.2 + clang_Cursor_getReceiverType@Base 3.2 + clang_Cursor_getSpellingNameRange@Base 3.2 + clang_Cursor_getStorageClass@Base 3.6 + clang_Cursor_getTemplateArgumentKind@Base 3.6 + clang_Cursor_getTemplateArgumentType@Base 3.6 + clang_Cursor_getTemplateArgumentUnsignedValue@Base 3.6 + clang_Cursor_getTemplateArgumentValue@Base 3.6 + clang_Cursor_getTranslationUnit@Base 3.2 + clang_Cursor_isAnonymous@Base 3.7 + clang_Cursor_isBitField@Base 3.4 + clang_Cursor_isDynamicCall@Base 3.2 + clang_Cursor_isNull@Base 3.2 + clang_Cursor_isObjCOptional@Base 3.4 + clang_Cursor_isVariadic@Base 3.4 + clang_File_isEqual@Base 3.6 + clang_FullComment_getAsHTML@Base 3.2 + clang_FullComment_getAsXML@Base 3.2 + clang_HTMLStartTagComment_isSelfClosing@Base 3.2 + clang_HTMLStartTag_getAttrName@Base 3.2 + clang_HTMLStartTag_getAttrValue@Base 3.2 + clang_HTMLStartTag_getNumAttrs@Base 3.2 + clang_HTMLTagComment_getAsString@Base 3.2 + clang_HTMLTagComment_getTagName@Base 3.2 + clang_IndexAction_create@Base 3.2 + clang_IndexAction_dispose@Base 3.2 + clang_InlineCommandComment_getArgText@Base 3.2 + clang_InlineCommandComment_getCommandName@Base 3.2 + clang_InlineCommandComment_getNumArgs@Base 3.2 + clang_InlineCommandComment_getRenderKind@Base 3.2 + clang_InlineContentComment_hasTrailingNewline@Base 3.2 + clang_Location_isFromMainFile@Base 3.4 + clang_Location_isInSystemHeader@Base 3.4 + clang_ModuleMapDescriptor_create@Base 3.6 + clang_ModuleMapDescriptor_dispose@Base 3.6 + clang_ModuleMapDescriptor_setFrameworkModuleName@Base 3.6 + clang_ModuleMapDescriptor_setUmbrellaHeader@Base 3.6 + clang_ModuleMapDescriptor_writeToBuffer@Base 3.6 + clang_Module_getASTFile@Base 3.4 + clang_Module_getFullName@Base 3.2 + clang_Module_getName@Base 3.2 + clang_Module_getNumTopLevelHeaders@Base 3.2 + clang_Module_getParent@Base 3.2 + clang_Module_getTopLevelHeader@Base 3.2 + clang_Module_isSystem@Base 3.6 + clang_ParamCommandComment_getDirection@Base 3.2 + clang_ParamCommandComment_getParamIndex@Base 3.2 + clang_ParamCommandComment_getParamName@Base 3.2 + clang_ParamCommandComment_isDirectionExplicit@Base 3.2 + clang_ParamCommandComment_isParamIndexValid@Base 3.2 + clang_Range_isNull@Base 3.2 + clang_TParamCommandComment_getDepth@Base 3.2 + clang_TParamCommandComment_getIndex@Base 3.2 + clang_TParamCommandComment_getParamName@Base 3.2 + clang_TParamCommandComment_isParamPositionValid@Base 3.2 + clang_TextComment_getText@Base 3.2 + clang_Type_getAlignOf@Base 3.4 + clang_Type_getCXXRefQualifier@Base 3.4 + clang_Type_getClassType@Base 3.4 + clang_Type_getNumTemplateArguments@Base 3.6 + clang_Type_getOffsetOf@Base 3.4 + clang_Type_getSizeOf@Base 3.4 + clang_Type_getTemplateArgumentAsType@Base 3.6 + clang_Type_visitFields@Base 3.7 + clang_VerbatimBlockLineComment_getText@Base 3.2 + clang_VerbatimLineComment_getText@Base 3.2 + clang_VirtualFileOverlay_addFileMapping@Base 3.6 + clang_VirtualFileOverlay_create@Base 3.6 + clang_VirtualFileOverlay_dispose@Base 3.6 + clang_VirtualFileOverlay_setCaseSensitivity@Base 3.6 + clang_VirtualFileOverlay_writeToBuffer@Base 3.6 + clang_annotateTokens@Base 3.2 + clang_codeCompleteAt@Base 3.2 + clang_codeCompleteGetContainerKind@Base 3.2 + clang_codeCompleteGetContainerUSR@Base 3.2 + clang_codeCompleteGetContexts@Base 3.2 + clang_codeCompleteGetDiagnostic@Base 3.2 + clang_codeCompleteGetNumDiagnostics@Base 3.2 + clang_codeCompleteGetObjCSelector@Base 3.2 + clang_constructUSR_ObjCCategory@Base 3.2 + clang_constructUSR_ObjCClass@Base 3.2 + clang_constructUSR_ObjCIvar@Base 3.2 + clang_constructUSR_ObjCMethod@Base 3.2 + clang_constructUSR_ObjCProperty@Base 3.2 + clang_constructUSR_ObjCProtocol@Base 3.2 + clang_createCXCursorSet@Base 3.2 + clang_createIndex@Base 3.2 + clang_createTranslationUnit2@Base 3.6 + clang_createTranslationUnit@Base 3.2 + clang_createTranslationUnitFromSourceFile@Base 3.2 + clang_defaultCodeCompleteOptions@Base 3.2 + clang_defaultDiagnosticDisplayOptions@Base 3.2 + clang_defaultEditingTranslationUnitOptions@Base 3.2 + clang_defaultReparseOptions@Base 3.2 + clang_defaultSaveOptions@Base 3.2 + clang_disposeCXCursorSet@Base 3.2 + clang_disposeCXPlatformAvailability@Base 3.2 + clang_disposeCXTUResourceUsage@Base 3.2 + clang_disposeCodeCompleteResults@Base 3.2 + clang_disposeDiagnostic@Base 3.2 + clang_disposeDiagnosticSet@Base 3.2 + clang_disposeIndex@Base 3.2 + clang_disposeOverriddenCursors@Base 3.2 + clang_disposeSourceRangeList@Base 3.6 + clang_disposeString@Base 3.2 + clang_disposeStringSet@Base 3.8 + clang_disposeTokens@Base 3.2 + clang_disposeTranslationUnit@Base 3.2 + clang_enableStackTraces@Base 3.2 + clang_equalCursors@Base 3.2 + clang_equalLocations@Base 3.2 + clang_equalRanges@Base 3.2 + clang_equalTypes@Base 3.2 + clang_executeOnThread@Base 3.2 + clang_findIncludesInFile@Base 3.4 + clang_findIncludesInFileWithBlock@Base 3.4 + clang_findReferencesInFile@Base 3.2 + clang_findReferencesInFileWithBlock@Base 3.2 + clang_formatDiagnostic@Base 3.2 + clang_free@Base 3.7 + clang_getArgType@Base 3.2 + clang_getArrayElementType@Base 3.2 + clang_getArraySize@Base 3.2 + clang_getBuildSessionTimestamp@Base 3.6 + clang_getCString@Base 3.2 + clang_getCXTUResourceUsage@Base 3.2 + clang_getCXXAccessSpecifier@Base 3.2 + clang_getCanonicalCursor@Base 3.2 + clang_getCanonicalType@Base 3.2 + clang_getChildDiagnostics@Base 3.2 + clang_getClangVersion@Base 3.2 + clang_getCompletionAnnotation@Base 3.2 + clang_getCompletionAvailability@Base 3.2 + clang_getCompletionBriefComment@Base 3.2 + clang_getCompletionChunkCompletionString@Base 3.2 + clang_getCompletionChunkKind@Base 3.2 + clang_getCompletionChunkText@Base 3.2 + clang_getCompletionNumAnnotations@Base 3.2 + clang_getCompletionParent@Base 3.2 + clang_getCompletionPriority@Base 3.2 + clang_getCursor@Base 3.2 + clang_getCursorAvailability@Base 3.2 + clang_getCursorCompletionString@Base 3.2 + clang_getCursorDefinition@Base 3.2 + clang_getCursorDisplayName@Base 3.2 + clang_getCursorExtent@Base 3.2 + clang_getCursorKind@Base 3.2 + clang_getCursorKindSpelling@Base 3.2 + clang_getCursorLanguage@Base 3.2 + clang_getCursorLexicalParent@Base 3.2 + clang_getCursorLinkage@Base 3.2 + clang_getCursorLocation@Base 3.2 + clang_getCursorPlatformAvailability@Base 3.2 + clang_getCursorReferenceNameRange@Base 3.2 + clang_getCursorReferenced@Base 3.2 + clang_getCursorResultType@Base 3.2 + clang_getCursorSemanticParent@Base 3.2 + clang_getCursorSpelling@Base 3.2 + clang_getCursorType@Base 3.2 + clang_getCursorUSR@Base 3.2 + clang_getCursorVisibility@Base 3.8 + clang_getDeclObjCTypeEncoding@Base 3.2 + clang_getDefinitionSpellingAndExtent@Base 3.2 + clang_getDiagnostic@Base 3.2 + clang_getDiagnosticCategory@Base 3.2 + clang_getDiagnosticCategoryName@Base 3.2 + clang_getDiagnosticCategoryText@Base 3.2 + clang_getDiagnosticFixIt@Base 3.2 + clang_getDiagnosticInSet@Base 3.2 + clang_getDiagnosticLocation@Base 3.2 + clang_getDiagnosticNumFixIts@Base 3.2 + clang_getDiagnosticNumRanges@Base 3.2 + clang_getDiagnosticOption@Base 3.2 + clang_getDiagnosticRange@Base 3.2 + clang_getDiagnosticSetFromTU@Base 3.2 + clang_getDiagnosticSeverity@Base 3.2 + clang_getDiagnosticSpelling@Base 3.2 + clang_getElementType@Base 3.2 + clang_getEnumConstantDeclUnsignedValue@Base 3.2 + clang_getEnumConstantDeclValue@Base 3.2 + clang_getEnumDeclIntegerType@Base 3.2 + clang_getExpansionLocation@Base 3.2 + clang_getFieldDeclBitWidth@Base 3.4 + clang_getFile@Base 3.2 + clang_getFileLocation@Base 3.4 + clang_getFileName@Base 3.2 + clang_getFileTime@Base 3.2 + clang_getFileUniqueID@Base 3.4 + clang_getFunctionTypeCallingConv@Base 3.2 + clang_getIBOutletCollectionType@Base 3.2 + clang_getIncludedFile@Base 3.2 + clang_getInclusions@Base 3.2 + clang_getInstantiationLocation@Base 3.2 + clang_getLocation@Base 3.2 + clang_getLocationForOffset@Base 3.2 + clang_getModuleForFile@Base 3.6 + clang_getNullCursor@Base 3.2 + clang_getNullLocation@Base 3.2 + clang_getNullRange@Base 3.2 + clang_getNumArgTypes@Base 3.2 + clang_getNumCompletionChunks@Base 3.2 + clang_getNumDiagnostics@Base 3.2 + clang_getNumDiagnosticsInSet@Base 3.2 + clang_getNumElements@Base 3.2 + clang_getNumOverloadedDecls@Base 3.2 + clang_getOverloadedDecl@Base 3.2 + clang_getOverriddenCursors@Base 3.2 + clang_getPointeeType@Base 3.2 + clang_getPresumedLocation@Base 3.2 + clang_getRange@Base 3.2 + clang_getRangeEnd@Base 3.2 + clang_getRangeStart@Base 3.2 + clang_getRemappings@Base 3.2 + clang_getRemappingsFromFileList@Base 3.2 + clang_getResultType@Base 3.2 + clang_getSkippedRanges@Base 3.6 + clang_getSpecializedCursorTemplate@Base 3.2 + clang_getSpellingLocation@Base 3.2 + clang_getTUResourceUsageName@Base 3.2 + clang_getTemplateCursorKind@Base 3.2 + clang_getTokenExtent@Base 3.2 + clang_getTokenKind@Base 3.2 + clang_getTokenLocation@Base 3.2 + clang_getTokenSpelling@Base 3.2 + clang_getTranslationUnitCursor@Base 3.2 + clang_getTranslationUnitSpelling@Base 3.2 + clang_getTypeDeclaration@Base 3.2 + clang_getTypeKindSpelling@Base 3.2 + clang_getTypeSpelling@Base 3.4 + clang_getTypedefDeclUnderlyingType@Base 3.2 + clang_hashCursor@Base 3.2 + clang_indexLoc_getCXSourceLocation@Base 3.2 + clang_indexLoc_getFileLocation@Base 3.2 + clang_indexSourceFile@Base 3.2 + clang_indexSourceFileFullArgv@Base 3.8 + clang_indexTranslationUnit@Base 3.2 + clang_index_getCXXClassDeclInfo@Base 3.2 + clang_index_getClientContainer@Base 3.2 + clang_index_getClientEntity@Base 3.2 + clang_index_getIBOutletCollectionAttrInfo@Base 3.2 + clang_index_getObjCCategoryDeclInfo@Base 3.2 + clang_index_getObjCContainerDeclInfo@Base 3.2 + clang_index_getObjCInterfaceDeclInfo@Base 3.2 + clang_index_getObjCPropertyDeclInfo@Base 3.2 + clang_index_getObjCProtocolRefListInfo@Base 3.2 + clang_index_isEntityObjCContainerKind@Base 3.2 + clang_index_setClientContainer@Base 3.2 + clang_index_setClientEntity@Base 3.2 + clang_isAttribute@Base 3.2 + clang_isConstQualifiedType@Base 3.2 + clang_isCursorDefinition@Base 3.2 + clang_isDeclaration@Base 3.2 + clang_isExpression@Base 3.2 + clang_isFileMultipleIncludeGuarded@Base 3.2 + clang_isFunctionTypeVariadic@Base 3.2 + clang_isInvalid@Base 3.2 + clang_isPODType@Base 3.2 + clang_isPreprocessing@Base 3.2 + clang_isReference@Base 3.2 + clang_isRestrictQualifiedType@Base 3.2 + clang_isStatement@Base 3.2 + clang_isTranslationUnit@Base 3.2 + clang_isUnexposed@Base 3.2 + clang_isVirtualBase@Base 3.2 + clang_isVolatileQualifiedType@Base 3.2 + clang_loadDiagnostics@Base 3.2 + clang_parseTranslationUnit2@Base 3.6 + clang_parseTranslationUnit2FullArgv@Base 3.8 + clang_parseTranslationUnit@Base 3.2 + clang_remap_dispose@Base 3.2 + clang_remap_getFilenames@Base 3.2 + clang_remap_getNumFiles@Base 3.2 + clang_reparseTranslationUnit@Base 3.2 + clang_saveTranslationUnit@Base 3.2 + clang_sortCodeCompletionResults@Base 3.2 + clang_toggleCrashRecovery@Base 3.2 + clang_tokenize@Base 3.2 + clang_visitChildren@Base 3.2 + clang_visitChildrenWithBlock@Base 3.2 diff --git a/debian/liblldb-X.Y-dev.install.in b/debian/liblldb-X.Y-dev.install.in new file mode 100644 index 0000000..fc4f34b --- /dev/null +++ b/debian/liblldb-X.Y-dev.install.in @@ -0,0 +1,5 @@ +/usr/lib/llvm-@LLVM_VERSION@/include/lldb +/usr/lib/llvm-@LLVM_VERSION@/lib/liblldb*a +/usr/lib/llvm-@LLVM_VERSION@/lib/liblldb*so + + diff --git a/debian/liblldb-X.Y.install.in b/debian/liblldb-X.Y.install.in new file mode 100644 index 0000000..8545597 --- /dev/null +++ b/debian/liblldb-X.Y.install.in @@ -0,0 +1,2 @@ +usr/lib/llvm-@LLVM_VERSION@/lib/liblldb-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/ +usr/lib/llvm-@LLVM_VERSION@/lib/python2.7/site-packages/readline.so diff --git a/debian/liblldb-X.Y.links.in b/debian/liblldb-X.Y.links.in new file mode 100644 index 0000000..a222fbc --- /dev/null +++ b/debian/liblldb-X.Y.links.in @@ -0,0 +1,3 @@ +usr/lib/@DEB_HOST_MULTIARCH@/liblldb-@LLVM_VERSION@.so.1 usr/lib/@DEB_HOST_MULTIARCH@/liblldb-@LLVM_VERSION@.so +usr/lib/@DEB_HOST_MULTIARCH@/liblldb-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/liblldb.so.1 + diff --git a/debian/liblldb-X.Y.lintian-overrides.in b/debian/liblldb-X.Y.lintian-overrides.in new file mode 100644 index 0000000..180aec3 --- /dev/null +++ b/debian/liblldb-X.Y.lintian-overrides.in @@ -0,0 +1,5 @@ +# That is normal. The lib is not (yet?) shipped as a new package +liblldb-@LLVM_VERSION@: package-name-doesnt-match-sonames liblldb-@LLVM_VERSION@-1 +# For now, override this warning. We might create a -dev at some point +liblldb-@LLVM_VERSION@: non-dev-pkg-with-shlib-symlink usr/lib/*/liblldb.so.1 usr/lib/*/liblldb.so +liblldb-@LLVM_VERSION@: non-dev-pkg-with-shlib-symlink usr/lib/*/liblldb-@LLVM_VERSION@.so.1 usr/lib/*/liblldb-@LLVM_VERSION@.so diff --git a/debian/libllvm-X.Y-ocaml-dev.META.in b/debian/libllvm-X.Y-ocaml-dev.META.in new file mode 100644 index 0000000..366820d --- /dev/null +++ b/debian/libllvm-X.Y-ocaml-dev.META.in @@ -0,0 +1,63 @@ +description = "Low Level Virtual Machine bindings" +version = "@LLVM_VERSION@" + +directory = "+llvm-@LLVM_VERSION@" + +archive(byte) = "llvm.cma" +archive(native) = "llvm.cmxa" +linkopts = "-cclib -lstdc++ -cclib -lllvm" + +package "executionengine" +( + requires = "llvm-@LLVM_VERSION@" + version = "@LLVM_VERSION@" + archive(native) = "llvm_executionengine.cmxa" + archive(byte) = "llvm_executionengine.cma" + linkopts = "-cclib -lllvm_executionengine" +) + +package "target" +( + requires = "llvm-@LLVM_VERSION@" + version = "@LLVM_VERSION@" + archive(native) = "llvm_target.cmxa" + archive(byte) = "llvm_target.cma" + linkopts = "-cclib -lllvm_target" +) + +package "scalar_opts" +( + requires = "llvm-@LLVM_VERSION@ llvm-@LLVM_VERSION@.target" + version = "@LLVM_VERSION@" + archive(native) = "llvm_scalar_opts.cmxa" + archive(byte) = "llvm_scalar_opts.cma" + linkopts = "-cclib -lllvm_scalar_opts" +) + +package "analysis" +( + requires = "llvm-@LLVM_VERSION@" + version = "@LLVM_VERSION@" + archive(native) = "llvm_analysis.cmxa" + archive(byte) = "llvm_analysis.cma" + linkopts = "-cclib -lllvm_analysis" +) + +package "bitwriter" +( + requires = "llvm-@LLVM_VERSION@" + version = "@LLVM_VERSION@" + archive(native) = "llvm_bitwriter.cmxa" + archive(byte) = "llvm_bitwriter.cma" + linkopts = "-cclib -lllvm_bitwriter" +) + +package "bitreader" +( + requires = "llvm-@LLVM_VERSION@ llvm-@LLVM_VERSION@.bitwriter" + version = "@LLVM_VERSION@" + archive(native) = "llvm_bitreader.cmxa" + archive(byte) = "llvm_bitreader.cma" + linkopts = "-cclib -lllvm_bitreader" +) + diff --git a/debian/libllvm-X.Y-ocaml-dev.dirs.in b/debian/libllvm-X.Y-ocaml-dev.dirs.in new file mode 100644 index 0000000..6c9c736 --- /dev/null +++ b/debian/libllvm-X.Y-ocaml-dev.dirs.in @@ -0,0 +1,2 @@ +@OCAML_STDLIB_DIR@/META/ + diff --git a/debian/libllvm-X.Y-ocaml-dev.install.in b/debian/libllvm-X.Y-ocaml-dev.install.in new file mode 100644 index 0000000..8ea4833 --- /dev/null +++ b/debian/libllvm-X.Y-ocaml-dev.install.in @@ -0,0 +1,2 @@ +#@OCAML_STDLIB_DIR@/llvm-@LLVM_VERSION@ @OCAML_STDLIB_DIR@/ +#usr/lib/llvm-@LLVM_VERSION@/docs/llvm/ocamldoc/html usr/share/doc/libllvm-@LLVM_VERSION@-ocaml-dev/ diff --git a/debian/libllvm-X.Y-ocaml-dev.lintian-overrides.in b/debian/libllvm-X.Y-ocaml-dev.lintian-overrides.in new file mode 100644 index 0000000..5d25d44 --- /dev/null +++ b/debian/libllvm-X.Y-ocaml-dev.lintian-overrides.in @@ -0,0 +1,2 @@ +# It is in the section ocaml which is fine. +libllvm-@LLVM_VERSION@-ocaml-dev: wrong-section-according-to-package-name libllvm-@LLVM_VERSION@-ocaml-dev => libdevel diff --git a/debian/libllvmX.Y.install.in b/debian/libllvmX.Y.install.in new file mode 100644 index 0000000..f8d968f --- /dev/null +++ b/debian/libllvmX.Y.install.in @@ -0,0 +1 @@ +usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/ diff --git a/debian/libllvmX.Y.links.in b/debian/libllvmX.Y.links.in new file mode 100644 index 0000000..067b088 --- /dev/null +++ b/debian/libllvmX.Y.links.in @@ -0,0 +1,4 @@ +# Should be uncommented for @LLVM_VERSION@.1 and other +# usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION@.so.1 +usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION@.so + diff --git a/debian/libllvmX.Y.lintian-overrides.in b/debian/libllvmX.Y.lintian-overrides.in new file mode 100644 index 0000000..49f7ef2 --- /dev/null +++ b/debian/libllvmX.Y.lintian-overrides.in @@ -0,0 +1,2 @@ +# That is normal. Upstream does not match the debian convention +libllvm@LLVM_VERSION@: package-name-doesnt-match-sonames libLLVM-@LLVM_VERSION@-1 diff --git a/debian/lldb-X.Y.install.in b/debian/lldb-X.Y.install.in new file mode 100644 index 0000000..0baf795 --- /dev/null +++ b/debian/lldb-X.Y.install.in @@ -0,0 +1,9 @@ +usr/lib/llvm-@LLVM_VERSION@/bin/lldb* +usr/lib/llvm-@LLVM_VERSION@/bin/lldb-mi* +usr/lib/llvm-@LLVM_VERSION@/bin/lldb-server* +usr/lib/llvm-@LLVM_VERSION@/bin/lldb-argdumper + +usr/bin/lldb-@LLVM_VERSION@* +usr/bin/lldb-server-@LLVM_VERSION@* +usr/bin/lldb-mi-@LLVM_VERSION@* +usr/bin/lldb-argdumper-@LLVM_VERSION@ diff --git a/debian/lldb-X.Y.lintian-overrides.in b/debian/lldb-X.Y.lintian-overrides.in new file mode 100644 index 0000000..a456a34 --- /dev/null +++ b/debian/lldb-X.Y.lintian-overrides.in @@ -0,0 +1,3 @@ +lldb-@LLVM_VERSION@: non-dev-pkg-with-shlib-symlink usr/lib/*/liblldb.so.1 usr/lib/*/liblldb.so +# Does not really matter +lldb-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/lldb-@LLVM_VERSION@.1.gz diff --git a/debian/lldb-X.Y.manpages.in b/debian/lldb-X.Y.manpages.in new file mode 100644 index 0000000..36a62ae --- /dev/null +++ b/debian/lldb-X.Y.manpages.in @@ -0,0 +1,2 @@ +debian/man/lldb-@LLVM_VERSION@.1 +debian/man/lldb-mi-@LLVM_VERSION@.1 diff --git a/debian/lldb-X.Y.postinst.in b/debian/lldb-X.Y.postinst.in new file mode 100644 index 0000000..a5a6071 --- /dev/null +++ b/debian/lldb-X.Y.postinst.in @@ -0,0 +1,8 @@ +#!/bin/sh -e + +if [ "$1" = "configure" ] +then + ldconfig +fi + +#DEBHELPER# diff --git a/debian/llvm-X.Y-dev.dirs.in b/debian/llvm-X.Y-dev.dirs.in new file mode 100644 index 0000000..3b3b586 --- /dev/null +++ b/debian/llvm-X.Y-dev.dirs.in @@ -0,0 +1,5 @@ +/usr/lib/llvm-@LLVM_VERSION@/lib +/usr/lib/llvm-@LLVM_VERSION@/build +/usr/lib/llvm-@LLVM_VERSION@/include +usr/share/doc/llvm-@LLVM_VERSION@-dev +usr/share/emacs/site-lisp/llvm-@LLVM_VERSION@ diff --git a/debian/llvm-X.Y-dev.install.in b/debian/llvm-X.Y-dev.install.in new file mode 100644 index 0000000..d532f96 --- /dev/null +++ b/debian/llvm-X.Y-dev.install.in @@ -0,0 +1,31 @@ +usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM*.a +#usr/lib/llvm-@LLVM_VERSION@/lib/libllvm*.a +usr/lib/llvm-@LLVM_VERSION@/lib/LLVM*.so +usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM.so +usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM-@LLVM_VERSION@.so +usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM-@LLVM_VERSION_FULL@.so +usr/lib/llvm-@LLVM_VERSION@/lib/libLTO.* +usr/lib/llvm-@LLVM_VERSION@/lib/BugpointPasses.so +usr/lib/llvm-@LLVM_VERSION@/include/llvm/ usr/include/llvm-@LLVM_VERSION@/ +usr/lib/llvm-@LLVM_VERSION@/include/llvm-c/ usr/include/llvm-c-@LLVM_VERSION@/ +# Explicit debian/tmp since there are multiple declarations +debian/tmp/usr/lib/llvm-@LLVM_VERSION@/share/llvm/cmake/*.cmake + +utils/vim/indent/llvm-@LLVM_VERSION@.vim usr/share/vim/addons/indent/ + +utils/vim/syntax/llvm-@LLVM_VERSION@.vim usr/share/vim/addons/syntax/ +utils/vim/syntax/tablegen-@LLVM_VERSION@.vim usr/share/vim/addons/syntax/ + +utils/vim/ftdetect/llvm-@LLVM_VERSION@.vim usr/share/vim/addons/ftdetect/ +utils/vim/ftdetect/tablegen-@LLVM_VERSION@.vim usr/share/vim/addons/ftdetect/ + +utils/vim/ftplugin/llvm-@LLVM_VERSION@.vim usr/share/vim/addons/ftplugin/ +utils/vim/ftplugin/tablegen-@LLVM_VERSION@.vim usr/share/vim/addons/ftplugin/ + +utils/vim/llvm-@LLVM_VERSION@-vimrc usr/share/vim/addons + + +utils/emacs/emacs.el usr/share/emacs/site-lisp/llvm-@LLVM_VERSION@/ +utils/emacs/llvm-mode.el usr/share/emacs/site-lisp/llvm-@LLVM_VERSION@/ +utils/emacs/tablegen-mode.el usr/share/emacs/site-lisp/llvm-@LLVM_VERSION@/ + diff --git a/debian/llvm-X.Y-dev.links.in b/debian/llvm-X.Y-dev.links.in new file mode 100644 index 0000000..fecd949 --- /dev/null +++ b/debian/llvm-X.Y-dev.links.in @@ -0,0 +1,18 @@ +usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM-@LLVM_VERSION@.so +usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM-@LLVM_VERSION@.so.1 +usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM-@LLVM_VERSION_FULL@.so.1 +usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM-@LLVM_VERSION_FULL@.so +usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION@.so.1 usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION_FULL@.so.1 + +usr/include/llvm-c-@LLVM_VERSION@/llvm-c usr/lib/llvm-@LLVM_VERSION@/include/llvm-c +usr/include/llvm-@LLVM_VERSION@/llvm usr/lib/llvm-@LLVM_VERSION@/include/llvm +usr/include/llvm-c-@LLVM_VERSION@/llvm-c usr/lib/llvm-@LLVM_VERSION@/build/include/llvm-c +usr/include/llvm-@LLVM_VERSION@/llvm usr/lib/llvm-@LLVM_VERSION@/build/include/llvm + +usr/lib/llvm-@LLVM_VERSION@/include/ usr/lib/llvm-@LLVM_VERSION@/build/include +usr/lib/llvm-@LLVM_VERSION@/lib/ usr/lib/llvm-@LLVM_VERSION@/build/lib +usr/lib/llvm-@LLVM_VERSION@/share/ usr/lib/llvm-@LLVM_VERSION@/build/share +usr/lib/llvm-@LLVM_VERSION@/ usr/lib/llvm-@LLVM_VERSION@/build/Release +usr/lib/llvm-@LLVM_VERSION@/ usr/lib/llvm-@LLVM_VERSION@/build/Debug+Asserts + +usr/lib/llvm-@LLVM_VERSION@/share/llvm/cmake usr/share/llvm-@LLVM_VERSION@/cmake diff --git a/debian/llvm-X.Y-doc.dirs.in b/debian/llvm-X.Y-doc.dirs.in new file mode 100644 index 0000000..5379e8e --- /dev/null +++ b/debian/llvm-X.Y-doc.dirs.in @@ -0,0 +1 @@ +usr/share/doc/llvm-@LLVM_VERSION@-doc diff --git a/debian/llvm-X.Y-doc.install.in b/debian/llvm-X.Y-doc.install.in new file mode 100644 index 0000000..6ac115a --- /dev/null +++ b/debian/llvm-X.Y-doc.install.in @@ -0,0 +1,6 @@ +docs/_build/html usr/share/doc/llvm-@LLVM_VERSION@-doc/ +#usr/lib/llvm-@LLVM_VERSION@/docs/llvm/html.tar.gz +#usr/lib/llvm-@LLVM_VERSION@/docs/llvm/ocamldoc.tar.gz +#usr/lib/llvm-@LLVM_VERSION@/docs/llvm/html/Dummy.html +#usr/lib/llvm-@LLVM_VERSION@/docs/llvm/html/doxygen.css +#usr/lib/llvm-@LLVM_VERSION@/docs/llvm/html/LibASTMatchersReference.html diff --git a/debian/llvm-X.Y-examples.dirs.in b/debian/llvm-X.Y-examples.dirs.in new file mode 100644 index 0000000..a8b75c6 --- /dev/null +++ b/debian/llvm-X.Y-examples.dirs.in @@ -0,0 +1 @@ +usr/share/doc/llvm-@LLVM_VERSION@-examples diff --git a/debian/llvm-X.Y-examples.examples.in b/debian/llvm-X.Y-examples.examples.in new file mode 100644 index 0000000..e39721e --- /dev/null +++ b/debian/llvm-X.Y-examples.examples.in @@ -0,0 +1 @@ +examples/* diff --git a/debian/llvm-X.Y-examples.links.in b/debian/llvm-X.Y-examples.links.in new file mode 100644 index 0000000..a8d74aa --- /dev/null +++ b/debian/llvm-X.Y-examples.links.in @@ -0,0 +1,3 @@ +/usr/lib/llvm-@LLVM_VERSION@/build/Makefile.common usr/share/doc/llvm-@LLVM_VERSION@-examples/Makefile.common +/usr/lib/llvm-@LLVM_VERSION@/build/Makefile.config usr/share/doc/llvm-@LLVM_VERSION@-examples/Makefile.config +/usr/lib/llvm-@LLVM_VERSION@/build/Makefile.rules usr/share/doc/llvm-@LLVM_VERSION@-examples/Makefile.rules diff --git a/debian/llvm-X.Y-runtime.binfmt.in b/debian/llvm-X.Y-runtime.binfmt.in new file mode 100644 index 0000000..6bb1df7 --- /dev/null +++ b/debian/llvm-X.Y-runtime.binfmt.in @@ -0,0 +1,3 @@ +package llvm-@LLVM_VERSION@-runtime +interpreter /usr/bin/lli-@LLVM_VERSION@ +magic BC diff --git a/debian/llvm-X.Y-runtime.install.in b/debian/llvm-X.Y-runtime.install.in new file mode 100644 index 0000000..2fe0d36 --- /dev/null +++ b/debian/llvm-X.Y-runtime.install.in @@ -0,0 +1,6 @@ +usr/lib/llvm-@LLVM_VERSION@/bin/lli + +usr/bin/lli-@LLVM_VERSION@ + +debian/llvm-@LLVM_VERSION@-runtime.binfmt usr/share/binfmts/ + diff --git a/debian/llvm-X.Y-runtime.lintian-overrides.in b/debian/llvm-X.Y-runtime.lintian-overrides.in new file mode 100644 index 0000000..e94e713 --- /dev/null +++ b/debian/llvm-X.Y-runtime.lintian-overrides.in @@ -0,0 +1 @@ +llvm-@LLVM_VERSION@-runtime: binary-without-manpage usr/bin/lli-child-target-@LLVM_VERSION@ diff --git a/debian/llvm-X.Y-runtime.manpages.in b/debian/llvm-X.Y-runtime.manpages.in new file mode 100644 index 0000000..839952d --- /dev/null +++ b/debian/llvm-X.Y-runtime.manpages.in @@ -0,0 +1 @@ +debian/man/lli* diff --git a/debian/llvm-X.Y-runtime.postinst.in b/debian/llvm-X.Y-runtime.postinst.in new file mode 100644 index 0000000..987b3ea --- /dev/null +++ b/debian/llvm-X.Y-runtime.postinst.in @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +if test "$1" = "configure"; then + if test -x /usr/sbin/update-binfmts; then + update-binfmts --import llvm-@LLVM_VERSION@-runtime.binfmt || true + fi +fi + +#DEBHELPER# diff --git a/debian/llvm-X.Y-runtime.prerm.in b/debian/llvm-X.Y-runtime.prerm.in new file mode 100644 index 0000000..3f16015 --- /dev/null +++ b/debian/llvm-X.Y-runtime.prerm.in @@ -0,0 +1,18 @@ +#!/bin/sh + +set -e + +if test "$1" = "remove"; then + if test -x /usr/sbin/update-binfmts; then + update-binfmts --package llvm-@LLVM_VERSION@-runtime \ + --remove llvm-@LLVM_VERSION@-runtime.binfmt /usr/bin/lli-@LLVM_VERSION@ || true + if test -f /var/lib/binfmts/llvm-@LLVM_VERSION@.binfmt; then + # Purge old file + update-binfmts --package llvm-@LLVM_VERSION@-runtime \ + --remove llvm-@LLVM_VERSION@.binfmt /usr/bin/lli-@LLVM_VERSION@ || true + fi + fi +fi + +#DEBHELPER# + diff --git a/debian/llvm-X.Y-tools.dirs.in b/debian/llvm-X.Y-tools.dirs.in new file mode 100644 index 0000000..401df06 --- /dev/null +++ b/debian/llvm-X.Y-tools.dirs.in @@ -0,0 +1,2 @@ +/usr/lib/llvm-@LLVM_VERSION@/build/unittests +/usr/lib/llvm-@LLVM_VERSION@/build/utils/lit/ diff --git a/debian/llvm-X.Y-tools.install.in b/debian/llvm-X.Y-tools.install.in new file mode 100644 index 0000000..db5574f --- /dev/null +++ b/debian/llvm-X.Y-tools.install.in @@ -0,0 +1,9 @@ +usr/lib/llvm-@LLVM_VERSION@/bin/count +usr/lib/llvm-@LLVM_VERSION@/bin/FileCheck +usr/lib/llvm-@LLVM_VERSION@/bin/not + +utils/lit/* /usr/lib/llvm-@LLVM_VERSION@/build/utils/lit/ + +usr/bin/count-@LLVM_VERSION@ +usr/bin/FileCheck-@LLVM_VERSION@ +usr/bin/not-@LLVM_VERSION@ diff --git a/debian/llvm-X.Y.dirs.in b/debian/llvm-X.Y.dirs.in new file mode 100644 index 0000000..56a9655 --- /dev/null +++ b/debian/llvm-X.Y.dirs.in @@ -0,0 +1,3 @@ +/usr/lib/llvm-@LLVM_VERSION@/bin +usr/share/man/man1 +usr/share/doc/llvm-@LLVM_VERSION@ diff --git a/debian/llvm-X.Y.install.in b/debian/llvm-X.Y.install.in new file mode 100644 index 0000000..0fd6a1e --- /dev/null +++ b/debian/llvm-X.Y.install.in @@ -0,0 +1,14 @@ +usr/lib/llvm-@LLVM_VERSION@/bin/llvm-* +usr/lib/llvm-@LLVM_VERSION@/bin/opt* +usr/lib/llvm-@LLVM_VERSION@/bin/bugpoint* +usr/lib/llvm-@LLVM_VERSION@/bin/llc* +usr/lib/llvm-@LLVM_VERSION@/bin/obj2yaml +usr/lib/llvm-@LLVM_VERSION@/bin/yaml2obj +usr/lib/llvm-@LLVM_VERSION@/bin/verify-uselistorder +usr/bin/llvm-* +usr/bin/opt* +usr/bin/bugpoint* +usr/bin/llc* +usr/bin/obj2yaml-* +usr/bin/yaml2obj-* +usr/bin/verify-uselistorder-* diff --git a/debian/llvm-X.Y.lintian-overrides.in b/debian/llvm-X.Y.lintian-overrides.in new file mode 100644 index 0000000..89080d3 --- /dev/null +++ b/debian/llvm-X.Y.lintian-overrides.in @@ -0,0 +1,8 @@ +# I know but well... +llvm-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/llvm-dwarfdump-@LLVM_VERSION@.1.gz +llvm-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/llvm-mc-@LLVM_VERSION@.1.gz +llvm-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/llvm-mcmarkup-@LLVM_VERSION@.1.gz +llvm-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/llvm-objdump-@LLVM_VERSION@.1.gz +llvm-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/llvm-rtdyld-@LLVM_VERSION@.1.gz +llvm-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/llvm-size-@LLVM_VERSION@.1.gz +llvm-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/llvm-ranlib-@LLVM_VERSION@.1.gz diff --git a/debian/llvm-X.Y.manpages.in b/debian/llvm-X.Y.manpages.in new file mode 100644 index 0000000..0599d72 --- /dev/null +++ b/debian/llvm-X.Y.manpages.in @@ -0,0 +1,9 @@ +docs/_build/man/* +debian/man/llvm-dwarfdump-@LLVM_VERSION@.1 +debian/man/llvm-mc-@LLVM_VERSION@.1 +debian/man/llvm-mcmarkup-@LLVM_VERSION@.1 +debian/man/llvm-objdump-@LLVM_VERSION@.1 +debian/man/llvm-rtdyld-@LLVM_VERSION@.1 +debian/man/llvm-size-@LLVM_VERSION@.1 +debian/man/llvm-ranlib-@LLVM_VERSION@.1 + diff --git a/debian/llvm-priv-dev.dirs b/debian/llvm-priv-dev.dirs new file mode 100644 index 0000000..dab8663 --- /dev/null +++ b/debian/llvm-priv-dev.dirs @@ -0,0 +1 @@ +/usr/lib/llvm-3.1/build diff --git a/debian/orig-tar.sh b/debian/orig-tar.sh new file mode 100755 index 0000000..afaf2c9 --- /dev/null +++ b/debian/orig-tar.sh @@ -0,0 +1,191 @@ +#!/bin/sh +# This script will create the following tarballs: +# llvm-toolchain-snapshot-3.2_3.2repack.orig-clang.tar.bz2 +# llvm-toolchain-snapshot-3.2_3.2repack.orig-clang-extra.tar.bz2 +# llvm-toolchain-snapshot-3.2_3.2repack.orig-compiler-rt.tar.bz2 +# llvm-toolchain-snapshot-3.2_3.2repack.orig-lldb.tar.bz2 +# llvm-toolchain-snapshot-3.2_3.2repack.orig-polly.tar.bz2 +# llvm-toolchain-snapshot-3.2_3.2repack.orig.tar.bz2 +set -e + +# TODO rest of the options + +# To create an rc1 release: +# sh 3.4/debian/orig-tar.sh RELEASE_34 rc1 + +SVN_BASE_URL=http://llvm.org/svn/llvm-project/ +MAJOR_VERSION=3.8 +CURRENT_VERSION=3.8 # Should be changed to 3.5.1 later + +if test -n "$1"; then +# http://llvm.org/svn/llvm-project/{cfe,llvm,compiler-rt,...}/branches/google/stable/ +# For example: sh 3.4/debian/orig-tar.sh release_34 + BRANCH=$1 +fi + +if test -n "$1" -a -n "$2"; then +# http://llvm.org/svn/llvm-project/{cfe,llvm,compiler-rt,...}/tags/RELEASE_34/rc1/ +# For example: sh 3.4/debian/orig-tar.sh RELEASE_34 rc2 + BRANCH=$1 + TAG=$2 + RCRELEASE="true" +fi + +get_svn_url() { + MODULE=$1 + BRANCH=$2 + TAG=$3 + if test -n "$TAG"; then + SVN_URL="$SVN_BASE_URL/$MODULE/tags/$BRANCH/$TAG" + else + if test -n "$BRANCH"; then + SVN_URL="$SVN_BASE_URL/$MODULE/branches/$BRANCH" + else + SVN_URL="$SVN_BASE_URL/$MODULE/trunk/" + fi + fi + echo $SVN_URL +} + +get_higher_revision() { + PROJECTS="llvm cfe compiler-rt polly lldb clang-tools-extra" + REVISION_MAX=0 + for f in $PROJECTS; do + REVISION=$(LANG=C svn info $(get_svn_url $f $BRANCH $TAG)|grep "^Last Changed Rev:"|awk '{print $4}') + if test $REVISION -gt $REVISION_MAX; then + REVISION_MAX=$REVISION + fi + done + echo $REVISION_MAX +} + +SVN_ARCHIVES=svn-archives + +checkout_sources() { + PROJECT=$1 + URL=$2 + TARGET=$3 + BRANCH=$4 + if test -n "$BRANCH"; then + REVISION=$5 + fi + echo "$PROJECT / $URL / $BRANCH / $TARGET / $REVISION" + + cd $SVN_ARCHIVES/ + DEST=$PROJECT-$BRANCH + if test -d $DEST; then + cd $DEST + if test -n "$BRANCH"; then + svn up + else + svn up -r $REVISION + fi + cd .. + else + if test -n "$BRANCH"; then + svn co $URL $DEST + else + svn co -r $REVISION $URL $DEST + fi + fi + rm -rf ../$TARGET + rsync -r --exclude=.svn $DEST/ ../$TARGET + cd .. +} + +if test -n "$BRANCH"; then + REVISION=$(get_higher_revision) + # Do not use the revision when exporting branch. We consider that all the + # branch are sync + SVN_CMD="svn export" +else + REVISION=$(LANG=C svn info $(get_svn_url llvm)|grep "^Revision:"|awk '{print $2}') + SVN_CMD="svn export -r $REVISION" +fi + +if test -n "$RCRELEASE"; then + if test "$TAG" = "final"; then + VERSION=$MAJOR_VERSION + else + VERSION=$MAJOR_VERSION"~+"$TAG + fi + FULL_VERSION="llvm-toolchain-"$MAJOR_VERSION"_"$VERSION +else + VERSION=$CURRENT_VERSION"~svn"$REVISION + if echo $BRANCH|grep -q release_; then + FULL_VERSION="llvm-toolchain-"$MAJOR_VERSION"_"$VERSION + else + FULL_VERSION="llvm-toolchain-snapshot_"$VERSION + fi +fi + +mkdir -p $SVN_ARCHIVES + +# LLVM +LLVM_TARGET=$FULL_VERSION +checkout_sources llvm $(get_svn_url llvm $BRANCH $TAG) $LLVM_TARGET "$BRANCH" $REVISION +tar jcvf $FULL_VERSION.orig.tar.bz2 $LLVM_TARGET +rm -rf $LLVM_TARGET + + +# Clang +CLANG_TARGET=clang_$VERSION +checkout_sources clang $(get_svn_url cfe $BRANCH $TAG) $CLANG_TARGET "$BRANCH" $REVISION +tar jcvf $FULL_VERSION.orig-clang.tar.bz2 $CLANG_TARGET +rm -rf $CLANG_TARGET + + +# Clang extra +CLANG_TARGET=clang-tools-extra_$VERSION +checkout_sources clang-tools-extra $(get_svn_url clang-tools-extra $BRANCH $TAG) $CLANG_TARGET "$BRANCH" $REVISION +tar jcvf $FULL_VERSION.orig-clang-tools-extra.tar.bz2 $CLANG_TARGET +rm -rf $CLANG_TARGET + +# Compiler-rt +COMPILER_RT_TARGET=compiler-rt_$VERSION +checkout_sources compiler-rt $(get_svn_url compiler-rt $BRANCH $TAG) $COMPILER_RT_TARGET "$BRANCH" $REVISION +#$SVN_CMD $(get_svn_url compiler-rt $BRANCH $TAG) $COMPILER_RT_TARGET +tar jcvf $FULL_VERSION.orig-compiler-rt.tar.bz2 $COMPILER_RT_TARGET +rm -rf $COMPILER_RT_TARGET + +# Polly +POLLY_TARGET=polly_$VERSION +checkout_sources polly $(get_svn_url polly $BRANCH $TAG) $POLLY_TARGET "$BRANCH" $REVISION +#$SVN_CMD $(get_svn_url polly $BRANCH $TAG) $POLLY_TARGET +rm -rf $POLLY_TARGET/www $POLLY_TARGET/autoconf/config.sub $POLLY_TARGET/autoconf/config.guess +tar jcvf $FULL_VERSION.orig-polly.tar.bz2 $POLLY_TARGET +rm -rf $POLLY_TARGET + +# # LLD +# LLD_TARGET=lld_$VERSION +# checkout_sources lld $(get_svn_url lld $BRANCH $TAG) $LLD_TARGET "$BRANCH" $REVISION +# #$SVN_CMD $(get_svn_url lld $BRANCH $TAG) $LLD_TARGET +# rm -rf $LLD_TARGET/www/ +# tar jcvf $FULL_VERSION.orig-lld.tar.bz2 $LLD_TARGET +# rm -rf $LLD_TARGET + +# LLDB +LLDB_TARGET=lldb_$VERSION +checkout_sources lldb $(get_svn_url lldb $BRANCH $TAG) $LLDB_TARGET "$BRANCH" $REVISION +#$SVN_CMD $(get_svn_url lldb $BRANCH $TAG) $LLDB_TARGET +rm -rf $LLDB_TARGET/www/ +tar jcvf $FULL_VERSION.orig-lldb.tar.bz2 $LLDB_TARGET +rm -rf $LLDB_TARGET + +PATH_DEBIAN="$(pwd)/$(dirname $0)/../" +echo "going into $PATH_DEBIAN" +export DEBFULLNAME="Sylvestre Ledru" +export DEBEMAIL="sylvestre@debian.org" +cd $PATH_DEBIAN + +if test -z "$DISTRIBUTION"; then + DISTRIBUTION="experimental" +fi + +if test -n "$RCRELEASE" -o -n "$BRANCH"; then + EXTRA_DCH_FLAGS="--force-bad-version --allow-lower-version" +fi + +dch $EXTRA_DCH_FLAGS --distribution $DISTRIBUTION --newversion 1:$VERSION-1~exp1 "New snapshot release" + +exit 0 diff --git a/debian/patches/0003-Debian-version-info-and-bugreport.patch b/debian/patches/0003-Debian-version-info-and-bugreport.patch new file mode 100644 index 0000000..6d28f02 --- /dev/null +++ b/debian/patches/0003-Debian-version-info-and-bugreport.patch @@ -0,0 +1,15 @@ +Index: llvm-toolchain-snapshot_3.7~svn241915/lib/Support/CommandLine.cpp +=================================================================== +--- llvm-toolchain-snapshot_3.7~svn241915.orig/lib/Support/CommandLine.cpp ++++ llvm-toolchain-snapshot_3.7~svn241915/lib/Support/CommandLine.cpp +@@ -1747,6 +1747,10 @@ public: + OS << " " << LLVM_VERSION_INFO; + #endif + OS << "\n "; ++#ifdef LLVM_DEBIAN_INFO ++ OS << LLVM_DEBIAN_INFO; ++#endif ++ OS << "\n "; + #ifndef __OPTIMIZE__ + OS << "DEBUG build"; + #else diff --git a/debian/patches/0021-shared-lib-debian.patch b/debian/patches/0021-shared-lib-debian.patch new file mode 100644 index 0000000..b6291fb --- /dev/null +++ b/debian/patches/0021-shared-lib-debian.patch @@ -0,0 +1,26 @@ +Index: llvm-toolchain-snapshot_3.7~svn241915/tools/llvm-shlib/Makefile +=================================================================== +--- llvm-toolchain-snapshot_3.7~svn241915.orig/tools/llvm-shlib/Makefile ++++ llvm-toolchain-snapshot_3.7~svn241915/tools/llvm-shlib/Makefile +@@ -41,6 +41,12 @@ LLVMLibsOptions := $(IncludeInLibLlvm:$( + LLVMLibsPaths := $(IncludeInLibLlvm) + + $(LibName.SO): $(LLVMLibsPaths) ++ $(Echo) Linking $(BuildMode) $(SharedLibKindMessage) \ ++ $(LIBRARYNAME)$(SHLIBEXT) ++ $(Verb) $(Link) $(SharedLinkOptions) -o $@ $(ObjectsO) \ ++ $(ProjLibsOptions) $(LLVMLibsOptions) $(LIBS) ++ mv $(LibName.SO) $(LibName.SO).1 ++ ln -s $(notdir $(LibName.SO)).1 $(LibName.SO) + + ifeq ($(HOST_OS),Darwin) + # set dylib internal version number to llvmCore submission number +@@ -61,7 +67,7 @@ endif + + ifeq ($(HOST_OS), $(filter $(HOST_OS), DragonFly Linux FreeBSD GNU/kFreeBSD GNU)) + # Add soname to the library. +- LLVMLibsOptions += -Wl,--soname,lib$(LIBRARYNAME)$(SHLIBEXT) ++ LLVMLibsOptions += -Wl,--soname,lib$(LIBRARYNAME)$(SHLIBEXT) -Wl,-Bsymbolic-functions + endif + + ifeq ($(HOST_OS), $(filter $(HOST_OS), Linux GNU GNU/kFreeBSD)) diff --git a/debian/patches/0023-link-libopagent.patch b/debian/patches/0023-link-libopagent.patch new file mode 100644 index 0000000..7a4ac52 --- /dev/null +++ b/debian/patches/0023-link-libopagent.patch @@ -0,0 +1,33 @@ +Index: llvm-toolchain-snapshot_3.7~svn241915/configure +=================================================================== +--- llvm-toolchain-snapshot_3.7~svn241915.orig/configure ++++ llvm-toolchain-snapshot_3.7~svn241915/configure +@@ -10115,7 +10115,7 @@ if test "${with_oprofile+set}" = set; th + case $llvm_cv_os_type in + Linux) + if test -n "$llvm_cv_oppath" ; then +- LIBS="$LIBS -lopagent -L${llvm_cv_oppath} -Wl,-rpath,${llvm_cv_oppath}" ++ #LIBS="$LIBS -lopagent -L${llvm_cv_oppath} -Wl,-rpath,${llvm_cv_oppath}" + { echo "$as_me:$LINENO: checking for library containing bfd_init" >&5 + echo $ECHO_N "checking for library containing bfd_init... $ECHO_C" >&6; } + if test "${ac_cv_search_bfd_init+set}" = set; then +@@ -10211,7 +10211,7 @@ fi + echo "${ECHO_T}$ac_cv_search_bfd_init" >&6; } + ac_res=$ac_cv_search_bfd_init + if test "$ac_res" != no; then +- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" ++ test "$ac_res" = "none required" || true + + fi + +@@ -10247,8 +10247,8 @@ for ac_lib in '' opagent; do + if test -z "$ac_lib"; then + ac_res="none required" + else +- ac_res=-l$ac_lib +- LIBS="-l$ac_lib $ac_func_search_save_LIBS" ++ ac_res="-Wl,--as-needed -l$ac_lib -Wl,--no-as-needed" ++ LIBS="-Wl,--as-needed -l$ac_lib -Wl,--no-as-needed $ac_func_search_save_LIBS" + fi + rm -f conftest.$ac_objext conftest$ac_exeext + if { (ac_try="$ac_link" diff --git a/debian/patches/0044-soname.diff b/debian/patches/0044-soname.diff new file mode 100644 index 0000000..92d944a --- /dev/null +++ b/debian/patches/0044-soname.diff @@ -0,0 +1,32 @@ +--- a/tools/llvm-shlib/Makefile ++++ b/tools/llvm-shlib/Makefile +@@ -67,7 +67,7 @@ + + ifeq ($(HOST_OS), $(filter $(HOST_OS), DragonFly Linux FreeBSD GNU/kFreeBSD GNU)) + # Add soname to the library. +- LLVMLibsOptions += -Wl,--soname,lib$(LIBRARYNAME)$(SHLIBEXT) -Wl,-Bsymbolic-functions ++ LLVMLibsOptions += -Wl,--soname,lib$(LIBRARYNAME)$(SHLIBEXT).1 -Wl,-Bsymbolic-functions + endif + + ifeq ($(HOST_OS), $(filter $(HOST_OS), Linux GNU GNU/kFreeBSD)) +--- a/tools/llvm-shlib/CMakeLists.txt ++++ b/tools/llvm-shlib/CMakeLists.txt +@@ -39,6 +39,7 @@ + endif() + + add_llvm_library(LLVM SHARED DISABLE_LLVM_LINK_LLVM_DYLIB SONAME ${SOURCES}) ++set_property(TARGET LLVM PROPERTY VERSION "1") # Append .1 to SONAME + + list(REMOVE_DUPLICATES LIB_NAMES) + if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") # FIXME: It should be "GNU ld for elf" +--- a/clang/tools/libclang/CMakeLists.txt ++++ b/clang/tools/libclang/CMakeLists.txt +@@ -82,7 +82,7 @@ + set(output_name "clang") + endif() + +-add_clang_library(libclang ${ENABLE_SHARED} ${ENABLE_STATIC} ++add_clang_library(libclang ${ENABLE_SHARED} ${ENABLE_STATIC} SONAME + OUTPUT_NAME ${output_name} + ${SOURCES} + DEPENDS clang-headers diff --git a/debian/patches/18-soname.patch b/debian/patches/18-soname.patch new file mode 100644 index 0000000..fe812e0 --- /dev/null +++ b/debian/patches/18-soname.patch @@ -0,0 +1,21 @@ +Index: llvm-toolchain-snapshot_3.7~svn241915/clang/tools/libclang/Makefile +=================================================================== +--- llvm-toolchain-snapshot_3.7~svn241915.orig/clang/tools/libclang/Makefile ++++ llvm-toolchain-snapshot_3.7~svn241915/clang/tools/libclang/Makefile +@@ -14,6 +14,7 @@ EXPORTED_SYMBOL_FILE = $(PROJ_SRC_DIR)/l + + LINK_LIBS_IN_SHARED = 1 + SHARED_LIBRARY = 1 ++SONAME_MAJOR=1 + + include $(CLANG_LEVEL)/../../Makefile.config + LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader bitwriter core \ +@@ -36,7 +37,7 @@ include $(CLANG_LEVEL)/Makefile + + # Add soname to the library. + ifeq ($(HOST_OS), $(filter $(HOST_OS), Linux FreeBSD GNU GNU/kFreeBSD)) +- LLVMLibsOptions += -Wl,-soname,lib$(LIBRARYNAME)$(SHLIBEXT) ++ LLVMLibsOptions += -Wl,-soname,lib$(LIBRARYNAME)-$(LLVM_VERSION_MAJOR).$(LLVM_VERSION_MINOR)$(SHLIBEXT).$(SONAME_MAJOR) + endif + + ifeq ($(ENABLE_CLANG_ARCMT),1) diff --git a/debian/patches/19-clang_debian_version.patch b/debian/patches/19-clang_debian_version.patch new file mode 100644 index 0000000..c530e14 --- /dev/null +++ b/debian/patches/19-clang_debian_version.patch @@ -0,0 +1,21 @@ +Index: llvm-toolchain-snapshot_3.5~svn210337/clang/lib/Basic/Version.cpp +=================================================================== +--- llvm-toolchain-snapshot_3.5~svn210337.orig/clang/lib/Basic/Version.cpp ++++ llvm-toolchain-snapshot_3.5~svn210337/clang/lib/Basic/Version.cpp +@@ -15,6 +15,7 @@ + #include "clang/Basic/LLVM.h" + #include "clang/Config/config.h" + #include "llvm/Support/raw_ostream.h" ++#include "clang/Debian/debian_path.h" + #include + #include + +@@ -125,7 +126,7 @@ std::string getClangToolFullVersion(Stri + #ifdef CLANG_VENDOR + OS << CLANG_VENDOR; + #endif +- OS << ToolName << " version " CLANG_VERSION_STRING " " ++ OS << ToolName << " version " CLANG_VERSION_STRING "-" DEB_PATCHSETVERSION " " + << getClangFullRepositoryVersion(); + + // If vendor supplied, include the base LLVM version as well. diff --git a/debian/patches/23-strlcpy_strlcat_warning_removed.diff b/debian/patches/23-strlcpy_strlcat_warning_removed.diff new file mode 100644 index 0000000..a4130f0 --- /dev/null +++ b/debian/patches/23-strlcpy_strlcat_warning_removed.diff @@ -0,0 +1,198 @@ +Index: llvm-toolchain-snapshot_3.7~svn241915/clang/include/clang/Basic/Builtins.def +=================================================================== +--- llvm-toolchain-snapshot_3.7~svn241915.orig/clang/include/clang/Basic/Builtins.def ++++ llvm-toolchain-snapshot_3.7~svn241915/clang/include/clang/Basic/Builtins.def +@@ -475,8 +475,8 @@ BUILTIN(__builtin___memset_chk, "v*v*izz + BUILTIN(__builtin___stpcpy_chk, "c*c*cC*z", "nF") + BUILTIN(__builtin___strcat_chk, "c*c*cC*z", "nF") + BUILTIN(__builtin___strcpy_chk, "c*c*cC*z", "nF") +-BUILTIN(__builtin___strlcat_chk, "zc*cC*zz", "nF") +-BUILTIN(__builtin___strlcpy_chk, "zc*cC*zz", "nF") ++//BUILTIN(__builtin___strlcat_chk, "zc*cC*zz", "nF") ++//BUILTIN(__builtin___strlcpy_chk, "zc*cC*zz", "nF") + BUILTIN(__builtin___strncat_chk, "c*c*cC*zz", "nF") + BUILTIN(__builtin___strncpy_chk, "c*c*cC*zz", "nF") + BUILTIN(__builtin___stpncpy_chk, "c*c*cC*zz", "nF") +@@ -805,8 +805,8 @@ LIBBUILTIN(getcontext, "iK*", "fj", + LIBBUILTIN(_longjmp, "vJi", "fr", "setjmp.h", ALL_GNU_LANGUAGES) + LIBBUILTIN(siglongjmp, "vSJi", "fr", "setjmp.h", ALL_GNU_LANGUAGES) + // non-standard but very common +-LIBBUILTIN(strlcpy, "zc*cC*z", "f", "string.h", ALL_GNU_LANGUAGES) +-LIBBUILTIN(strlcat, "zc*cC*z", "f", "string.h", ALL_GNU_LANGUAGES) ++//LIBBUILTIN(strlcpy, "zc*cC*z", "f", "string.h", ALL_GNU_LANGUAGES) ++//LIBBUILTIN(strlcat, "zc*cC*z", "f", "string.h", ALL_GNU_LANGUAGES) + // id objc_msgSend(id, SEL, ...) + LIBBUILTIN(objc_msgSend, "GGH.", "f", "objc/message.h", OBJC_LANG) + // long double objc_msgSend_fpret(id self, SEL op, ...) +Index: llvm-toolchain-snapshot_3.7~svn241915/clang/lib/Sema/SemaChecking.cpp +=================================================================== +--- llvm-toolchain-snapshot_3.7~svn241915.orig/clang/lib/Sema/SemaChecking.cpp ++++ llvm-toolchain-snapshot_3.7~svn241915/clang/lib/Sema/SemaChecking.cpp +@@ -473,8 +473,8 @@ Sema::CheckBuiltinFunctionCall(FunctionD + case Builtin::BI__builtin___memcpy_chk: + case Builtin::BI__builtin___memmove_chk: + case Builtin::BI__builtin___memset_chk: +- case Builtin::BI__builtin___strlcat_chk: +- case Builtin::BI__builtin___strlcpy_chk: ++// case Builtin::BI__builtin___strlcat_chk: ++// case Builtin::BI__builtin___strlcpy_chk: + case Builtin::BI__builtin___strncat_chk: + case Builtin::BI__builtin___strncpy_chk: + case Builtin::BI__builtin___stpncpy_chk: +@@ -1402,9 +1402,10 @@ bool Sema::CheckFunctionCall(FunctionDec + return false; + + // Handle memory setting and copying functions. +- if (CMId == Builtin::BIstrlcpy || CMId == Builtin::BIstrlcat) +- CheckStrlcpycatArguments(TheCall, FnInfo); +- else if (CMId == Builtin::BIstrncat) ++// if (CMId == Builtin::BIstrlcpy || CMId == Builtin::BIstrlcat) ++// CheckStrlcpycatArguments(TheCall, FnInfo); ++// else ++ if (CMId == Builtin::BIstrncat) + CheckStrncatArguments(TheCall, FnInfo); + else + CheckMemaccessArguments(TheCall, CMId, FnInfo); +Index: llvm-toolchain-snapshot_3.7~svn241915/clang/lib/AST/Decl.cpp +=================================================================== +--- llvm-toolchain-snapshot_3.7~svn241915.orig/clang/lib/AST/Decl.cpp ++++ llvm-toolchain-snapshot_3.7~svn241915/clang/lib/AST/Decl.cpp +@@ -3242,13 +3242,13 @@ unsigned FunctionDecl::getMemoryFunction + case Builtin::BImemmove: + return Builtin::BImemmove; + +- case Builtin::BIstrlcpy: +- case Builtin::BI__builtin___strlcpy_chk: +- return Builtin::BIstrlcpy; ++// case Builtin::BIstrlcpy: ++// case Builtin::BI__builtin___strlcpy_chk: ++// return Builtin::BIstrlcpy; + +- case Builtin::BIstrlcat: +- case Builtin::BI__builtin___strlcat_chk: +- return Builtin::BIstrlcat; ++// case Builtin::BIstrlcat: ++// case Builtin::BI__builtin___strlcat_chk: ++// return Builtin::BIstrlcat; + + case Builtin::BI__builtin_memcmp: + case Builtin::BImemcmp: +Index: llvm-toolchain-snapshot_3.7~svn241915/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp +=================================================================== +--- llvm-toolchain-snapshot_3.7~svn241915.orig/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp ++++ llvm-toolchain-snapshot_3.7~svn241915/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp +@@ -237,9 +237,9 @@ GenericTaintChecker::TaintPropagationRul + case Builtin::BIstrncpy: + case Builtin::BIstrncat: + return TaintPropagationRule(1, 2, 0, true); +- case Builtin::BIstrlcpy: +- case Builtin::BIstrlcat: +- return TaintPropagationRule(1, 2, 0, false); ++// case Builtin::BIstrlcpy: ++// case Builtin::BIstrlcat: ++// return TaintPropagationRule(1, 2, 0, false); + case Builtin::BIstrndup: + return TaintPropagationRule(0, 1, ReturnValueIndex); + +Index: llvm-toolchain-snapshot_3.7~svn241915/clang/test/Sema/warn-strlcpycat-size.c +=================================================================== +--- llvm-toolchain-snapshot_3.7~svn241915.orig/clang/test/Sema/warn-strlcpycat-size.c ++++ /dev/null +@@ -1,55 +0,0 @@ +-// RUN: %clang_cc1 -Wstrlcpy-strlcat-size -verify -fsyntax-only %s +- +-typedef __SIZE_TYPE__ size_t; +-size_t strlcpy (char * restrict dst, const char * restrict src, size_t size); +-size_t strlcat (char * restrict dst, const char * restrict src, size_t size); +-size_t strlen (const char *s); +- +-char s1[100]; +-char s2[200]; +-char * s3; +- +-struct { +- char f1[100]; +- char f2[100][3]; +-} s4, **s5; +- +-int x; +- +-void f(void) +-{ +- strlcpy(s1, s2, sizeof(s1)); // no warning +- strlcpy(s1, s2, sizeof(s2)); // expected-warning {{size argument in 'strlcpy' call appears to be size of the source; expected the size of the destination}} expected-note {{change size argument to be the size of the destination}} +- strlcpy(s1, s3, strlen(s3)+1); // expected-warning {{size argument in 'strlcpy' call appears to be size of the source; expected the size of the destination}} expected-note {{change size argument to be the size of the destination}} +- strlcat(s2, s3, sizeof(s3)); // expected-warning {{size argument in 'strlcat' call appears to be size of the source; expected the size of the destination}} expected-note {{change size argument to be the size of the destination}} +- strlcpy(s4.f1, s2, sizeof(s2)); // expected-warning {{size argument in 'strlcpy' call appears to be size of the source; expected the size of the destination}} expected-note {{change size argument to be the size of the destination}} +- strlcpy((*s5)->f2[x], s2, sizeof(s2)); // expected-warning {{size argument in 'strlcpy' call appears to be size of the source; expected the size of the destination}} expected-note {{change size argument to be the size of the destination}} +- strlcpy(s1+3, s2, sizeof(s2)); // expected-warning {{size argument in 'strlcpy' call appears to be size of the source; expected the size of the destination}} +-} +- +-// Don't issue FIXIT for flexible arrays. +-struct S { +- int y; +- char x[]; +-}; +- +-void flexible_arrays(struct S *s) { +- char str[] = "hi"; +- strlcpy(s->x, str, sizeof(str)); // expected-warning {{size argument in 'strlcpy' call appears to be size of the source; expected the size of the destination}} +-} +- +-// Don't issue FIXIT for destinations of size 1. +-void size_1() { +- char z[1]; +- char str[] = "hi"; +- +- strlcpy(z, str, sizeof(str)); // expected-warning {{size argument in 'strlcpy' call appears to be size of the source; expected the size of the destination}} +-} +- +-// Support VLAs. +-void vlas(int size) { +- char z[size]; +- char str[] = "hi"; +- +- strlcpy(z, str, sizeof(str)); // expected-warning {{size argument in 'strlcpy' call appears to be size of the source; expected the size of the destination}} expected-note {{change size argument to be the size of the destination}} +-} +Index: llvm-toolchain-snapshot_3.7~svn241915/clang/test/Sema/builtins.c +=================================================================== +--- llvm-toolchain-snapshot_3.7~svn241915.orig/clang/test/Sema/builtins.c ++++ llvm-toolchain-snapshot_3.7~svn241915/clang/test/Sema/builtins.c +@@ -190,11 +190,11 @@ void test18() { + + ptr = __builtin___memccpy_chk(dst, src, '\037', sizeof(src), sizeof(dst)); + result = __builtin___strlcpy_chk(dst, src, sizeof(dst), sizeof(dst)); +- result = __builtin___strlcat_chk(dst, src, sizeof(dst), sizeof(dst)); ++// result = __builtin___strlcat_chk(dst, src, sizeof(dst), sizeof(dst)); + + ptr = __builtin___memccpy_chk(dst, src, '\037', sizeof(src)); // expected-error {{too few arguments to function call}} + ptr = __builtin___strlcpy_chk(dst, src, sizeof(dst), sizeof(dst)); // expected-warning {{incompatible integer to pointer conversion}} +- ptr = __builtin___strlcat_chk(dst, src, sizeof(dst), sizeof(dst)); // expected-warning {{incompatible integer to pointer conversion}} ++// ptr = __builtin___strlcat_chk(dst, src, sizeof(dst), sizeof(dst)); // expected-warning {{incompatible integer to pointer conversion}} + } + + void no_ms_builtins() { +@@ -209,12 +209,12 @@ void unavailable() { + } + + // rdar://18259539 +-size_t strlcpy(char * restrict dst, const char * restrict src, size_t size); +-size_t strlcat(char * restrict dst, const char * restrict src, size_t size); ++//size_t strlcpy(char * restrict dst, const char * restrict src, size_t size); ++//size_t strlcat(char * restrict dst, const char * restrict src, size_t size); + + void Test19(void) + { +- static char b[40]; ++/* static char b[40]; + static char buf[20]; + + strlcpy(buf, b, sizeof(b)); // expected-warning {{size argument in 'strlcpy' call appears to be size of the source; expected the size of the destination}} \\ +@@ -229,6 +229,7 @@ void Test19(void) + __builtin___strlcat_chk(buf, b, sizeof(b), __builtin_object_size(buf, 0)); // expected-warning {{size argument in '__builtin___strlcat_chk' call appears to be size of the source; expected the size of the destination}} \ + // expected-note {{change size argument to be the size of the destination}} \ + // expected-warning {{'__builtin___strlcat_chk' will always overflow destination buffer}} ++ */ + } + + // rdar://11076881 diff --git a/debian/patches/26-set-correct-float-abi.diff b/debian/patches/26-set-correct-float-abi.diff new file mode 100644 index 0000000..e97d1e8 --- /dev/null +++ b/debian/patches/26-set-correct-float-abi.diff @@ -0,0 +1,33 @@ +Description: set correct float abi settings for armel and armhf + debian armel supports systems that don't have a fpu so should use a "float abi" + setting of soft by default. + + Debian armhf needs a float abi setting of "hard" +Author: Peter Michael Green + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: , +Bug: +Bug-Debian: http://bugs.debian.org/ +Bug-Ubuntu: https://launchpad.net/bugs/ +Forwarded: +Reviewed-By: +Last-Update: + +Index: llvm-toolchain-snapshot_3.8~svn248088/clang/lib/Driver/Tools.cpp +=================================================================== +--- llvm-toolchain-snapshot_3.8~svn248088.orig/clang/lib/Driver/Tools.cpp ++++ llvm-toolchain-snapshot_3.8~svn248088/clang/lib/Driver/Tools.cpp +@@ -643,7 +643,7 @@ arm::FloatABI arm::getARMFloatABI(const + case llvm::Triple::GNUEABI: + case llvm::Triple::EABI: + // EABI is always AAPCS, and if it was not marked 'hard', it's softfp +- ABI = FloatABI::SoftFP; ++ ABI = FloatABI::Soft; + break; + case llvm::Triple::Android: + ABI = (SubArch == 7) ? FloatABI::SoftFP : FloatABI::Soft; diff --git a/debian/patches/27-fix_clang_stdint.diff b/debian/patches/27-fix_clang_stdint.diff new file mode 100644 index 0000000..6cb6780 --- /dev/null +++ b/debian/patches/27-fix_clang_stdint.diff @@ -0,0 +1,29 @@ +Index: llvm-toolchain-snapshot_3.7~svn241915/clang/lib/Headers/stdint.h +=================================================================== +--- llvm-toolchain-snapshot_3.7~svn241915.orig/clang/lib/Headers/stdint.h ++++ llvm-toolchain-snapshot_3.7~svn241915/clang/lib/Headers/stdint.h +@@ -22,8 +22,6 @@ + * + \*===----------------------------------------------------------------------===*/ + +-#ifndef __CLANG_STDINT_H +-#define __CLANG_STDINT_H + + /* If we're hosted, fall back to the system's stdint.h, which might have + * additional definitions. +@@ -72,6 +70,8 @@ + # endif + + #else ++#ifndef __CLANG_STDINT_H ++#define __CLANG_STDINT_H + + /* C99 7.18.1.1 Exact-width integer types. + * C99 7.18.1.2 Minimum-width integer types. +@@ -703,5 +703,5 @@ typedef __UINTMAX_TYPE__ uintmax_t; + #define INTMAX_C(v) __INTN_C(__INTMAX_WIDTH__, v) + #define UINTMAX_C(v) __UINTN_C(__INTMAX_WIDTH__, v) + +-#endif /* __STDC_HOSTED__ */ + #endif /* __CLANG_STDINT_H */ ++#endif /* __STDC_HOSTED__ */ diff --git a/debian/patches/31-powerpcspe.diff b/debian/patches/31-powerpcspe.diff new file mode 100644 index 0000000..8eacce7 --- /dev/null +++ b/debian/patches/31-powerpcspe.diff @@ -0,0 +1,15 @@ +Index: llvm-toolchain-snapshot_3.4~svn188990/clang/lib/Lex/Makefile +=================================================================== +--- llvm-toolchain-snapshot_3.4~svn188990.orig/clang/lib/Lex/Makefile 2013-08-22 09:07:43.368608381 +0200 ++++ llvm-toolchain-snapshot_3.4~svn188990/clang/lib/Lex/Makefile 2013-08-22 09:07:43.368608381 +0200 +@@ -17,8 +17,10 @@ + LIBRARYNAME := clangLex + + ifeq ($(ARCH),PowerPC) ++ifneq ($(shell dpkg-architecture -qDEB_HOST_ARCH),powerpcspe) + CXX.Flags += -maltivec + endif ++endif + + include $(CLANG_LEVEL)/Makefile + diff --git a/debian/patches/34-powerpc-no-altivec.diff b/debian/patches/34-powerpc-no-altivec.diff new file mode 100644 index 0000000..5f05828 --- /dev/null +++ b/debian/patches/34-powerpc-no-altivec.diff @@ -0,0 +1,24 @@ +Description: Make sure PowerPC doesn't default to altivec on +Author: Adam Conrad +Author: Peter Michael Green +Forwarded: no +Reviewed-By: Colin Watson + +Last-Update: 2013-04-01 + +Index: llvm-toolchain-snapshot_3.4~svn188990/clang/lib/Lex/Makefile +=================================================================== +--- llvm-toolchain-snapshot_3.4~svn188990.orig/clang/lib/Lex/Makefile 2013-08-22 09:11:26.616602695 +0200 ++++ llvm-toolchain-snapshot_3.4~svn188990/clang/lib/Lex/Makefile 2013-08-22 09:11:26.616602695 +0200 +@@ -16,11 +16,5 @@ + + LIBRARYNAME := clangLex + +-ifeq ($(ARCH),PowerPC) +-ifneq ($(shell dpkg-architecture -qDEB_HOST_ARCH),powerpcspe) +-CXX.Flags += -maltivec +-endif +-endif +- + include $(CLANG_LEVEL)/Makefile + diff --git a/debian/patches/D17567-PR23529-Sema-part-of-attrbute-abi_tag-support.diff b/debian/patches/D17567-PR23529-Sema-part-of-attrbute-abi_tag-support.diff new file mode 100644 index 0000000..44b7fb7 --- /dev/null +++ b/debian/patches/D17567-PR23529-Sema-part-of-attrbute-abi_tag-support.diff @@ -0,0 +1,322 @@ +Index: b/clang/docs/ItaniumMangleAbiTags.rst +=================================================================== +--- /dev/null ++++ b/clang/docs/ItaniumMangleAbiTags.rst +@@ -0,0 +1,101 @@ ++======== ++ABI tags ++======== ++ ++Introduction ++============ ++ ++This text tries to describe gcc semantic for mangling "abi_tag" attributes ++described in https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Attributes.html ++ ++There is no guarantee the following rules are correct, complete or make sense ++in any way as they were determined empirically by experiments with gcc5. ++ ++Declaration ++=========== ++ ++ABI tags are declared in an abi_tag attribute and can be applied to a ++function, variable, class or inline namespace declaration. The attribute takes ++one or more strings (called tags); the order does not matter. ++ ++See https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Attributes.html for ++details. ++ ++Tags on an inline namespace are called "implicit tags", all other tags are ++"explicit tags". ++ ++Mangling ++======== ++ ++All tags that are "active" on an are emitted after the ++, before or , and are part of ++the same the is. ++ ++They are mangled as: ++ ++ ::= * # sort by name ++ ::= B ++ ++Example: ++ ++ __attribute__((abi_tag("test"))) ++ void Func(); ++ ++ gets mangled as: _Z4FuncB4testv (prettified as `Func[abi:test]()`) ++ ++Active tags ++=========== ++ ++A namespace does not have any active tags. For types (class / struct / union / ++enum), the explicit tags are the active tags. ++ ++For variables and functions, the active tags are the explicit tags plus any ++"required tags" which are not in the "available tags" set: ++ ++ derived-tags := (required-tags - available-tags) ++ active-tags := explicit-tags + derived-tags ++ ++Required tags for a function ++============================ ++ ++If a function is used as a local scope for another name, and is part of ++another function as local scope, it doesn't have any required tags. ++ ++If a function is used as a local scope for a guard variable name, it doesn't ++have any required tags. ++ ++Otherwise the function requires any implicit or explicit tag used in the name ++for the return type. ++ ++Example: ++ namespace A { ++ inline namespace B __attribute__((abi_tag)) { ++ struct C { int x; }; ++ } ++ } ++ ++ A::C foo(); ++ ++ gets mangled as: _Z3fooB1Bv (prettified as `foo[abi:B]()`) ++ ++Required tags for a variable ++============================ ++ ++A variable requires any implicit or explicit tag used in its type. ++ ++Available tags ++============== ++ ++All tags used in the prefix and in the template arguments for a name are ++available. Also, for functions, all tags from the ++(which might include the return type for template functions) are available. ++ ++For s all active tags used in the local part () are available, but not implicit tags which were not active. ++ ++Implicit and explicit tags used in the for a function (as ++in the type of a cast operator) are NOT available. ++ ++Example: a cast operator to std::string (which is ++std::__cxx11::basic_string<...>) will use 'cxx11' as an active tag, as it is ++required from the return type `std::string` but not available. +Index: b/clang/include/clang/Basic/Attr.td +=================================================================== +--- a/clang/include/clang/Basic/Attr.td ++++ b/clang/include/clang/Basic/Attr.td +@@ -349,6 +349,14 @@ class IgnoredAttr : Attr { + // Attributes begin here + // + ++def AbiTag : Attr { ++ let Spellings = [GCC<"abi_tag">]; ++ let Args = [VariadicStringArgument<"Tags">]; ++ let Subjects = SubjectList<[Struct, Var, Function, Namespace], ErrorDiag, ++ "ExpectedStructClassVariableFunctionOrInlineNamespace">; ++ let Documentation = [AbiTagsDocs]; ++} ++ + def AddressSpace : TypeAttr { + let Spellings = [GNU<"address_space">]; + let Args = [IntArgument<"AddressSpace">]; +Index: b/clang/include/clang/Basic/AttrDocs.td +=================================================================== +--- a/clang/include/clang/Basic/AttrDocs.td ++++ b/clang/include/clang/Basic/AttrDocs.td +@@ -1859,3 +1859,16 @@ Marking virtual functions as ``disable_t + + }]; + } ++ ++def AbiTagsDocs : Documentation { ++ let Content = [{ ++The ``abi_tag`` attribute can be applied to a function, variable, class or ++inline namespace declaration to modify the mangled name of the entity. It gives ++the ability to distinguish between different versions of the same entity but ++with different ABI versions supported. For example, a newer version of a class ++could have a different set of data members and thus have a different size. Using ++the ``abi_tag`` attribute, it is possible to have different mangled names for ++a global variable of the class type. Therefor, the old code could keep using ++the old manged name and the new code will use the new mangled name with tags. ++ }]; ++} +Index: b/clang/include/clang/Basic/DiagnosticSemaKinds.td +=================================================================== +--- a/clang/include/clang/Basic/DiagnosticSemaKinds.td ++++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td +@@ -2434,7 +2434,8 @@ def warn_attribute_wrong_decl_type : War + "Objective-C instance methods|init methods of interface or class extension declarations|" + "variables, functions and classes|Objective-C protocols|" + "functions and global variables|structs, unions, and typedefs|structs and typedefs|" +- "interface or protocol declarations|kernel functions|non-K&R-style functions}1">, ++ "interface or protocol declarations|kernel functions|non-K&R-style functions|" ++ "structs, classes, variables, functions, and inline namespaces}1">, + InGroup; + def err_attribute_wrong_decl_type : Error; + def warn_type_attribute_wrong_type : Warning< +@@ -4144,6 +4145,13 @@ def err_definition_of_explicitly_default + def err_redefinition_extern_inline : Error< + "redefinition of a 'extern inline' function %0 is not supported in " + "%select{C99 mode|C++}1">; ++def warn_attr_abi_tag_namespace : Warning< ++ "'abi_tag' attribute on %select{non-inline|anonymous}0 namespace ignored">, ++ InGroup; ++def err_abi_tag_on_redeclaration : Error< ++ "cannot add 'abi_tag' attribute in a redeclaration">; ++def err_new_abi_tag_on_redeclaration : Error< ++ "'abi_tag' %0 missing in original declaration">; + + def note_deleted_dtor_no_operator_delete : Note< + "virtual destructor requires an unambiguous, accessible 'operator delete'">; +Index: b/clang/include/clang/Sema/AttributeList.h +=================================================================== +--- a/clang/include/clang/Sema/AttributeList.h ++++ b/clang/include/clang/Sema/AttributeList.h +@@ -855,7 +855,8 @@ enum AttributeDeclKind { + ExpectedStructOrTypedef, + ExpectedObjectiveCInterfaceOrProtocol, + ExpectedKernelFunction, +- ExpectedFunctionWithProtoType ++ ExpectedFunctionWithProtoType, ++ ExpectedStructClassVariableFunctionOrInlineNamespace + }; + + } // end namespace clang +Index: b/clang/lib/Sema/SemaDecl.cpp +=================================================================== +--- a/clang/lib/Sema/SemaDecl.cpp ++++ b/clang/lib/Sema/SemaDecl.cpp +@@ -2396,6 +2396,24 @@ void Sema::mergeDeclAttributes(NamedDecl + } + } + ++ // Re-declaration cannot add abi_tag's. ++ if (const auto *NewAbiTagAttr = New->getAttr()) { ++ if (const auto *OldAbiTagAttr = Old->getAttr()) { ++ for (const auto &NewTag : NewAbiTagAttr->tags()) { ++ if (std::find(OldAbiTagAttr->tags_begin(), OldAbiTagAttr->tags_end(), ++ NewTag) == OldAbiTagAttr->tags_end()) { ++ Diag(NewAbiTagAttr->getLocation(), ++ diag::err_new_abi_tag_on_redeclaration) ++ << NewTag; ++ Diag(OldAbiTagAttr->getLocation(), diag::note_previous_declaration); ++ } ++ } ++ } else { ++ Diag(NewAbiTagAttr->getLocation(), diag::err_abi_tag_on_redeclaration); ++ Diag(Old->getLocation(), diag::note_previous_declaration); ++ } ++ } ++ + if (!Old->hasAttrs()) + return; + +Index: b/clang/lib/Sema/SemaDeclAttr.cpp +=================================================================== +--- a/clang/lib/Sema/SemaDeclAttr.cpp ++++ b/clang/lib/Sema/SemaDeclAttr.cpp +@@ -4446,6 +4446,42 @@ static void handleDeclspecThreadAttr(Sem + Attr.getRange(), S.Context, Attr.getAttributeSpellingListIndex())); + } + ++static void handleAbiTagAttr(Sema &S, Decl *D, const AttributeList &Attr) { ++ SmallVector Tags; ++ for (unsigned I = 0, E = Attr.getNumArgs(); I != E; ++I) { ++ StringRef Tag; ++ if (!S.checkStringLiteralArgumentAttr(Attr, I, Tag)) ++ return; ++ Tags.push_back(Tag); ++ } ++ ++ if (const auto *NS = dyn_cast(D)) { ++ if (!NS->isInline()) { ++ S.Diag(Attr.getLoc(), diag::warn_attr_abi_tag_namespace) << 0; ++ return; ++ } ++ if (NS->isAnonymousNamespace()) { ++ S.Diag(Attr.getLoc(), diag::warn_attr_abi_tag_namespace) << 1; ++ return; ++ } ++ if (Attr.getNumArgs() == 0) ++ Tags.push_back(NS->getName()); ++ } else if (!checkAttributeAtLeastNumArgs(S, Attr, 1)) ++ return; ++ ++ // Store tags sorted and without duplicates. ++ std::sort(Tags.begin(), Tags.end()); ++ Tags.erase(std::unique(Tags.begin(), Tags.end()), Tags.end()); ++ ++ D->addAttr(::new (S.Context) ++ AbiTagAttr(Attr.getRange(), S.Context, Tags.data(), Tags.size(), ++ Attr.getAttributeSpellingListIndex())); ++ ++ // FIXME: remove this warning as soon as mangled part is ready. ++ S.Diag(Attr.getRange().getBegin(), diag::warn_attribute_ignored) ++ << Attr.getName(); ++} ++ + static void handleARMInterruptAttr(Sema &S, Decl *D, + const AttributeList &Attr) { + // Check the attribute arguments. +@@ -5360,6 +5396,9 @@ static void ProcessDeclAttribute(Sema &S + case AttributeList::AT_Thread: + handleDeclspecThreadAttr(S, D, Attr); + break; ++ case AttributeList::AT_AbiTag: ++ handleAbiTagAttr(S, D, Attr); ++ break; + + // Thread safety attributes: + case AttributeList::AT_AssertExclusiveLock: +Index: b/clang/test/SemaCXX/attr-abi-tag-syntax.cpp +=================================================================== +--- /dev/null ++++ b/clang/test/SemaCXX/attr-abi-tag-syntax.cpp +@@ -0,0 +1,43 @@ ++// RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s ++ ++namespace N1 { ++ ++namespace __attribute__((__abi_tag__)) {} ++// expected-warning@-1 {{'abi_tag' attribute on non-inline namespace ignored}} ++ ++namespace N __attribute__((__abi_tag__)) {} ++// expected-warning@-1 {{'abi_tag' attribute on non-inline namespace ignored}} ++ ++} // namespace N1 ++ ++namespace N2 { ++ ++inline namespace __attribute__((__abi_tag__)) {} ++// expected-warning@-1 {{'abi_tag' attribute on anonymous namespace ignored}} ++ ++inline namespace N __attribute__((__abi_tag__)) {} ++// FIXME: remove this warning as soon as attribute fully supported. ++// expected-warning@-2 {{'__abi_tag__' attribute ignored}} ++ ++} // namespcace N2 ++ ++__attribute__((abi_tag("B", "A"))) extern int a1; ++// FIXME: remove this warning as soon as attribute fully supported. ++// expected-warning@-2 {{'abi_tag' attribute ignored}} ++ ++__attribute__((abi_tag("A", "B"))) extern int a1; ++// expected-note@-1 {{previous declaration is here}} ++// FIXME: remove this warning as soon as attribute fully supported. ++// expected-warning@-3 {{'abi_tag' attribute ignored}} ++ ++__attribute__((abi_tag("A", "C"))) extern int a1; ++// expected-error@-1 {{'abi_tag' C missing in original declaration}} ++// FIXME: remove this warning as soon as attribute fully supported. ++// expected-warning@-3 {{'abi_tag' attribute ignored}} ++ ++extern int a2; ++// expected-note@-1 {{previous declaration is here}} ++__attribute__((abi_tag("A")))extern int a2; ++// expected-error@-1 {{cannot add 'abi_tag' attribute in a redeclaration}} ++// FIXME: remove this warning as soon as attribute fully supported. ++// expected-warning@-3 {{'abi_tag' attribute ignored}} diff --git a/debian/patches/D18035-PR23529-Mangler-part-of-attrbute-abi_tag-support.diff b/debian/patches/D18035-PR23529-Mangler-part-of-attrbute-abi_tag-support.diff new file mode 100644 index 0000000..3f01aa4 --- /dev/null +++ b/debian/patches/D18035-PR23529-Mangler-part-of-attrbute-abi_tag-support.diff @@ -0,0 +1,1234 @@ +Index: b/clang/lib/AST/ItaniumMangle.cpp +=================================================================== +--- a/clang/lib/AST/ItaniumMangle.cpp ++++ b/clang/lib/AST/ItaniumMangle.cpp +@@ -212,6 +212,12 @@ public: + class CXXNameMangler { + ItaniumMangleContextImpl &Context; + raw_ostream &Out; ++ bool NullOut = false; ++ /// In the "DisableDerivedAbiTags" mode derived ABI tags are not calculated. ++ /// This mode is used when mangler creates another mangler recursively to ++ /// calculate ABI tags for the function return value or the variable type. ++ /// Also it is required to avoid infinite recursion in some cases. ++ bool DisableDerivedAbiTags = false; + + /// The "structor" is the top-level declaration being mangled, if + /// that's not a template specialization; otherwise it's the pattern +@@ -261,15 +267,131 @@ class CXXNameMangler { + + } FunctionTypeDepth; + ++ // abi_tag is a gcc attribute, taking one or more strings called "tags". ++ // The goal is to annotate against which version of a library an object was ++ // built and to be able to provide backwards compatibility ("dual abi"). ++ // For more information see docs/ItaniumMangleAbiTags.rst. ++ typedef SmallVector AbiTagList; ++ typedef llvm::SmallSetVector AbiTagSet; ++ ++ // State to gather all implicit and explicit tags used in a mangled name. ++ // Must always have an instance of this while emitting any name to keep ++ // track. ++ class AbiTagState final { ++ //! All abi tags used implicitly or explicitly ++ AbiTagSet UsedAbiTags; ++ //! All explicit abi tags (i.e. not from namespace) ++ AbiTagSet EmittedAbiTags; ++ ++ AbiTagState *&LinkHead; ++ AbiTagState *Parent = nullptr; ++ ++ bool LinkActive = false; ++ ++ public: ++ explicit AbiTagState(AbiTagState *&Head) : LinkHead(Head) { ++ Parent = LinkHead; ++ LinkHead = this; ++ LinkActive = true; ++ } ++ ++ // no copy, no move ++ AbiTagState(const AbiTagState &) = delete; ++ AbiTagState &operator=(const AbiTagState &) = delete; ++ ++ ~AbiTagState() { pop(); } ++ ++ void pop() { ++ if (!LinkActive) ++ return; ++ ++ assert(LinkHead == this && ++ "abi tag link head must point to us on destruction"); ++ LinkActive = false; ++ if (Parent) { ++ Parent->UsedAbiTags.insert(UsedAbiTags.begin(), UsedAbiTags.end()); ++ Parent->EmittedAbiTags.insert(EmittedAbiTags.begin(), ++ EmittedAbiTags.end()); ++ } ++ LinkHead = Parent; ++ } ++ ++ void write(raw_ostream &Out, const NamedDecl *ND, ++ const AbiTagList *AdditionalAbiTags) { ++ ND = cast(ND->getCanonicalDecl()); ++ ++ if (!isa(ND) && !isa(ND)) { ++ assert( ++ !AdditionalAbiTags && ++ "only function and variables need a list of additional abi tags"); ++ if (const auto *NS = dyn_cast(ND)) { ++ if (const auto *AbiTag = NS->getAttr()) { ++ for (const auto &Tag : AbiTag->tags()) { ++ UsedAbiTags.insert(Tag); ++ } ++ } ++ // Don't emit abi tags for namespaces. ++ return; ++ } ++ } ++ ++ AbiTagList TagList; ++ if (const auto *AbiTag = ND->getAttr()) { ++ for (const auto &Tag : AbiTag->tags()) { ++ UsedAbiTags.insert(Tag); ++ // AbiTag->tags() is sorted and has no duplicates ++ TagList.push_back(Tag); ++ } ++ } ++ ++ if (AdditionalAbiTags) { ++ for (const auto &Tag : *AdditionalAbiTags) { ++ UsedAbiTags.insert(Tag); ++ if (std::find(TagList.begin(), TagList.end(), Tag) == TagList.end()) { ++ // don't insert duplicates ++ TagList.push_back(Tag); ++ } ++ } ++ // AbiTag->tags() are already sorted; only add if we had additional tags ++ std::sort(TagList.begin(), TagList.end()); ++ } ++ ++ writeSortedUniqueAbiTags(Out, TagList); ++ } ++ ++ const AbiTagSet &getUsedAbiTags() const { return UsedAbiTags; } ++ void setUsedAbiTags(const AbiTagSet &AbiTags) { ++ UsedAbiTags = AbiTags; ++ } ++ ++ const AbiTagSet &getEmittedAbiTags() const { ++ return EmittedAbiTags; ++ } ++ ++ private: ++ template ++ void writeSortedUniqueAbiTags(raw_ostream &Out, TagList const &AbiTags) { ++ for (const auto &Tag : AbiTags) { ++ EmittedAbiTags.insert(Tag); ++ Out << "B"; ++ Out << Tag.size(); ++ Out << Tag; ++ } ++ } ++ }; ++ ++ AbiTagState *AbiTags = nullptr; ++ AbiTagState AbiTagsRoot; ++ + llvm::DenseMap Substitutions; + + ASTContext &getASTContext() const { return Context.getASTContext(); } + + public: + CXXNameMangler(ItaniumMangleContextImpl &C, raw_ostream &Out_, +- const NamedDecl *D = nullptr) +- : Context(C), Out(Out_), Structor(getStructor(D)), StructorType(0), +- SeqID(0) { ++ const NamedDecl *D = nullptr, bool NullOut_ = false) ++ : Context(C), Out(Out_), NullOut(NullOut_), Structor(getStructor(D)), ++ StructorType(0), SeqID(0), AbiTagsRoot(AbiTags) { + // These can't be mangled without a ctor type or dtor type. + assert(!D || (!isa(D) && + !isa(D))); +@@ -277,11 +399,16 @@ public: + CXXNameMangler(ItaniumMangleContextImpl &C, raw_ostream &Out_, + const CXXConstructorDecl *D, CXXCtorType Type) + : Context(C), Out(Out_), Structor(getStructor(D)), StructorType(Type), +- SeqID(0) { } ++ SeqID(0), AbiTagsRoot(AbiTags) { } + CXXNameMangler(ItaniumMangleContextImpl &C, raw_ostream &Out_, + const CXXDestructorDecl *D, CXXDtorType Type) + : Context(C), Out(Out_), Structor(getStructor(D)), StructorType(Type), +- SeqID(0) { } ++ SeqID(0), AbiTagsRoot(AbiTags) { } ++ ++ CXXNameMangler(CXXNameMangler &Outer, llvm::raw_null_ostream &Out_) ++ : Context(Outer.Context), Out(Out_), NullOut(true), ++ Structor(Outer.Structor), StructorType(Outer.StructorType), ++ SeqID(Outer.SeqID), AbiTagsRoot(AbiTags) {} + + #if MANGLE_CHECKER + ~CXXNameMangler() { +@@ -296,14 +423,18 @@ public: + #endif + raw_ostream &getStream() { return Out; } + ++ void disableDerivedAbiTags() { DisableDerivedAbiTags = true; } ++ static bool shouldHaveAbiTags(ItaniumMangleContextImpl &C, const VarDecl *VD); ++ + void mangle(const NamedDecl *D); + void mangleCallOffset(int64_t NonVirtual, int64_t Virtual); + void mangleNumber(const llvm::APSInt &I); + void mangleNumber(int64_t Number); + void mangleFloat(const llvm::APFloat &F); +- void mangleFunctionEncoding(const FunctionDecl *FD); ++ void mangleFunctionEncoding(const FunctionDecl *FD, ++ bool ExcludeUnqualifiedName = false); + void mangleSeqID(unsigned SeqID); +- void mangleName(const NamedDecl *ND); ++ void mangleName(const NamedDecl *ND, bool ExcludeUnqualifiedName = false); + void mangleType(QualType T); + void mangleNameOrStandardSubstitution(const NamedDecl *ND); + +@@ -334,31 +465,53 @@ private: + DeclarationName name, + unsigned KnownArity = UnknownArity); + +- void mangleName(const TemplateDecl *TD, +- const TemplateArgument *TemplateArgs, +- unsigned NumTemplateArgs); +- void mangleUnqualifiedName(const NamedDecl *ND) { +- mangleUnqualifiedName(ND, ND->getDeclName(), UnknownArity); ++ void mangleFunctionEncodingBareType(const FunctionDecl *FD); ++ ++ void mangleNameWithAbiTags(const NamedDecl *ND, ++ const AbiTagList *AdditionalAbiTags, ++ bool ExcludeUnqualifiedName); ++ void mangleTemplateName(const TemplateDecl *TD, ++ const AbiTagList *AdditionalAbiTags, ++ bool ExcludeUnqualifiedName, ++ const TemplateArgument *TemplateArgs, ++ unsigned NumTemplateArgs); ++ void mangleUnqualifiedName(const NamedDecl *ND, ++ const AbiTagList *AdditionalAbiTags) { ++ mangleUnqualifiedName(ND, ND->getDeclName(), UnknownArity, ++ AdditionalAbiTags); + } + void mangleUnqualifiedName(const NamedDecl *ND, DeclarationName Name, +- unsigned KnownArity); +- void mangleUnscopedName(const NamedDecl *ND); +- void mangleUnscopedTemplateName(const TemplateDecl *ND); +- void mangleUnscopedTemplateName(TemplateName); ++ unsigned KnownArity, ++ const AbiTagList *AdditionalAbiTags); ++ void mangleUnscopedName(const NamedDecl *ND, ++ const AbiTagList *AdditionalAbiTags); ++ void mangleUnscopedTemplateName(const TemplateDecl *ND, ++ const AbiTagList *AdditionalAbiTags); ++ void mangleUnscopedTemplateName(TemplateName, ++ const AbiTagList *AdditionalAbiTags); + void mangleSourceName(const IdentifierInfo *II); +- void mangleLocalName(const Decl *D); ++ void mangleLocalName(const Decl *D, ++ const AbiTagList *AdditionalAbiTags, ++ bool ExcludeUnqualifiedName); + void mangleBlockForPrefix(const BlockDecl *Block); + void mangleUnqualifiedBlock(const BlockDecl *Block); + void mangleLambda(const CXXRecordDecl *Lambda); + void mangleNestedName(const NamedDecl *ND, const DeclContext *DC, +- bool NoFunction=false); ++ const AbiTagList *AdditionalAbiTags, ++ bool NoFunction, ++ bool ExcludeUnqualifiedName); + void mangleNestedName(const TemplateDecl *TD, ++ const AbiTagList *AdditionalAbiTags, ++ bool ExcludeUnqualifiedName, + const TemplateArgument *TemplateArgs, + unsigned NumTemplateArgs); + void manglePrefix(NestedNameSpecifier *qualifier); + void manglePrefix(const DeclContext *DC, bool NoFunction=false); + void manglePrefix(QualType type); +- void mangleTemplatePrefix(const TemplateDecl *ND, bool NoFunction=false); ++ void mangleTemplatePrefix(const TemplateDecl *ND, ++ const AbiTagList *AdditionalAbiTags, ++ bool NoFunction = false, ++ bool ExcludeUnqualifiedName = false); + void mangleTemplatePrefix(TemplateName Template); + bool mangleUnresolvedTypeOrSimpleId(QualType DestroyedType, + StringRef Prefix = ""); +@@ -405,6 +558,13 @@ private: + void mangleTemplateParameter(unsigned Index); + + void mangleFunctionParam(const ParmVarDecl *parm); ++ ++ void writeAbiTags(const NamedDecl *ND, ++ const AbiTagList *AdditionalAbiTags = nullptr); ++ ++ AbiTagSet getTagsFromPrefixAndTemplateArguments(const NamedDecl *ND); ++ AbiTagList makeAdditionalTagsForFunction(const FunctionDecl *FD); ++ AbiTagList makeAdditionalTagsForVariable(const VarDecl *VD); + }; + + } +@@ -448,6 +608,7 @@ bool ItaniumMangleContextImpl::shouldMan + while (!DC->isNamespace() && !DC->isTranslationUnit()) + DC = getEffectiveParentContext(DC); + if (DC->isTranslationUnit() && D->getFormalLinkage() != InternalLinkage && ++ !CXXNameMangler::shouldHaveAbiTags(*this, VD) && + !isa(D)) + return false; + } +@@ -455,6 +616,12 @@ bool ItaniumMangleContextImpl::shouldMan + return true; + } + ++void CXXNameMangler::writeAbiTags(const NamedDecl *ND, ++ const AbiTagList *AdditionalAbiTags) { ++ assert(AbiTags && "require AbiTagState"); ++ AbiTags->write(Out, ND, DisableDerivedAbiTags ? nullptr : AdditionalAbiTags); ++} ++ + void CXXNameMangler::mangle(const NamedDecl *D) { + // ::= _Z + // ::= +@@ -470,14 +637,31 @@ void CXXNameMangler::mangle(const NamedD + mangleName(cast(D)); + } + +-void CXXNameMangler::mangleFunctionEncoding(const FunctionDecl *FD) { +- // ::= +- mangleName(FD); +- ++void CXXNameMangler::mangleFunctionEncoding(const FunctionDecl *FD, ++ bool ExcludeUnqualifiedName) { + // Don't mangle in the type if this isn't a decl we should typically mangle. +- if (!Context.shouldMangleDeclName(FD)) ++ if (!Context.shouldMangleDeclName(FD)) { ++ mangleNameWithAbiTags(FD, /* AdditionalAbiTags */ nullptr, ++ ExcludeUnqualifiedName); + return; ++ } ++ ++ // ::= ++ ++ if (ExcludeUnqualifiedName) { ++ // running makeAdditionalTagsForFunction would loop, don't need it here ++ // anyway ++ mangleNameWithAbiTags(FD, /* AdditionalAbiTags */ nullptr, ++ ExcludeUnqualifiedName); ++ } else { ++ AbiTagList AdditionalAbiTags = makeAdditionalTagsForFunction(FD); ++ mangleNameWithAbiTags(FD, &AdditionalAbiTags, ExcludeUnqualifiedName); ++ } + ++ mangleFunctionEncodingBareType(FD); ++} ++ ++void CXXNameMangler::mangleFunctionEncodingBareType(const FunctionDecl *FD) { + if (FD->hasAttr()) { + FunctionTypeDepthState Saved = FunctionTypeDepth.push(); + Out << "Ua9enable_ifI"; +@@ -581,7 +765,24 @@ isTemplate(const NamedDecl *ND, const Te + return nullptr; + } + +-void CXXNameMangler::mangleName(const NamedDecl *ND) { ++// Must not be run from mangleLocalName for the as it would loop ++// otherwise. ++void CXXNameMangler::mangleName(const NamedDecl *ND, ++ bool ExcludeUnqualifiedName) { ++ if (!ExcludeUnqualifiedName) { ++ if (const auto *VD = dyn_cast(ND)) { ++ AbiTagList VariableAdditionalAbiTags = makeAdditionalTagsForVariable(VD); ++ mangleNameWithAbiTags(VD, &VariableAdditionalAbiTags, ++ ExcludeUnqualifiedName); ++ return; ++ } ++ } ++ mangleNameWithAbiTags(ND, nullptr, ExcludeUnqualifiedName); ++} ++ ++void CXXNameMangler::mangleNameWithAbiTags(const NamedDecl *ND, ++ const AbiTagList *AdditionalAbiTags, ++ bool ExcludeUnqualifiedName) { + // ::= + // ::= + // ::= +@@ -597,7 +798,7 @@ void CXXNameMangler::mangleName(const Na + while (!DC->isNamespace() && !DC->isTranslationUnit()) + DC = getEffectiveParentContext(DC); + else if (GetLocalClassDecl(ND)) { +- mangleLocalName(ND); ++ mangleLocalName(ND, AdditionalAbiTags, ExcludeUnqualifiedName); + return; + } + +@@ -607,76 +808,93 @@ void CXXNameMangler::mangleName(const Na + // Check if we have a template. + const TemplateArgumentList *TemplateArgs = nullptr; + if (const TemplateDecl *TD = isTemplate(ND, TemplateArgs)) { +- mangleUnscopedTemplateName(TD); ++ if (!ExcludeUnqualifiedName) ++ mangleUnscopedTemplateName(TD, AdditionalAbiTags); + mangleTemplateArgs(*TemplateArgs); + return; + } + +- mangleUnscopedName(ND); ++ if (!ExcludeUnqualifiedName) ++ mangleUnscopedName(ND, AdditionalAbiTags); + return; + } + + if (isLocalContainerContext(DC)) { +- mangleLocalName(ND); ++ mangleLocalName(ND, AdditionalAbiTags, ExcludeUnqualifiedName); + return; + } + +- mangleNestedName(ND, DC); ++ mangleNestedName(ND, DC, AdditionalAbiTags, /* NoFunction */ false, ++ ExcludeUnqualifiedName); + } +-void CXXNameMangler::mangleName(const TemplateDecl *TD, +- const TemplateArgument *TemplateArgs, +- unsigned NumTemplateArgs) { ++ ++void CXXNameMangler::mangleTemplateName(const TemplateDecl *TD, ++ const AbiTagList *AdditionalAbiTags, ++ bool ExcludeUnqualifiedName, ++ const TemplateArgument *TemplateArgs, ++ unsigned NumTemplateArgs) { + const DeclContext *DC = IgnoreLinkageSpecDecls(getEffectiveDeclContext(TD)); + + if (DC->isTranslationUnit() || isStdNamespace(DC)) { +- mangleUnscopedTemplateName(TD); ++ if (!ExcludeUnqualifiedName) ++ mangleUnscopedTemplateName(TD, AdditionalAbiTags); + mangleTemplateArgs(TemplateArgs, NumTemplateArgs); + } else { +- mangleNestedName(TD, TemplateArgs, NumTemplateArgs); ++ mangleNestedName(TD, AdditionalAbiTags, ExcludeUnqualifiedName, ++ TemplateArgs, NumTemplateArgs); + } + } + +-void CXXNameMangler::mangleUnscopedName(const NamedDecl *ND) { ++void CXXNameMangler::mangleUnscopedName(const NamedDecl *ND, ++ const AbiTagList *AdditionalAbiTags) { + // ::= + // ::= St # ::std:: + + if (isStdNamespace(IgnoreLinkageSpecDecls(getEffectiveDeclContext(ND)))) + Out << "St"; + +- mangleUnqualifiedName(ND); ++ mangleUnqualifiedName(ND, AdditionalAbiTags); + } + +-void CXXNameMangler::mangleUnscopedTemplateName(const TemplateDecl *ND) { ++void CXXNameMangler::mangleUnscopedTemplateName( ++ const TemplateDecl *ND, const AbiTagList *AdditionalAbiTags) { + // ::= + // ::= + if (mangleSubstitution(ND)) + return; + + // ::= +- if (const auto *TTP = dyn_cast(ND)) ++ if (const auto *TTP = dyn_cast(ND)) { ++ assert(!AdditionalAbiTags && ++ "template template param cannot have abi tags"); + mangleTemplateParameter(TTP->getIndex()); +- else +- mangleUnscopedName(ND->getTemplatedDecl()); ++ } else { ++ mangleUnscopedName(ND->getTemplatedDecl(), AdditionalAbiTags); ++ } + + addSubstitution(ND); + } + +-void CXXNameMangler::mangleUnscopedTemplateName(TemplateName Template) { ++void CXXNameMangler::mangleUnscopedTemplateName( ++ TemplateName Template, const AbiTagList *AdditionalAbiTags) { + // ::= + // ::= + if (TemplateDecl *TD = Template.getAsTemplateDecl()) +- return mangleUnscopedTemplateName(TD); ++ return mangleUnscopedTemplateName(TD, AdditionalAbiTags); + + if (mangleSubstitution(Template)) + return; + ++ assert(!AdditionalAbiTags && ++ "dependent template name cannot have abi tags"); ++ + DependentTemplateName *Dependent = Template.getAsDependentTemplateName(); + assert(Dependent && "Not a dependent template name?"); + if (const IdentifierInfo *Id = Dependent->getIdentifier()) + mangleSourceName(Id); + else + mangleOperatorName(Dependent->getOperator(), UnknownArity); +- ++ + addSubstitution(Template); + } + +@@ -835,6 +1053,7 @@ void CXXNameMangler::mangleUnresolvedPre + else + Out << "sr"; + mangleSourceName(qualifier->getAsNamespace()->getIdentifier()); ++ writeAbiTags(qualifier->getAsNamespace()); + break; + case NestedNameSpecifier::NamespaceAlias: + if (qualifier->getPrefix()) +@@ -843,6 +1062,7 @@ void CXXNameMangler::mangleUnresolvedPre + else + Out << "sr"; + mangleSourceName(qualifier->getAsNamespaceAlias()->getIdentifier()); ++ writeAbiTags(qualifier->getAsNamespaceAlias()); + break; + + case NestedNameSpecifier::TypeSpec: +@@ -877,6 +1097,7 @@ void CXXNameMangler::mangleUnresolvedPre + Out << "sr"; + + mangleSourceName(qualifier->getAsIdentifier()); ++ // an Identifier has no type information, so we can't emit abi tags for it + break; + } + +@@ -922,7 +1143,8 @@ void CXXNameMangler::mangleUnresolvedNam + + void CXXNameMangler::mangleUnqualifiedName(const NamedDecl *ND, + DeclarationName Name, +- unsigned KnownArity) { ++ unsigned KnownArity, ++ const AbiTagList *AdditionalAbiTags) { + unsigned Arity = KnownArity; + // ::= + // ::= +@@ -941,6 +1163,7 @@ void CXXNameMangler::mangleUnqualifiedNa + Out << 'L'; + + mangleSourceName(II); ++ writeAbiTags(ND, AdditionalAbiTags); + break; + } + +@@ -980,6 +1203,7 @@ void CXXNameMangler::mangleUnqualifiedNa + assert(FD->getIdentifier() && "Data member name isn't an identifier!"); + + mangleSourceName(FD->getIdentifier()); ++ // Not emitting abi tags: internal name anyway + break; + } + +@@ -1000,6 +1224,10 @@ void CXXNameMangler::mangleUnqualifiedNa + assert(D->getDeclName().getAsIdentifierInfo() && + "Typedef was not named!"); + mangleSourceName(D->getDeclName().getAsIdentifierInfo()); ++ assert(!AdditionalAbiTags && "Type cannot have additional abi tags"); ++ // explicit abi tags are still possible; take from underlying type, not ++ // from typedef. ++ writeAbiTags(TD, nullptr); + break; + } + +@@ -1009,6 +1237,8 @@ void CXXNameMangler::mangleUnqualifiedNa + // ::= + # Parameter types or 'v' for 'void'. + if (const CXXRecordDecl *Record = dyn_cast(TD)) { + if (Record->isLambda() && Record->getLambdaManglingNumber()) { ++ assert(!AdditionalAbiTags && ++ "Lambda type cannot have additional abi tags"); + mangleLambda(Record); + break; + } +@@ -1020,11 +1250,13 @@ void CXXNameMangler::mangleUnqualifiedNa + if (UnnamedMangle > 1) + Out << UnnamedMangle - 2; + Out << '_'; ++ writeAbiTags(TD, AdditionalAbiTags); + break; + } + +- // Get a unique id for the anonymous struct. +- unsigned AnonStructId = Context.getAnonymousStructId(TD); ++ // Get a unique id for the anonymous struct. If it is not a real output ++ // ID doesn't matter so use fake one. ++ unsigned AnonStructId = NullOut ? 0 : Context.getAnonymousStructId(TD); + + // Mangle it as a source name in the form + // [n] $_ +@@ -1052,6 +1284,7 @@ void CXXNameMangler::mangleUnqualifiedNa + // Otherwise, use the complete constructor name. This is relevant if a + // class with a constructor is declared within a constructor. + mangleCXXCtorType(Ctor_Complete); ++ writeAbiTags(ND, AdditionalAbiTags); + break; + + case DeclarationName::CXXDestructorName: +@@ -1063,6 +1296,7 @@ void CXXNameMangler::mangleUnqualifiedNa + // Otherwise, use the complete destructor name. This is relevant if a + // class with a destructor is declared within a destructor. + mangleCXXDtorType(Dtor_Complete); ++ writeAbiTags(ND, AdditionalAbiTags); + break; + + case DeclarationName::CXXOperatorName: +@@ -1078,6 +1312,7 @@ void CXXNameMangler::mangleUnqualifiedNa + case DeclarationName::CXXConversionFunctionName: + case DeclarationName::CXXLiteralOperatorName: + mangleOperatorName(Name, Arity); ++ writeAbiTags(ND, AdditionalAbiTags); + break; + + case DeclarationName::CXXUsingDirective: +@@ -1094,7 +1329,9 @@ void CXXNameMangler::mangleSourceName(co + + void CXXNameMangler::mangleNestedName(const NamedDecl *ND, + const DeclContext *DC, +- bool NoFunction) { ++ const AbiTagList *AdditionalAbiTags, ++ bool NoFunction, ++ bool ExcludeUnqualifiedName) { + // + // ::= N [] [] E + // ::= N [] [] +@@ -1114,30 +1351,36 @@ void CXXNameMangler::mangleNestedName(co + // Check if we have a template. + const TemplateArgumentList *TemplateArgs = nullptr; + if (const TemplateDecl *TD = isTemplate(ND, TemplateArgs)) { +- mangleTemplatePrefix(TD, NoFunction); ++ mangleTemplatePrefix(TD, AdditionalAbiTags, NoFunction, ++ ExcludeUnqualifiedName); + mangleTemplateArgs(*TemplateArgs); + } + else { + manglePrefix(DC, NoFunction); +- mangleUnqualifiedName(ND); ++ if (!ExcludeUnqualifiedName) ++ mangleUnqualifiedName(ND, AdditionalAbiTags); + } + + Out << 'E'; + } + void CXXNameMangler::mangleNestedName(const TemplateDecl *TD, ++ const AbiTagList *AdditionalAbiTags, ++ bool ExcludeUnqualifiedName, + const TemplateArgument *TemplateArgs, + unsigned NumTemplateArgs) { + // ::= N [] E + + Out << 'N'; + +- mangleTemplatePrefix(TD); ++ mangleTemplatePrefix(TD, AdditionalAbiTags, ExcludeUnqualifiedName); + mangleTemplateArgs(TemplateArgs, NumTemplateArgs); + + Out << 'E'; + } + +-void CXXNameMangler::mangleLocalName(const Decl *D) { ++void CXXNameMangler::mangleLocalName(const Decl *D, ++ const AbiTagList *AdditionalAbiTags, ++ bool ExcludeUnqualifiedName) { + // := Z E [] + // := Z E s [] + // := Z E d [ ] +@@ -1149,15 +1392,26 @@ void CXXNameMangler::mangleLocalName(con + + Out << 'Z'; + +- if (const ObjCMethodDecl *MD = dyn_cast(DC)) +- mangleObjCMethodName(MD); +- else if (const BlockDecl *BD = dyn_cast(DC)) +- mangleBlockForPrefix(BD); +- else +- mangleFunctionEncoding(cast(DC)); ++ { ++ AbiTagState LocalAbiTags(AbiTags); ++ ++ if (const ObjCMethodDecl *MD = dyn_cast(DC)) ++ mangleObjCMethodName(MD); ++ else if (const BlockDecl *BD = dyn_cast(DC)) ++ mangleBlockForPrefix(BD); ++ else ++ mangleFunctionEncoding(cast(DC)); ++ ++ // Implicit ABI tags (from namespace) are not available in the following ++ // entity; reset to actually emitted tags, which are available. ++ LocalAbiTags.setUsedAbiTags(LocalAbiTags.getEmittedAbiTags()); ++ } + + Out << 'E'; + ++ // GCC 5.3.0 doesn't emit derived ABI tags for local names but that seems to ++ // be a bug that is fixed in trunk. ++ + if (RD) { + // The parameter number is omitted for the last parameter, 0 for the + // second-to-last parameter, 1 for the third-to-last parameter, etc. The +@@ -1182,13 +1436,17 @@ void CXXNameMangler::mangleLocalName(con + // Mangle the name relative to the closest enclosing function. + // equality ok because RD derived from ND above + if (D == RD) { +- mangleUnqualifiedName(RD); ++ if (!ExcludeUnqualifiedName) ++ mangleUnqualifiedName(RD, AdditionalAbiTags); + } else if (const BlockDecl *BD = dyn_cast(D)) { + manglePrefix(getEffectiveDeclContext(BD), true /*NoFunction*/); +- mangleUnqualifiedBlock(BD); ++ assert(!AdditionalAbiTags && "Block cannot have additional abi tags"); ++ if (!ExcludeUnqualifiedName) ++ mangleUnqualifiedBlock(BD); + } else { + const NamedDecl *ND = cast(D); +- mangleNestedName(ND, getEffectiveDeclContext(ND), true /*NoFunction*/); ++ mangleNestedName(ND, getEffectiveDeclContext(ND), AdditionalAbiTags, ++ true /*NoFunction*/, ExcludeUnqualifiedName); + } + } else if (const BlockDecl *BD = dyn_cast(D)) { + // Mangle a block in a default parameter; see above explanation for +@@ -1205,30 +1463,37 @@ void CXXNameMangler::mangleLocalName(con + } + } + +- mangleUnqualifiedBlock(BD); ++ assert(!AdditionalAbiTags && "Block cannot have additional abi tags"); ++ if (!ExcludeUnqualifiedName) ++ mangleUnqualifiedBlock(BD); + } else { +- mangleUnqualifiedName(cast(D)); ++ if (!ExcludeUnqualifiedName) ++ mangleUnqualifiedName(cast(D), AdditionalAbiTags); + } + +- if (const NamedDecl *ND = dyn_cast(RD ? RD : D)) { +- unsigned disc; +- if (Context.getNextDiscriminator(ND, disc)) { +- if (disc < 10) +- Out << '_' << disc; +- else +- Out << "__" << disc << '_'; ++ if (!ExcludeUnqualifiedName) { ++ if (const NamedDecl *ND = dyn_cast(RD ? RD : D)) { ++ unsigned disc; ++ if (Context.getNextDiscriminator(ND, disc)) { ++ if (disc < 10) ++ Out << '_' << disc; ++ else ++ Out << "__" << disc << '_'; ++ } + } + } + } + + void CXXNameMangler::mangleBlockForPrefix(const BlockDecl *Block) { + if (GetLocalClassDecl(Block)) { +- mangleLocalName(Block); ++ mangleLocalName(Block, /* AdditionalAbiTags */ nullptr, ++ /* ExcludeUnqualifiedName */ false); + return; + } + const DeclContext *DC = getEffectiveDeclContext(Block); + if (isLocalContainerContext(DC)) { +- mangleLocalName(Block); ++ mangleLocalName(Block, /* AdditionalAbiTags */ nullptr, ++ /* ExcludeUnqualifiedName */ false); + return; + } + manglePrefix(getEffectiveDeclContext(Block)); +@@ -1239,10 +1504,11 @@ void CXXNameMangler::mangleUnqualifiedBl + if (Decl *Context = Block->getBlockManglingContextDecl()) { + if ((isa(Context) || isa(Context)) && + Context->getDeclContext()->isRecord()) { +- if (const IdentifierInfo *Name +- = cast(Context)->getIdentifier()) { ++ const auto *ND = cast(Context); ++ if (const IdentifierInfo *Name = ND->getIdentifier()) { + mangleSourceName(Name); +- Out << 'M'; ++ writeAbiTags(ND, /* AdditionalAbiTags */ nullptr); ++ Out << 'M'; + } + } + } +@@ -1275,7 +1541,7 @@ void CXXNameMangler::mangleLambda(const + if (const IdentifierInfo *Name + = cast(Context)->getIdentifier()) { + mangleSourceName(Name); +- Out << 'M'; ++ Out << 'M'; + } + } + } +@@ -1358,11 +1624,11 @@ void CXXNameMangler::manglePrefix(const + // Check if we have a template. + const TemplateArgumentList *TemplateArgs = nullptr; + if (const TemplateDecl *TD = isTemplate(ND, TemplateArgs)) { +- mangleTemplatePrefix(TD); ++ mangleTemplatePrefix(TD, /* AdditionalAbiTags */ nullptr); + mangleTemplateArgs(*TemplateArgs); + } else { + manglePrefix(getEffectiveDeclContext(ND), NoFunction); +- mangleUnqualifiedName(ND); ++ mangleUnqualifiedName(ND, /* AdditionalAbiTags */ nullptr); + } + + addSubstitution(ND); +@@ -1373,27 +1639,30 @@ void CXXNameMangler::mangleTemplatePrefi + // ::= + // ::= + if (TemplateDecl *TD = Template.getAsTemplateDecl()) +- return mangleTemplatePrefix(TD); ++ return mangleTemplatePrefix(TD, /* AdditionalAbiTags */ nullptr); + + if (QualifiedTemplateName *Qualified = Template.getAsQualifiedTemplateName()) + manglePrefix(Qualified->getQualifier()); +- ++ + if (OverloadedTemplateStorage *Overloaded + = Template.getAsOverloadedTemplate()) { + mangleUnqualifiedName(nullptr, (*Overloaded->begin())->getDeclName(), +- UnknownArity); ++ UnknownArity, ++ /* AdditionalAbiTags */ nullptr); + return; + } +- ++ + DependentTemplateName *Dependent = Template.getAsDependentTemplateName(); + assert(Dependent && "Unknown template name kind?"); + if (NestedNameSpecifier *Qualifier = Dependent->getQualifier()) + manglePrefix(Qualifier); +- mangleUnscopedTemplateName(Template); ++ mangleUnscopedTemplateName(Template, /* AdditionalAbiTags */ nullptr); + } + + void CXXNameMangler::mangleTemplatePrefix(const TemplateDecl *ND, +- bool NoFunction) { ++ const AbiTagList *AdditionalAbiTags, ++ bool NoFunction, ++ bool ExcludeUnqualifiedName) { + // ::=