* Sync the 3.9 changes into 4.0

* Fix the cmake paths in llvm-4.0-dev deb package. Thanks to Brad King
* 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 <prefix>/lib/cmake/llvm instead of
  <prefix>/share/llvm/cmake
  Thanks to Brad King of the fix
* Disable lldb on sparc64 (Closes: #832371)
* New snapshot release
* 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
* 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)
* Fix the detection of gcc. This broke the build on the latest unstable
* 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
* Try to fix mips64el build, by enabling the same
  packages as the mips and mipsel versions
* Link mips* with latomic.
* Disable lldb on sparc64 (Closes: #832371)
* Hopefully fix the FTBFS on armel
* 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
* Add -gsplit-dwarf to CXXFLAGS to workaround the memory allocation
  issue on i386 (hopefully)
* Add a symlink from usr/lib/llvm-3.8/share/llvm/cmake
  pointing to usr/share/llvm-3.8/cmake
* Remove python-lldb-3.8 where liblldb-3.8-dev is not built
* New maintenance release
* 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.
* Followup to fix the cmake install (Closes: #819072)
* Enable FPXX by default on mips/mipsel (Closes: #826749)
* New RC release
* Improve the cmake detection (used for llvm.org/apt)
* Standards-Version updated to 3.9.8
* Ignore outdated-autotools-helper-file
* 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)
* 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).
* 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
* Fix an issue with scan-view (Closes: #825101)
* Team upload.
* Disable polly on s390x and fix polly check.
* Fix VCS fields.
* Fix txt file installation issue, by putting a README.txt file
  with some explanation.
* Tighten llvm dev dependency (Closes: #814142).
* New upstream release
* Install a missing library to unbreak lldb (Closes: #815809)
* 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
* clang-tidy-3.8: Remove Breaks/Replaces on clang-modernize-3.8.
* Disable lldb on s390x.
* New snapshot release
* Remove build-llvm/ after the install step to save space.
  Most of the rc1 builds failed because of hd space.
* 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
This commit is contained in:
Sylvestre Ledru 2016-08-07 14:10:49 +00:00
commit 42b3e7ec35
13 changed files with 335 additions and 47 deletions

215
debian/changelog vendored
View File

@ -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 <prefix>/lib/cmake/llvm instead of
<prefix>/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 <prefix>/lib/cmake/llvm instead of
<prefix>/share/llvm/cmake
Thanks to Brad King of the fix
* Disable lldb on sparc64 (Closes: #832371)
-- Sylvestre Ledru <sylvestre@debian.org> 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 <sylvestre@debian.org> Fri, 15 Jul 2016 21:29:38 +0200
-- Sylvestre Ledru <sylvestre@debian.org> 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 <sylvestre@debian.org> 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 <sylvestre@debian.org> 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 <sylvestre@debian.org> 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 <sylvestre@debian.org> 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 <sylvestre@debian.org> 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 <sylvestre@debian.org> 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 <sylvestre@debian.org> 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 <sylvestre@debian.org> 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 <sylvestre@debian.org> 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 <sylvestre@debian.org> 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 <locutusofborg@debian.org> 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 <sylvestre@debian.org> 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 <sylvestre@debian.org> 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 <sylvestre@debian.org> 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 <sylvestre@debian.org> 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 <sylvestre@debian.org> Sun, 01 Dec 2013 17:49:46 +0100

View File

@ -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@

View File

@ -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

33
debian/control vendored
View File

@ -1,4 +1,4 @@
Source: llvm-toolchain-snapshot
Source: llvm-toolchain-3.9
Section: devel
Priority: optional
Maintainer: LLVM Packaging Team <pkg-llvm-team@lists.alioth.debian.org>
@ -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

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,19 @@
Description: Link with -latomic when mips* processor is detected
Author: Gianfranco Costamagna <locutusofborg@debian.org>
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

View File

@ -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 ();

View File

@ -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

View File

@ -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

50
debian/rules vendored
View File

@ -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

View File

@ -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