diff --git a/debian/changelog b/debian/changelog index 52dce764..82def95d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,7 @@ llvm-toolchain-snapshot (1:4.0~svn275970-1~exp2) experimental; urgency=medium - * Fix the cmake paths in llvm-3.9-dev deb package. Thanks to Brad King + * Sync the 3.9 changes into 4.0 + * Fix the cmake paths in llvm-4.0-dev deb package. Thanks to Brad King for the patch (Closes: #819072) * LLVMConfig.cmake is now installed to /lib/cmake/llvm instead of /share/llvm/cmake @@ -15,10 +16,27 @@ llvm-toolchain-snapshot (1:4.0~svn275970-1~exp1) experimental; urgency=medium * Bring back llvm-4.0-tools to life * ship clang-tblgen & yaml-bench as part of the libclang-common-X.Y-dev package + + * Fix the cmake paths in llvm-3.9-dev deb package. Thanks to Brad King + for the patch (Closes: #819072) + * LLVMConfig.cmake is now installed to /lib/cmake/llvm instead of + /share/llvm/cmake + Thanks to Brad King of the fix + * Disable lldb on sparc64 (Closes: #832371) + + -- Sylvestre Ledru Mon, 25 Jul 2016 12:18:52 +0200 + +llvm-toolchain-3.9 (1:3.9~svn275918-1~exp1) experimental; urgency=medium + + * New snapshot release * Silent test CodeGen/SPARC/LeonInsertNOPsDoublePrecision.ll * ship lli-child-target as part of the llvm-X.Y-runtime package + * Bring back llvm-3.9-tools to life + * ship clang-tblgen & yaml-bench as part of the libclang-common-X.Y-dev + package + * ship lli-child-target as part of the llvm-X.Y-runtime package - -- Sylvestre Ledru Fri, 15 Jul 2016 21:29:38 +0200 + -- Sylvestre Ledru Tue, 19 Jul 2016 15:34:08 +0200 llvm-toolchain-snapshot (1:3.9~svn274438-1) unstable; urgency=medium @@ -161,6 +179,197 @@ llvm-toolchain-3.8 (1:3.8~+rc1-1~exp1) experimental; urgency=medium -- Sylvestre Ledru Wed, 20 Jan 2016 16:09:01 +0100 +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) + + -- 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 @@ -767,7 +976,7 @@ llvm-toolchain-3.4 (1:3.4~+rc1-3) unstable; urgency=low * 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 => + * 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 diff --git a/debian/clang-X.Y.install.in b/debian/clang-X.Y.install.in index 171999ea..dc97feba 100644 --- a/debian/clang-X.Y.install.in +++ b/debian/clang-X.Y.install.in @@ -35,4 +35,3 @@ usr/bin/modularize-@LLVM_VERSION@ usr/bin/scan-build-@LLVM_VERSION@ usr/bin/scan-view-@LLVM_VERSION@ usr/bin/c-index-test-@LLVM_VERSION@ - diff --git a/debian/clang-X.Y.manpages.in b/debian/clang-X.Y.manpages.in index 2801e790..7be800ef 100644 --- a/debian/clang-X.Y.manpages.in +++ b/debian/clang-X.Y.manpages.in @@ -1,4 +1,4 @@ -#build-llvm/tools/clang/docs/tools/clang-@LLVM_VERSION@.1 +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 diff --git a/debian/control b/debian/control index d88ad1d9..48992bee 100644 --- a/debian/control +++ b/debian/control @@ -1,4 +1,4 @@ -Source: llvm-toolchain-snapshot +Source: llvm-toolchain-3.9 Section: devel Priority: optional Maintainer: LLVM Packaging Team @@ -10,11 +10,11 @@ Build-Depends: debhelper (>= 9.0), flex, bison, dejagnu, tcl, expect, libjsoncpp-dev, lcov, procps, help2man, dh-ocaml, zlib1g-dev Build-Conflicts: oprofile, ocaml, libllvm-3.4-ocaml-dev, libllvm-3.5-ocaml-dev, - libllvm-4.0-ocaml-dev -Standards-Version: 4.0.8 + libllvm-3.8-ocaml-dev, libllvm-3.9-ocaml-dev +Standards-Version: 3.9.8 Homepage: http://www.llvm.org/ -Vcs-Svn: svn://anonscm.debian.org/svn/pkg-llvm/llvm-toolchain/branches/snapshot/ -Vcs-Browser: http://svn.debian.org/viewsvn/pkg-llvm/llvm-toolchain/branches/snapshot/ +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 ------------- @@ -156,6 +156,27 @@ Description: clang library - Common development package (profiling, etc). +Package: libfuzzer-4.0-dev +Architecture: any +Section: libdevel +Depends: ${shlibs:Depends}, ${misc:Depends}, clang-4.0 (= ${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-4.0 Section: python Architecture: any @@ -270,7 +291,7 @@ Description: Modular compiler and toolchain technologies, IR interpreter Package: llvm-4.0-dev Architecture: any Depends: ${shlibs:Depends}, libffi-dev (>= 3.0.9), ${misc:Depends}, - llvm-4.0 (= ${binary:Version}), libtinfo-dev + llvm-4.0 (= ${binary:Version}), libllvm4.0 (= ${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 diff --git a/debian/libclang1-X.Y.install.in b/debian/libclang1-X.Y.install.in index 27c6af7b..48a548a5 100644 --- a/debian/libclang1-X.Y.install.in +++ b/debian/libclang1-X.Y.install.in @@ -1,3 +1,2 @@ usr/lib/llvm-@LLVM_VERSION@/lib/libclang-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/ -usr/lib/llvm-@LLVM_VERSION@/lib/libclang.so.1 diff --git a/debian/llvm-X.Y-dev.links.in b/debian/llvm-X.Y-dev.links.in index d6a84bce..c8cbce2f 100644 --- a/debian/llvm-X.Y-dev.links.in +++ b/debian/llvm-X.Y-dev.links.in @@ -14,4 +14,3 @@ 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@/lib/llvm/cmake usr/lib/llvm-@LLVM_VERSION@/cmake - diff --git a/debian/patches/lldb-link-atomic-cmake.patch b/debian/patches/lldb-link-atomic-cmake.patch new file mode 100644 index 00000000..dced0f06 --- /dev/null +++ b/debian/patches/lldb-link-atomic-cmake.patch @@ -0,0 +1,19 @@ +Description: Link with -latomic when mips* processor is detected +Author: Gianfranco Costamagna +Last-Update: 2016-07-27 + +--- llvm-toolchain-3.8-3.8.1.orig/lldb/cmake/LLDBDependencies.cmake ++++ llvm-toolchain-3.8-3.8.1/lldb/cmake/LLDBDependencies.cmake +@@ -172,6 +172,12 @@ if (LLVM_BUILD_STATIC) + endif() + endif() + ++if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "mips" OR ++ CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "mipsel" OR ++ CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "mips64el") ++ list(APPEND LLDB_SYSTEM_LIBS atomic) ++endif() ++ + set( LLVM_LINK_COMPONENTS + ${LLVM_TARGETS_TO_BUILD} + interpreter diff --git a/debian/patches/lldb-test-makefile.diff b/debian/patches/lldb-test-makefile.diff deleted file mode 100644 index e69de29b..00000000 diff --git a/debian/patches/llvm25468-lldb-swig-format-security.diff b/debian/patches/llvm25468-lldb-swig-format-security.diff deleted file mode 100644 index 5d046858..00000000 --- a/debian/patches/llvm25468-lldb-swig-format-security.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- a/lldb/scripts/interface/SBError.i -+++ b/lldb/scripts/interface/SBError.i -@@ -57,6 +57,11 @@ - condition and we get back a void process object. - ") SBError; - -+%{ -+// https://llvm.org/bugs/show_bug.cgi?id=25468 -+#pragma GCC diagnostic ignored "-Wformat-security" -+%} -+ - class SBError { - public: - SBError (); diff --git a/debian/patches/series b/debian/patches/series index 55ba1815..3fcb5252 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -27,9 +27,10 @@ hurd-EIEIO-undef.diff silent-MCJIIT-tests.diff clang-analyzer-force-version.diff llvm25468-lldb-swig-format-security.diff -#silent-test-transforms.diff install-scan-build-py.diff -#scan-build-py-default.diff scan-view-fix-path.diff mips-fpxx-enable.diff disable-test-failing-sparc-i386.diff +fix-cmake-config-prefix.diff +lldb-test-makefile.diff +lldb-link-atomic-cmake.patch diff --git a/debian/patches/silent-more-tests.diff b/debian/patches/silent-more-tests.diff index 066ad5a8..cc1eb3e0 100644 --- a/debian/patches/silent-more-tests.diff +++ b/debian/patches/silent-more-tests.diff @@ -49,6 +49,7 @@ Index: llvm-toolchain-snapshot_3.9~svn266048/test/Feature/load_module.ll @junk = global i32 0 +<<<<<<< .working Index: llvm-toolchain-snapshot_3.9~svn266048/clang/test/SemaCXX/warn-memsize-comparison.cpp =================================================================== --- llvm-toolchain-snapshot_3.9~svn266048.orig/clang/test/SemaCXX/warn-memsize-comparison.cpp @@ -81,3 +82,39 @@ Index: llvm-toolchain-snapshot_3.9~svn266048/clang/test/SemaCXX/warn-memsize-com if (memset(b1, 0, sizeof(b1) / 2)) {} if (memset(b1, 0, sizeof(b1) >> 2)) {} if (memset(b1, 0, 4 << 2)) {} +||||||| .merge-left.r1825 +======= +Index: llvm-toolchain-3.8_3.8~+rc1/clang/test/SemaCXX/warn-memsize-comparison.cpp +=================================================================== +--- llvm-toolchain-3.8_3.8~+rc1.orig/clang/test/SemaCXX/warn-memsize-comparison.cpp ++++ llvm-toolchain-3.8_3.8~+rc1/clang/test/SemaCXX/warn-memsize-comparison.cpp +@@ -11,8 +11,6 @@ extern "C" int strncasecmp(const char *s + extern "C" char *strncpy(char *dst, const char *src, size_t n); + extern "C" char *strncat(char *dst, const char *src, size_t n); + extern "C" char *strndup(const char *src, size_t n); +-extern "C" size_t strlcpy(char *dst, const char *src, size_t size); +-extern "C" size_t strlcat(char *dst, const char *src, size_t size); + + void f() { + char b1[80], b2[80]; +@@ -70,18 +68,6 @@ void f() { + expected-note {{explicitly cast the argument}} + if (strndup(b1, sizeof(b1)) != 0) {} + +- if (strlcpy(b1, b2, sizeof(b1) != 0)) {} // \ +- expected-warning{{size argument in 'strlcpy' call is a comparison}} \ +- expected-note {{did you mean to compare}} \ +- expected-note {{explicitly cast the argument}} +- if (strlcpy(b1, b2, sizeof(b1)) != 0) {} +- +- if (strlcat(b1, b2, sizeof(b1) != 0)) {} // \ +- expected-warning{{size argument in 'strlcat' call is a comparison}} \ +- expected-note {{did you mean to compare}} \ +- expected-note {{explicitly cast the argument}} +- if (strlcat(b1, b2, sizeof(b1)) != 0) {} +- + if (memset(b1, 0, sizeof(b1) / 2)) {} + if (memset(b1, 0, sizeof(b1) >> 2)) {} + if (memset(b1, 0, 4 << 2)) {} + +>>>>>>> .merge-right.r2043 diff --git a/debian/rules b/debian/rules index 87ffb75f..2a0dfb30 100755 --- a/debian/rules +++ b/debian/rules @@ -3,9 +3,9 @@ TARGET_BUILD := build-llvm DEB_INST := $(CURDIR)/debian/tmp/ #GCC_VERSION := 4.8 -# The 5| in the regexp is a crappy workaround. g++ 5.2 in Debian is not providing a g++-5.2 binary (only g++-5) +# The 5|6| in the regexp is a crappy workaround. g++ 5.2 in Debian is not providing a g++-5.2 binary (only g++-5) # accomodate that by hardcoding the 5 detection -GCC_VERSION := $(shell dpkg-query -W -f '$${Version}' g++ | sed -rne 's,^([0-9]+:)?(5|[0-9]+\.[0-9]+|[0-9]+).*$$,\2,p') +GCC_VERSION := $(shell dpkg-query -W -f '$${Version}' g++ | sed -rne 's,^([0-9]+:)?(5|6|[0-9]+\.[0-9]+|[0-9]+).*$$,\2,p') LLVM_VERSION := 4.0 LLVM_VERSION_FULL := $(LLVM_VERSION).0 SONAME_EXT := 1 @@ -17,6 +17,8 @@ endif VENDOR=$(shell lsb_release -is) +BUILD_DIR=Release + DEB_HOST_MULTIARCH = $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) DEB_HOST_GNU_TYPE = $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) DEB_HOST_ARCH_BITS = $(shell dpkg-architecture -qDEB_HOST_ARCH_BITS) @@ -44,6 +46,9 @@ export CXX=g++-$(GCC_VERSION) opt_flags = -g -O2 ifneq (,$(findstring $(DEB_HOST_ARCH),armel)) opt_flags += -marm + # 3.8 fails to build, disable the compiler_rt builtins + # See http://lists.llvm.org/pipermail/llvm-dev/2016-May/099761.html + CMAKE_EXTRA += -DCOMPILER_RT_BUILD_BUILTINS=OFF endif ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' g++-$(GCC_VERSION)) ge 4.8-20121128-1~ ; echo $$?),0) @@ -54,9 +59,9 @@ else control_vars = '-Vdep:devlibs=libstdc++6-$(GCC_VERSION)-dev' endif -BINUTILS_GOLD_ARCHS := amd64 armhf i386 powerpc powerpcspe ppc64 ppc64el sparc sparc64 x32 +BINUTILS_GOLD_ARCHS := amd64 armhf i386 powerpcspe ppc64 ppc64el sparc sparc64 x32 ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' binutils) ge 2.23.1-1~exp3 ; echo $$?),0) -ifneq (,$(findstring $(DEB_HOST_ARCH),$(BINUTILS_GOLD_ARCHS))) +ifneq (,$(filter $(DEB_HOST_ARCH),$(BINUTILS_GOLD_ARCHS))) # -fused-ld=gold enables the gold linker (but is not supported by all archs / distro) LDFLAGS_EXTRA += -fuse-ld=gold CXXFLAGS_EXTRA += -Wl,-fuse-ld=gold @@ -64,8 +69,9 @@ endif endif # Enable polly (or not) -ifeq (,$(filter $(DEB_HOST_ARCH), powerpc)) - POLLY_ENABLE=yes +POLLY_ENABLE=yes +ifeq (,$(filter-out $(DEB_HOST_ARCH), powerpc s390x)) + POLLY_ENABLE=no endif ifneq (,$(filter codecoverage,$(DEB_BUILD_OPTIONS))) @@ -222,12 +228,16 @@ override_dh_auto_configure: preconfigure -DLLVM_ENABLE_RTTI=ON \ -DLLVM_ENABLE_FFI=ON \ $(CMAKE_EXTRA) \ - -DLIBCLANG_LIBRARY_VERSION=$(SONAME_EXT); \ - + -DLIBCLANG_LIBRARY_VERSION=$(SONAME_EXT) override_dh_auto_build: $(PRE_PROCESS) $(MAKE) $(NJOBS) -C $(TARGET_BUILD) VERBOSE=1 CLANG_VENDOR=$(VENDOR) CXXFLAGS="$(CXXFLAGS_EXTRA)" LDFLAGS="$(LDFLAGS_EXTRA)" REQUIRES_RTTI=1 DEBUGMAKE=1 - + cd $(TARGET_BUILD) \ + CFLAGS=`dpkg-buildflags --get CFLAGS`; \ + CFLAGS="$$CFLAGS `dpkg-buildflags --get CPPFLAGS`"; \ + echo $$CFLAGS; \ + bin/clang++ -c $$CFLAGS -std=c++11 ../lib/Fuzzer/*.cpp -IFuzzer; \ + ar ruv libFuzzer.a Fuzzer*.o override_dh_prep: build_doc dh_prep @@ -245,6 +255,8 @@ build_doc: done; \ fi + cd $(CURDIR)/clang/docs/_build/man/; mv clang.1 clang-$(LLVM_VERSION).1 + # Remove the copy of jquery. See bug #701087 for d in $(TARGET_BUILD)/docs/html/_static/ $(TARGET_BUILD)/tools/clang/docs/html/_static/ $(TARGET_BUILD)/tools/clang/tools/extra/docs/html/_static/ $(TARGET_BUILD)/tools/polly/docs/html/_static/; do \ cd $$d && rm -f jquery.js && ln -s /usr/share/javascript/jquery/jquery.js && cd -; \ @@ -277,12 +289,6 @@ override_dh_auto_install: cd debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/ && rm -f libclang.so.$(SONAME_EXT) libclang-$(LLVM_VERSION).so; \ ln -s libclang-$(LLVM_VERSION).so.$(SONAME_EXT) libclang.so.$(SONAME_EXT) -# cd debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/ && \ -# mv liblldb.so.$(LLVM_VERSION_FULL) liblldb-$(LLVM_VERSION).so.$(SONAME_EXT) && \ -# rm -f liblldb.so && \ -# ln -s liblldb-$(LLVM_VERSION).so.$(SONAME_EXT) liblldb.so && \ -# ln -s liblldb-$(LLVM_VERSION).so.$(SONAME_EXT) liblldb.so.$(LLVM_VERSION_FULL) - # Remove artefact (where compiler-rt is built) # if test -d $(TARGET_BUILD)/tools/clang/runtime/compiler-rt/clang_linux; then \ # cd $(TARGET_BUILD)/tools/clang/runtime/compiler-rt/clang_linux && rm -rf $$(find . -mindepth 2 -maxdepth 2 -type d) && rm -rf $$(find -empty) && rm -rf */.dir; \ @@ -291,6 +297,9 @@ override_dh_auto_install: mkdir -p $(CURDIR)/debian/clang-$(LLVM_VERSION)/usr/bin/ cp compiler-rt/lib/asan/scripts/asan_symbolize.py $(CURDIR)/debian/clang-$(LLVM_VERSION)/usr/bin/asan_symbolize-$(LLVM_VERSION) + mkdir -p $(CURDIR)/debian/libfuzzer-$(LLVM_VERSION)-dev/usr/lib/llvm-$(LLVM_VERSION)/lib/ + cp -v $(TARGET_BUILD)/libFuzzer.a $(CURDIR)/debian/libfuzzer-$(LLVM_VERSION)-dev/usr/lib/llvm-$(LLVM_VERSION)/lib/ + # Create this fake directory to make the install libclang-common-dev happy # under the unsupported archs of compiler-rt mkdir -p $(DEB_INST)/usr/lib/clang/$(LLVM_VERSION)/lib @@ -298,6 +307,10 @@ override_dh_auto_install: mkdir -p $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/clang/$(LLVM_VERSION)/lib/clang_linux/ mkdir -p $(TARGET_BUILD)/tools/clang/runtime/compiler-rt/clang_linux/ mkdir -p $(TARGET_BUILD)/tools/clang/runtime/compiler-rt/clang_linux/ +# On some archs, the sanatizers are not built. As we explicitly includes some txt files, create +# a fake txt to make sure it doesn't fail + echo "The *.txt files, if available, contain helper to override some of the errors messages." > $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/clang/$(LLVM_VERSION_FULL)/README.txt + echo "Please visit https://github.com/google/sanitizers/wiki/AddressSanitizer for help" >> $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/clang/$(LLVM_VERSION_FULL)/README.txt # idem for the lldb python binding mkdir -p $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/python2.7/site-packages/lldb/ @@ -314,15 +327,14 @@ override_dh_auto_install: # Rename binaries mkdir -p $(DEB_INST)/usr/bin/ - cd $(DEB_INST)/usr/bin/; rm -f *; \ + cd $(DEB_INST)/usr/bin/; \ + rm -f *; \ for f in ../lib/llvm-$(LLVM_VERSION)/bin/*; do \ ln -s $$f `basename $$f`-$(LLVM_VERSION); \ echo "Link $$f to `basename $$f`-$(LLVM_VERSION)"; \ done # Rename some stuff with the version name -# cp $(CURDIR)/$(TARGET_BUILD)/tools/clang/docs/tools/clang.1 $(CURDIR)/$(TARGET_BUILD)/tools/clang/docs/tools/clang-$(LLVM_VERSION).1 - cp $(CURDIR)/clang/tools/scan-build/man/scan-build.1 $(CURDIR)/clang/tools/scan-build/man/scan-build-$(LLVM_VERSION).1 # copy the vim files (except that tablegen does not exist for indent @@ -390,6 +402,8 @@ override_dh_installman: override_dh_strip: + : # running out of diskspace on the buildds + find $(TARGET_BUILD) -name '*.o' -o -name '*.a' | xargs -r rm -f dh_strip -p libclang$(SONAME_EXT)-$(LLVM_VERSION) --dbg-package=libclang$(SONAME_EXT)-$(LLVM_VERSION)-dbg dh_strip -p libllvm$(LLVM_VERSION) --dbg-package=libllvm$(LLVM_VERSION)-dbg dh_strip -p liblldb-$(LLVM_VERSION) --dbg-package=liblldb-$(LLVM_VERSION)-dbg diff --git a/debian/source.lintian-overrides b/debian/source.lintian-overrides index 8c4a4aa6..a690f2fa 100644 --- a/debian/source.lintian-overrides +++ b/debian/source.lintian-overrides @@ -1,2 +1,6 @@ # Removed by patch remove-dbtree.diff source: source-is-missing clang/www/analyzer/scripts/dbtree.js +# No longer used (we are using cmake now) +source: outdated-autotools-helper-file autoconf/config.guess 2011-08-20 +source: outdated-autotools-helper-file autoconf/config.sub 2011-11-02 +