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
* Fix a syntax issue in a scan-build patch
* Fix the autopkgtest script (no gcc in the test)
* Create a new llvm-lto-7-dev package to ship lto
This will avoid to download llvm-dev to get lld
* remove dep from lld to llvm-7-dev because 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

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@/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,
g++-multilib [amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel powerpc ppc64 s390 s390x sparc sparc64 x32],
libjs-mathjax,
doxygen, gfortran
# ocaml-nox [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],
# dh-ocaml [amd64 arm64 armel armhf i386 ppc64el s390x],
doxygen, gfortran,
ocaml-nox [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],
dh-ocaml [amd64 arm64 armel armhf i386 ppc64el s390x],
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/
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
@ -255,8 +255,6 @@ Description: Modular compiler and toolchain technologies
Package: llvm-7-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
@ -277,7 +275,6 @@ Package: llvm-7-dev
Architecture: any
Depends: ${shlibs:Depends}, libffi-dev (>= 3.0.9), ${misc:Depends},
llvm-7 (= ${binary:Version}), libllvm7 (= ${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
@ -294,16 +291,6 @@ Description: Modular compiler and toolchain technologies, libraries and headers
This package provides the libraries and headers to develop applications
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
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, python,
@ -323,28 +310,28 @@ Description: Modular compiler and toolchain technologies, tools
.
This package provides tools for testing.
# Package: libllvm-7-ocaml-dev
# Section: ocaml
# Architecture: amd64 arm64 armel armhf i386 ppc64el s390x
# Suggests: llvm-7-doc
# Depends: ${shlibs:Depends}, ${misc:Depends}, ${ocaml:Depends}, llvm-7-dev (= ${binary:Version})
# Replaces: libllvm-x.y-ocaml-dev
# Conflicts: libllvm-x.y-ocaml-dev
# Provides: ${ocaml:Provides}, libllvm-x.y-ocaml-dev
# 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: libllvm-7-ocaml-dev
Section: ocaml
Architecture: amd64 arm64 armel armhf i386 ppc64el s390x
Suggests: llvm-7-doc
Depends: ${shlibs:Depends}, ${misc:Depends}, ${ocaml:Depends}, llvm-7-dev (= ${binary:Version})
Replaces: libllvm-x.y-ocaml-dev
Conflicts: libllvm-x.y-ocaml-dev
Provides: ${ocaml:Provides}, libllvm-x.y-ocaml-dev
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-7-doc
Section: doc
@ -391,7 +378,7 @@ Description: Modular compiler and toolchain technologies, examples
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
# 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}
Description: LLVM-based linker
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-@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@/lib/TestPlugin.so
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
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
./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
./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)
LDFLAGS_EXTRA =
CXXFLAGS_EXTRA = -std=c++0x
CXXFLAGS_EXTRA =
CONFIGURE_EXTRA =
CMAKE_EXTRA =
@ -188,12 +188,12 @@ OCAML_ENABLE= no
OCAML_ARCHS := amd64 arm64 armel armhf i386 ppc64el s390x
ifneq (,$(filter $(DEB_HOST_ARCH),$(OCAML_ARCHS)))
# Enable OCAML for this arch.
# OCAML_ENABLE=yes
# OCAML_STDLIB_DIR ?= $(shell ocamlc -where)
# DH_OPTIONS=--with ocaml
OCAML_ENABLE=yes
OCAML_STDLIB_DIR ?= $(shell ocamlc -where)
DH_OPTIONS=--with ocaml
endif
# Force the deactivation of ocaml until the transition is done
OCAML_ENABLE=no
#OCAML_ENABLE=no
LIBFUZZER_ENABLE=yes
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 gcc-$(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/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 \
--xml-option append_arg:"--ppp_translator" \
--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.
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
# 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