Merge branch '7' of salsa.debian.org:pkg-llvm-team/llvm-toolchain into 7

This commit is contained in:
Sylvestre Ledru 2018-10-02 10:06:59 +02:00
commit 68c56c73b9
9 changed files with 104 additions and 52 deletions

15
debian/changelog vendored
View File

@ -1,9 +1,20 @@
llvm-toolchain-7 (1:7-4) unstable; urgency=medium
* Backport a fix to improve scan-build code error.
Thanks to Roman Lebedev for the fix(Closes: #909662)
* Remove bat files https://bugs.llvm.org/show_bug.cgi?id=30755
* Install bash-completion
-- Sylvestre Ledru <sylvestre@debian.org> Wed, 26 Sep 2018 14:32:41 +0100
llvm-toolchain-7 (1:7-3) unstable; urgency=medium llvm-toolchain-7 (1:7-3) unstable; urgency=medium
* Fix a syntax issue in a scan-build patch * Fix a syntax issue in a scan-build patch
* Fix the autopkgtest script (no gcc in the test) * Fix the autopkgtest script (no gcc in the test)
* Create a new llvm-lto-7-dev package to ship lto * remove dep from lld to llvm-7-dev because lld
This will avoid to download llvm-dev to get lld doesn't use LLVM LTO
* remove old Replaces/Breaks
* Standards-Version: 4.2.1
-- Sylvestre Ledru <sylvestre@debian.org> Fri, 21 Sep 2018 22:48:47 +0200 -- Sylvestre Ledru <sylvestre@debian.org> Fri, 21 Sep 2018 22:48:47 +0200

View File

@ -1,2 +1,3 @@
usr/lib/llvm-@LLVM_VERSION@/bin/clang usr/lib/llvm-@LLVM_VERSION@/bin/clang-@LLVM_VERSION@ usr/lib/llvm-@LLVM_VERSION@/bin/clang usr/lib/llvm-@LLVM_VERSION@/bin/clang-@LLVM_VERSION@
usr/lib/llvm-@LLVM_VERSION@/lib/cmake/clang usr/lib/cmake/clang-@LLVM_VERSION@ usr/lib/llvm-@LLVM_VERSION@/lib/cmake/clang usr/lib/cmake/clang-@LLVM_VERSION@
usr/lib/llvm-@LLVM_VERSION@/share/clang/bash-autocomplete.sh etc/bash_completion.d/clang-@LLVM_VERSION@

71
debian/control vendored
View File

@ -12,13 +12,13 @@ Build-Depends: debhelper (>= 9.0), cmake, chrpath, texinfo, sharutils,
lcov, procps, help2man, zlib1g-dev, lcov, procps, help2man, zlib1g-dev,
g++-multilib [amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel powerpc ppc64 s390 s390x sparc sparc64 x32], g++-multilib [amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel powerpc ppc64 s390 s390x sparc sparc64 x32],
libjs-mathjax, libjs-mathjax,
doxygen, gfortran doxygen, gfortran,
# ocaml-nox [amd64 arm64 armel armhf i386 ppc64el s390x], ocaml-nox [amd64 arm64 armel armhf i386 ppc64el s390x],
# ocaml-findlib [amd64 arm64 armel armhf i386 ppc64el s390x], ocaml-findlib [amd64 arm64 armel armhf i386 ppc64el s390x],
# libctypes-ocaml-dev [amd64 arm64 armel armhf i386 ppc64el s390x], libctypes-ocaml-dev [amd64 arm64 armel armhf i386 ppc64el s390x],
# dh-ocaml [amd64 arm64 armel armhf i386 ppc64el s390x], dh-ocaml [amd64 arm64 armel armhf i386 ppc64el s390x],
Build-Conflicts: oprofile, ocaml, libllvm-3.8-ocaml-dev, libllvm-3.9-ocaml-dev Build-Conflicts: oprofile, ocaml, libllvm-3.8-ocaml-dev, libllvm-3.9-ocaml-dev
Standards-Version: 4.2.0 Standards-Version: 4.2.1
Homepage: https://www.llvm.org/ Homepage: https://www.llvm.org/
Vcs-Git: https://salsa.debian.org/pkg-llvm-team/llvm-toolchain.git -b 7 Vcs-Git: https://salsa.debian.org/pkg-llvm-team/llvm-toolchain.git -b 7
Vcs-Browser: https://salsa.debian.org/pkg-llvm-team/llvm-toolchain/tree/7 Vcs-Browser: https://salsa.debian.org/pkg-llvm-team/llvm-toolchain/tree/7
@ -255,8 +255,6 @@ Description: Modular compiler and toolchain technologies
Package: llvm-7-runtime Package: llvm-7-runtime
Architecture: any Architecture: any
Depends: binfmt-support, ${shlibs:Depends}, ${misc:Depends} 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 Description: Modular compiler and toolchain technologies, IR interpreter
LLVM is a collection of libraries and tools that make it easy to build LLVM is a collection of libraries and tools that make it easy to build
compilers, optimizers, just-in-time code generators, and many other compilers, optimizers, just-in-time code generators, and many other
@ -277,7 +275,6 @@ Package: llvm-7-dev
Architecture: any Architecture: any
Depends: ${shlibs:Depends}, libffi-dev (>= 3.0.9), ${misc:Depends}, Depends: ${shlibs:Depends}, libffi-dev (>= 3.0.9), ${misc:Depends},
llvm-7 (= ${binary:Version}), libllvm7 (= ${binary:Version}), libtinfo-dev llvm-7 (= ${binary:Version}), libllvm7 (= ${binary:Version}), libtinfo-dev
Replaces: llvm (<< 2.2-3)
Description: Modular compiler and toolchain technologies, libraries and headers Description: Modular compiler and toolchain technologies, libraries and headers
LLVM is a collection of libraries and tools that make it easy to build LLVM is a collection of libraries and tools that make it easy to build
compilers, optimizers, just-in-time code generators, and many other compilers, optimizers, just-in-time code generators, and many other
@ -294,16 +291,6 @@ Description: Modular compiler and toolchain technologies, libraries and headers
This package provides the libraries and headers to develop applications This package provides the libraries and headers to develop applications
using llvm. using llvm.
Package: libllvm-lto-7-dev
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Modular compiler and toolchain technologies, LTO lib
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 provides the LTO libraries.
Package: llvm-7-tools Package: llvm-7-tools
Architecture: any Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, python, Depends: ${shlibs:Depends}, ${misc:Depends}, python,
@ -323,28 +310,28 @@ Description: Modular compiler and toolchain technologies, tools
. .
This package provides tools for testing. This package provides tools for testing.
# Package: libllvm-7-ocaml-dev Package: libllvm-7-ocaml-dev
# Section: ocaml Section: ocaml
# Architecture: amd64 arm64 armel armhf i386 ppc64el s390x Architecture: amd64 arm64 armel armhf i386 ppc64el s390x
# Suggests: llvm-7-doc Suggests: llvm-7-doc
# Depends: ${shlibs:Depends}, ${misc:Depends}, ${ocaml:Depends}, llvm-7-dev (= ${binary:Version}) Depends: ${shlibs:Depends}, ${misc:Depends}, ${ocaml:Depends}, llvm-7-dev (= ${binary:Version})
# Replaces: libllvm-x.y-ocaml-dev Replaces: libllvm-x.y-ocaml-dev
# Conflicts: libllvm-x.y-ocaml-dev Conflicts: libllvm-x.y-ocaml-dev
# Provides: ${ocaml:Provides}, libllvm-x.y-ocaml-dev Provides: ${ocaml:Provides}, libllvm-x.y-ocaml-dev
# Description: Modular compiler and toolchain technologies, OCaml bindings Description: Modular compiler and toolchain technologies, OCaml bindings
# LLVM is a collection of libraries and tools that make it easy to build LLVM is a collection of libraries and tools that make it easy to build
# compilers, optimizers, just-in-time code generators, and many other compilers, optimizers, just-in-time code generators, and many other
# compiler-related programs. compiler-related programs.
# . .
# LLVM uses a single, language-independent virtual instruction set both LLVM uses a single, language-independent virtual instruction set both
# as an offline code representation (to communicate code between as an offline code representation (to communicate code between
# compiler phases and to run-time systems) and as the compiler internal compiler phases and to run-time systems) and as the compiler internal
# representation (to analyze and transform programs). This persistent representation (to analyze and transform programs). This persistent
# code representation allows a common set of sophisticated compiler code representation allows a common set of sophisticated compiler
# techniques to be applied at compile-time, link-time, install-time, techniques to be applied at compile-time, link-time, install-time,
# run-time, or "idle-time" (between program runs). run-time, or "idle-time" (between program runs).
# . .
# This package provides the OCaml bindings to develop applications using llvm. This package provides the OCaml bindings to develop applications using llvm.
Package: llvm-7-doc Package: llvm-7-doc
Section: doc Section: doc
@ -391,7 +378,7 @@ Description: Modular compiler and toolchain technologies, examples
Package: lld-7 Package: lld-7
Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32
# ia64 hurd powerpc have been removed # ia64 hurd powerpc have been removed
Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm7 (= ${binary:Version}), libllvm-lto-7-dev (= ${binary:Version}) Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm7 (= ${binary:Version})
Pre-Depends: ${misc:Pre-Depends} Pre-Depends: ${misc:Pre-Depends}
Description: LLVM-based linker Description: LLVM-based linker
LLD is a new, high-performance linker. It is built as a set of reusable LLD is a new, high-performance linker. It is built as a set of reusable

View File

@ -1 +0,0 @@
usr/lib/llvm-@LLVM_VERSION@/lib/libLTO.*

View File

@ -4,6 +4,7 @@ usr/lib/llvm-@LLVM_VERSION@/lib/LLVM*.so
usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM.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@.so
usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM-@LLVM_VERSION_FULL@.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@/lib/BugpointPasses.so
usr/lib/llvm-@LLVM_VERSION@/lib/TestPlugin.so usr/lib/llvm-@LLVM_VERSION@/lib/TestPlugin.so
usr/lib/llvm-@LLVM_VERSION@/include/llvm/ usr/include/llvm-@LLVM_VERSION@/ usr/lib/llvm-@LLVM_VERSION@/include/llvm/ usr/include/llvm-@LLVM_VERSION@/

View File

@ -0,0 +1,46 @@
From 564f50e7536dab9dec5ed73f811b0b2d9d3aed14 Mon Sep 17 00:00:00 2001
From: Roman Lebedev <lebedev.ri@gmail.com>
Date: Wed, 26 Sep 2018 13:08:44 +0000
Subject: [PATCH] [analyzer] scan-build: if --status-bugs is passed, don't
forget about the exit status of the actual build
Summary:
This has been bothering me for a while, but only now i have actually looked into this.
I'm using one CI job for static analysis - clang static analyzers as compilers + clang-tidy via cmake.
And i'd like for the build to fail if at least one of those finds issues.
If clang-tidy finds issues, it will fail the build since the warnings-as-errors is set.
If static analyzer finds anything, since --status-bugs is set, it will fail the build.
But if clang-tidy find anything, but static analyzer does not, the build succeeds :/
Reviewers: sylvestre.ledru, alexfh, jroelofs, ygribov, george.karpenkov, krememek
Reviewed By: jroelofs
Subscribers: xazax.hun, szepet, a.sidorin, mikhail.ramalho, Szelethus, cfe-commits
Differential Revision: https://reviews.llvm.org/D52530
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@343105 91177308-0d34-0410-b5e6-96231b3b80d8
Index: llvm-toolchain-7-7/clang/tools/scan-build/bin/scan-build
===================================================================
--- llvm-toolchain-7-7.orig/clang/tools/scan-build/bin/scan-build
+++ llvm-toolchain-7-7/clang/tools/scan-build/bin/scan-build
@@ -1192,7 +1192,7 @@ OPTIONS:
By default, the exit status of scan-build is the same as the executed build
command. Specifying this option causes the exit status of scan-build to be 1
- if it found potential bugs and 0 otherwise.
+ if it found potential bugs and the exit status of the build itself otherwise.
--use-cc [compiler path]
--use-cc=[compiler path]
@@ -1878,7 +1878,7 @@ if (defined $Options{OutputFormat}) {
if ($Options{ExitStatusFoundBugs}) {
exit 1 if ($NumBugs > 0);
- exit 0;
+ exit $ExitStatus;
}
}
}

View File

@ -75,3 +75,4 @@ D51108-rust-powerpc.diff
disable-sse2-old-x86.diff disable-sse2-old-x86.diff
scan-build-clang-X.diff scan-build-clang-X.diff
0001-analyzer-scan-build-if-status-bugs-is-passed-don-t-f.patch

View File

@ -148,6 +148,10 @@ fi
clang-$VERSION -fuse-ld=lld -O2 foo.c main.c -o foo clang-$VERSION -fuse-ld=lld -O2 foo.c main.c -o foo
./foo > /dev/null ./foo > /dev/null
clang-$VERSION -fuse-ld=lld -flto -O2 foo.c main.c -o foo
./foo > /dev/null
exit 0
clang-$VERSION -fuse-ld=lld-$VERSION -O2 foo.c main.c -o foo clang-$VERSION -fuse-ld=lld-$VERSION -O2 foo.c main.c -o foo
./foo > /dev/null ./foo > /dev/null

16
debian/rules vendored
View File

@ -31,7 +31,7 @@ DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS) DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
LDFLAGS_EXTRA = LDFLAGS_EXTRA =
CXXFLAGS_EXTRA = -std=c++0x CXXFLAGS_EXTRA =
CONFIGURE_EXTRA = CONFIGURE_EXTRA =
CMAKE_EXTRA = CMAKE_EXTRA =
@ -188,12 +188,12 @@ OCAML_ENABLE= no
OCAML_ARCHS := amd64 arm64 armel armhf i386 ppc64el s390x OCAML_ARCHS := amd64 arm64 armel armhf i386 ppc64el s390x
ifneq (,$(filter $(DEB_HOST_ARCH),$(OCAML_ARCHS))) ifneq (,$(filter $(DEB_HOST_ARCH),$(OCAML_ARCHS)))
# Enable OCAML for this arch. # Enable OCAML for this arch.
# OCAML_ENABLE=yes OCAML_ENABLE=yes
# OCAML_STDLIB_DIR ?= $(shell ocamlc -where) OCAML_STDLIB_DIR ?= $(shell ocamlc -where)
# DH_OPTIONS=--with ocaml DH_OPTIONS=--with ocaml
endif endif
# Force the deactivation of ocaml until the transition is done # Force the deactivation of ocaml until the transition is done
OCAML_ENABLE=no #OCAML_ENABLE=no
LIBFUZZER_ENABLE=yes LIBFUZZER_ENABLE=yes
ifeq (,$(filter $(DEB_HOST_ARCH_OS),linux)) ifeq (,$(filter $(DEB_HOST_ARCH_OS),linux))
@ -290,9 +290,9 @@ override_dh_auto_configure: preconfigure
cov-configure --compiler clang --comptype clang; \ cov-configure --compiler clang --comptype clang; \
cov-configure --compiler gcc-$(GCC_VERSION) --comptype gcc; \ cov-configure --compiler gcc-$(GCC_VERSION) --comptype gcc; \
cov-configure --compiler g++-$(GCC_VERSION) --comptype gcc; \ cov-configure --compiler g++-$(GCC_VERSION) --comptype gcc; \
cov-configure -co /usr/bin/g++-$(GCC_VERSION) --comptype gcc -- -std=c++0x -fPIC -std=c++11; \ cov-configure -co /usr/bin/g++-$(GCC_VERSION) --comptype gcc -- -fPIC -std=c++11; \
cov-configure -co /usr/bin/gcc-$(GCC_VERSION) --comptype gcc -- -fPIC; \ cov-configure -co /usr/bin/gcc-$(GCC_VERSION) --comptype gcc -- -fPIC; \
cov-configure -co /usr/bin/g++-$(GCC_VERSION) --comptype gcc -- -std=c++0x -fPIC -std=c++11 -fno-exceptions; \ cov-configure -co /usr/bin/g++-$(GCC_VERSION) --comptype gcc -- -fPIC -std=c++11 -fno-exceptions; \
cov-configure -co /usr/bin/g++-$(GCC_VERSION) --comptype gcc --template \ cov-configure -co /usr/bin/g++-$(GCC_VERSION) --comptype gcc --template \
--xml-option append_arg:"--ppp_translator" \ --xml-option append_arg:"--ppp_translator" \
--xml-option append_arg:"replace/llvm::AlignOf<PrevTy>::Alignment/(llvm::AlignOf<PrevTy>::Alignment)" \ --xml-option append_arg:"replace/llvm::AlignOf<PrevTy>::Alignment/(llvm::AlignOf<PrevTy>::Alignment)" \
@ -456,6 +456,8 @@ override_dh_auto_install:
# Not used on Linux. # Not used on Linux.
rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/argdumper rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/argdumper
rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/share/clang/clang-format-bbedit.applescript rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/share/clang/clang-format-bbedit.applescript
# Remove bat files https://bugs.llvm.org/show_bug.cgi?id=30755
rm -f $(DEB_INST)/usr/share/clang/scan-build-$(LLVM_VERSION)/libexec/*.bat $(DEB_INST)/usr/share/clang/scan-build-$(LLVM_VERSION)/bin/*.bat
cp $(TARGET_BUILD)/bin/clang-query $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin cp $(TARGET_BUILD)/bin/clang-query $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin