From 66873fb5cfd52e8bb3de6cfd5a16cc3f98fbca07 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 4 Jan 2016 12:42:52 +0000 Subject: [PATCH 01/93] testing Andrew's work --- debian/changelog | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/debian/changelog b/debian/changelog index c52436de..e0aeaead 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,21 @@ +llvm-toolchain-snapshot (1:3.8~svn256749-1~exp1) experimental; urgency=medium + + * New snapshot release + + -- Sylvestre Ledru Mon, 04 Jan 2016 13:39:43 +0100 + +llvm-toolchain-snapshot (1:3.8~svn256631-1~exp1) experimental; urgency=medium + + * New snapshot release + + -- Sylvestre Ledru Wed, 30 Dec 2015 10:29:28 +0100 + +llvm-toolchain-snapshot (1:3.8~svn256489-1~exp1) experimental; urgency=medium + + * New snapshot release + + -- Sylvestre Ledru Mon, 28 Dec 2015 09:31:25 +0100 + llvm-toolchain-snapshot (1:3.8~svn255217-1~exp1) experimental; urgency=medium * New snapshot release From ff27c6a81a5615483175f9dfd4db96cda083cb26 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 4 Jan 2016 12:44:07 +0000 Subject: [PATCH 02/93] prepare the changelog --- debian/changelog | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/debian/changelog b/debian/changelog index e0aeaead..ed1de96f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,18 +1,7 @@ -llvm-toolchain-snapshot (1:3.8~svn256749-1~exp1) experimental; urgency=medium - - * New snapshot release - - -- Sylvestre Ledru Mon, 04 Jan 2016 13:39:43 +0100 - -llvm-toolchain-snapshot (1:3.8~svn256631-1~exp1) experimental; urgency=medium - - * New snapshot release - - -- Sylvestre Ledru Wed, 30 Dec 2015 10:29:28 +0100 - llvm-toolchain-snapshot (1:3.8~svn256489-1~exp1) experimental; urgency=medium * New snapshot release + * Cmake migration. Done by Andrew Wilkins. Many thanks to him -- Sylvestre Ledru Mon, 28 Dec 2015 09:31:25 +0100 @@ -31,10 +20,10 @@ llvm-toolchain-snapshot (1:3.8~svn254193-2) UNRELEASED; urgency=medium setting the lldb archs in debian/control in just one place would be appreciated. * quoting fixes in debian/rules, when make macros - are empty + are empty Thanks to Doko for the two previous changes (Closes: #806729) - -- Sylvestre Ledru Mon, 30 Nov 2015 15:34:12 +0100 + -- Sylvestre Ledru Mon, 30 Nov 2015 15:34:12 +0100 llvm-toolchain-snapshot (1:3.8~svn254193-1) unstable; urgency=medium From a78bc09a9ed004cac244647fb068ae32a20534ba Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 4 Jan 2016 12:44:24 +0000 Subject: [PATCH 03/93] Update patches to set SONAME in CMake build --- debian/changelog | 1 + debian/patches/0044-soname.diff | 29 ++++++++++++++++---- debian/patches/lldb-soname.diff | 47 ++++++++++++++++++++++++++++----- 3 files changed, 66 insertions(+), 11 deletions(-) diff --git a/debian/changelog b/debian/changelog index ed1de96f..ce50fc96 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,7 @@ llvm-toolchain-snapshot (1:3.8~svn256489-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 -- Sylvestre Ledru Mon, 28 Dec 2015 09:31:25 +0100 diff --git a/debian/patches/0044-soname.diff b/debian/patches/0044-soname.diff index e478bc77..92d944a4 100644 --- a/debian/patches/0044-soname.diff +++ b/debian/patches/0044-soname.diff @@ -1,8 +1,6 @@ -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 -@@ -67,7 +67,7 @@ endif +--- 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. @@ -11,3 +9,24 @@ Index: llvm-toolchain-snapshot_3.7~svn241915/tools/llvm-shlib/Makefile 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/lldb-soname.diff b/debian/patches/lldb-soname.diff index d47e485c..f702e06f 100644 --- a/debian/patches/lldb-soname.diff +++ b/debian/patches/lldb-soname.diff @@ -1,8 +1,6 @@ -Index: llvm-toolchain-snapshot_3.8~svn253186/lldb/lib/Makefile -=================================================================== ---- llvm-toolchain-snapshot_3.8~svn253186.orig/lldb/lib/Makefile -+++ llvm-toolchain-snapshot_3.8~svn253186/lldb/lib/Makefile -@@ -16,6 +16,7 @@ LIBRARYNAME = lldb +--- a/lldb/lib/Makefile ++++ b/lldb/lib/Makefile +@@ -16,6 +16,7 @@ NO_BUILD_ARCHIVE = 1 LINK_LIBS_IN_SHARED = 1 SHARED_LIBRARY = 1 @@ -10,7 +8,7 @@ Index: llvm-toolchain-snapshot_3.8~svn253186/lldb/lib/Makefile ifeq (,$(findstring -DLLDB_DISABLE_PYTHON,$(CXXFLAGS))) PYTHON_CONFIG?= python-config -@@ -191,7 +192,7 @@ ifeq ($(HOST_OS), $(filter $(HOST_OS), L +@@ -191,7 +192,7 @@ LLVMLibsOptions += -Wl,--no-undefined # Link in python LLVMLibsOptions += $(PYTHON_BUILD_FLAGS) -lrt -ledit -lncurses -lpanel -lpthread @@ -19,3 +17,40 @@ Index: llvm-toolchain-snapshot_3.8~svn253186/lldb/lib/Makefile ifneq (,$(filter $(shell dpkg-architecture -qDEB_HOST_ARCH), mips mipsel powerpc powerpcspe)) # Link GCC atomic helper library LLVMLibsOptions += -latomic +--- a/lldb/source/API/CMakeLists.txt ++++ b/lldb/source/API/CMakeLists.txt +@@ -6,7 +6,12 @@ + # for liblldb to link against + include(${LLDB_PROJECT_ROOT}/cmake/LLDBDependencies.cmake) + +-add_lldb_library(liblldb SHARED ++set(output_name lldb) ++if (CMAKE_SYSTEM_NAME MATCHES "Windows") ++ set(output_name liblldb) ++endif() ++ ++add_lldb_library(liblldb SHARED OUTPUT_NAME ${output_name} SONAME + SBAddress.cpp + SBAttachInfo.cpp + SBBlock.cpp +@@ -78,7 +83,7 @@ + + set_target_properties(liblldb + PROPERTIES +- VERSION ${LLDB_VERSION} ++ VERSION 1 + ) + + if (NOT CMAKE_SYSTEM_NAME MATCHES "Windows") +@@ -105,11 +110,6 @@ + if (MSVC AND NOT LLDB_DISABLE_PYTHON) + target_link_libraries(liblldb PRIVATE ${PYTHON_LIBRARY}) + endif() +-else() +- set_target_properties(liblldb +- PROPERTIES +- OUTPUT_NAME lldb +- ) + endif() + + if (LLDB_WRAP_PYTHON) From 0ba0844df3a8ec1c90f362e5881165d4d46d64e4 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 4 Jan 2016 12:45:01 +0000 Subject: [PATCH 04/93] - 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. --- debian/changelog | 7 +++++++ debian/clang-X.Y.install.in | 7 ------- debian/clang-X.Y.lintian-overrides.in | 2 -- debian/clang-X.Y.manpages.in | 2 -- debian/control | 20 -------------------- debian/libclang-X.Y-dev.install.in | 1 - debian/libclang-X.Y-dev.links.in | 1 + debian/libclang1-X.Y.install.in | 1 - debian/libclang1-X.Y.links.in | 1 + debian/liblldb-X.Y.install.in | 1 - debian/liblldb-X.Y.links.in | 3 +-- debian/libllvmX.Y.links.in | 1 + debian/llvm-X.Y-dev.install.in | 6 ------ debian/llvm-X.Y-doc.install.in | 6 +++--- debian/llvm-X.Y-runtime.install.in | 2 -- debian/llvm-X.Y.lintian-overrides.in | 1 - debian/llvm-X.Y.manpages.in | 1 - 17 files changed, 14 insertions(+), 49 deletions(-) diff --git a/debian/changelog b/debian/changelog index ce50fc96..5b086226 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,6 +3,13 @@ llvm-toolchain-snapshot (1:3.8~svn256489-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. -- Sylvestre Ledru Mon, 28 Dec 2015 09:31:25 +0100 diff --git a/debian/clang-X.Y.install.in b/debian/clang-X.Y.install.in index 510a9def..81055b24 100644 --- a/debian/clang-X.Y.install.in +++ b/debian/clang-X.Y.install.in @@ -1,15 +1,11 @@ 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-tblgen -usr/lib/llvm-@LLVM_VERSION@/bin/c-index-test usr/lib/llvm-@LLVM_VERSION@/bin/clang-apply-replacements -usr/lib/llvm-@LLVM_VERSION@/bin/pp-trace usr/lib/llvm-@LLVM_VERSION@/bin/clang-query usr/lib/llvm-@LLVM_VERSION@/bin/clang-rename usr/lib/llvm-@LLVM_VERSION@/bin/sancov -usr/bin/c-index-test* 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/ @@ -17,10 +13,7 @@ tools/clang/tools/scan-view-@LLVM_VERSION@ usr/share/clang/ usr/bin/clang-@LLVM_VERSION@ usr/bin/clang++-@LLVM_VERSION@ usr/bin/clang-check-@LLVM_VERSION@ -usr/bin/clang-tblgen-@LLVM_VERSION@ -usr/bin/c-index-test-@LLVM_VERSION@ usr/bin/clang-apply-replacements-@LLVM_VERSION@ -usr/bin/pp-trace-@LLVM_VERSION@ usr/bin/clang-query-@LLVM_VERSION@ usr/bin/clang-rename-@LLVM_VERSION@ usr/bin/sancov-@LLVM_VERSION@ diff --git a/debian/clang-X.Y.lintian-overrides.in b/debian/clang-X.Y.lintian-overrides.in index 46514394..f51804d3 100644 --- a/debian/clang-X.Y.lintian-overrides.in +++ b/debian/clang-X.Y.lintian-overrides.in @@ -1,10 +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/clang-tblgen.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/pp-trace-@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 index eefde3c3..2801e790 100644 --- a/debian/clang-X.Y.manpages.in +++ b/debian/clang-X.Y.manpages.in @@ -1,7 +1,5 @@ #build-llvm/tools/clang/docs/tools/clang-@LLVM_VERSION@.1 clang/tools/scan-build/man/scan-build-@LLVM_VERSION@.1 debian/man/clang-check-@LLVM_VERSION@.1 -debian/man/clang-tblgen-@LLVM_VERSION@.1 debian/man/scan-view-@LLVM_VERSION@.1 debian/man/clang-apply-replacements-@LLVM_VERSION@.1 -debian/man/pp-trace-@LLVM_VERSION@.1 diff --git a/debian/control b/debian/control index b7c742b8..56508ded 100644 --- a/debian/control +++ b/debian/control @@ -281,26 +281,6 @@ Description: Modular compiler and toolchain technologies, libraries and headers 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 diff --git a/debian/libclang-X.Y-dev.install.in b/debian/libclang-X.Y-dev.install.in index cb9a6deb..2b4548fc 100644 --- a/debian/libclang-X.Y-dev.install.in +++ b/debian/libclang-X.Y-dev.install.in @@ -1,7 +1,6 @@ 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-@LLVM_VERSION@.so build-llvm/tools/clang/runtime/compiler-rt/clang_linux/ usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@/lib/ diff --git a/debian/libclang-X.Y-dev.links.in b/debian/libclang-X.Y-dev.links.in index 5edcb499..6f99d5bf 100644 --- a/debian/libclang-X.Y-dev.links.in +++ b/debian/libclang-X.Y-dev.links.in @@ -1,2 +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/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/libclang1-X.Y.links.in b/debian/libclang1-X.Y.links.in index 1eee7d44..3ea44c8d 100644 --- a/debian/libclang1-X.Y.links.in +++ b/debian/libclang1-X.Y.links.in @@ -1,2 +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/liblldb-X.Y.install.in b/debian/liblldb-X.Y.install.in index e1818b34..8545597e 100644 --- a/debian/liblldb-X.Y.install.in +++ b/debian/liblldb-X.Y.install.in @@ -1,3 +1,2 @@ -usr/lib/llvm-@LLVM_VERSION@/lib/liblldb.so.1 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 index a046fc49..bea86baa 100644 --- a/debian/liblldb-X.Y.links.in +++ b/debian/liblldb-X.Y.links.in @@ -1,5 +1,4 @@ -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/@DEB_HOST_MULTIARCH@/liblldb-@LLVM_VERSION@.so.1 +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 usr/lib/python2.7/dist-packages/lldb-@LLVM_VERSION@/_lldb.so usr/lib/@DEB_HOST_MULTIARCH@/liblldb-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/liblldb.so.1 diff --git a/debian/libllvmX.Y.links.in b/debian/libllvmX.Y.links.in index 4faec3f9..067b0884 100644 --- a/debian/libllvmX.Y.links.in +++ b/debian/libllvmX.Y.links.in @@ -1,3 +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/llvm-X.Y-dev.install.in b/debian/llvm-X.Y-dev.install.in index 59f2b649..813b6f2f 100644 --- a/debian/llvm-X.Y-dev.install.in +++ b/debian/llvm-X.Y-dev.install.in @@ -8,12 +8,6 @@ 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 usr/share/llvm-@LLVM_VERSION@/cmake/ -build-llvm/Makefile.common /usr/lib/llvm-@LLVM_VERSION@/build/ -build-llvm/Makefile.config /usr/lib/llvm-@LLVM_VERSION@/build/ -build-llvm/config.status /usr/lib/llvm-@LLVM_VERSION@/build/ -Makefile.rules /usr/lib/llvm-@LLVM_VERSION@/build/ -configure /usr/lib/llvm-@LLVM_VERSION@/build/ -autoconf/ /usr/lib/llvm-@LLVM_VERSION@/build/ utils/vim/indent/llvm-@LLVM_VERSION@.vim usr/share/vim/addons/indent/ diff --git a/debian/llvm-X.Y-doc.install.in b/debian/llvm-X.Y-doc.install.in index 60ae20bd..6ac115a5 100644 --- a/debian/llvm-X.Y-doc.install.in +++ b/debian/llvm-X.Y-doc.install.in @@ -1,6 +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/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/Dummy.html #usr/lib/llvm-@LLVM_VERSION@/docs/llvm/html/doxygen.css -usr/lib/llvm-@LLVM_VERSION@/docs/llvm/html/LibASTMatchersReference.html +#usr/lib/llvm-@LLVM_VERSION@/docs/llvm/html/LibASTMatchersReference.html diff --git a/debian/llvm-X.Y-runtime.install.in b/debian/llvm-X.Y-runtime.install.in index d8e16a7c..2fe0d36a 100644 --- a/debian/llvm-X.Y-runtime.install.in +++ b/debian/llvm-X.Y-runtime.install.in @@ -1,8 +1,6 @@ usr/lib/llvm-@LLVM_VERSION@/bin/lli -usr/lib/llvm-@LLVM_VERSION@/bin/lli-child-target usr/bin/lli-@LLVM_VERSION@ -usr/bin/lli-child-target-@LLVM_VERSION@ debian/llvm-@LLVM_VERSION@-runtime.binfmt usr/share/binfmts/ diff --git a/debian/llvm-X.Y.lintian-overrides.in b/debian/llvm-X.Y.lintian-overrides.in index d59be5db..89080d30 100644 --- a/debian/llvm-X.Y.lintian-overrides.in +++ b/debian/llvm-X.Y.lintian-overrides.in @@ -5,5 +5,4 @@ llvm-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/llvm-mc 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-tblgen-@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 index 8923996c..0599d728 100644 --- a/debian/llvm-X.Y.manpages.in +++ b/debian/llvm-X.Y.manpages.in @@ -5,6 +5,5 @@ 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-tblgen-@LLVM_VERSION@.1 debian/man/llvm-ranlib-@LLVM_VERSION@.1 From 08f5bc97673ff5dc4cd87edd28be6793f82c9c4d Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 4 Jan 2016 12:46:28 +0000 Subject: [PATCH 05/93] Update control/rules to support CMake --- debian/changelog | 1 + debian/control | 3 +- debian/rules | 124 +++++++++++++++++++++++++++++++++++++++++++---- 3 files changed, 116 insertions(+), 12 deletions(-) diff --git a/debian/changelog b/debian/changelog index 5b086226..43a7ec47 100644 --- a/debian/changelog +++ b/debian/changelog @@ -10,6 +10,7 @@ llvm-toolchain-snapshot (1:3.8~svn256489-1~exp1) experimental; urgency=medium - 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 -- Sylvestre Ledru Mon, 28 Dec 2015 09:31:25 +0100 diff --git a/debian/control b/debian/control index 56508ded..1c881d48 100644 --- a/debian/control +++ b/debian/control @@ -4,8 +4,7 @@ Priority: optional Maintainer: LLVM Packaging Team Uploaders: Sylvestre Ledru Build-Depends: debhelper (>= 9.0), flex, bison, dejagnu, tcl, expect, - autoconf, automake, perl, libtool, chrpath, texinfo, - sharutils, autotools-dev (>= 20060702.1), libffi-dev (>= 3.0.9), + cmake, perl, libtool, chrpath, texinfo, sharutils, libffi-dev (>= 3.0.9), lsb-release, patchutils, diffstat, xz-utils, python-dev, libedit-dev, swig, python-sphinx, ocaml-nox, binutils-dev, libjsoncpp-dev, diff --git a/debian/rules b/debian/rules index cc512e8b..125c87e1 100755 --- a/debian/rules +++ b/debian/rules @@ -17,8 +17,10 @@ endif VENDOR=$(shell lsb_release -is) -AUTOCONF_BUILD=yes +AUTOCONF_BUILD=no +ifeq (${AUTOCONF_BUILD},yes) BUILD_DIR=Release +endif DEB_HOST_MULTIARCH = $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) DEB_HOST_GNU_TYPE = $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) @@ -30,6 +32,7 @@ OCAML_STDLIB_DIR ?= $(shell ocamlc -where) LDFLAGS_EXTRA = CXXFLAGS_EXTRA = -std=c++0x CONFIGURE_EXTRA = +CMAKE_EXTRA = ifneq (,$(filter $(DEB_HOST_ARCH),powerpc powerpcspe)) LDFLAGS_EXTRA += -latomic @@ -97,6 +100,7 @@ ifneq (,$(filter scan-build,$(DEB_BUILD_OPTIONS))) # no need to run tests in this case DEB_BUILD_OPTIONS+=" nocheck" CONFIGURE_EXTRA += --enable-assertions + CMAKE_EXTRA += -DLLVM_ENABLE_ASSERTIONS=ON endif ifneq (,$(filter coverity,$(DEB_BUILD_OPTIONS))) @@ -109,6 +113,7 @@ ifneq (,$(filter coverity,$(DEB_BUILD_OPTIONS))) PRE_PROCESS_CONF= COVERITY_ENABLE=1 CONFIGURE_EXTRA += --enable-assertions + CMAKE_EXTRA += -DLLVM_ENABLE_ASSERTIONS=ON # no need to run tests in this case DEB_BUILD_OPTIONS+=" nocheck" else @@ -196,8 +201,12 @@ override_dh_auto_configure: preconfigure fi) # Due to bug upstream, no symlink here + rm -fr tools/clang/tools/extra cp -R -H clang-tools-extra tools/clang/tools/extra + # TODO(axw) specify build type for CMake + # TODO(axw) pass compiler flags, etc. + if test $(AUTOCONF_BUILD) = yes; then \ cd $(TARGET_BUILD); \ $(PRE_PROCESS_CONF) \ @@ -223,22 +232,30 @@ override_dh_auto_configure: preconfigure cd $(TARGET_BUILD) && \ cmake ../ \ -DCMAKE_INSTALL_PREFIX=/usr/lib/llvm-$(LLVM_VERSION) \ - -DCMAKE_VERBOSE_MAKEFILE=ON -DBUILD_SHARED_LIBS=on; \ + -DCMAKE_VERBOSE_MAKEFILE=ON \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_CXX_FLAGS=$(CXXFLAGS_EXTRA) \ + -DLLVM_LINK_LLVM_DYLIB=ON \ + -DLLVM_VERSION_SUFFIX= \ + -DLLVM_ENABLE_SPHINX=ON \ + -DLLVM_ENABLE_RTTI=ON \ + -DLLVM_ENABLE_FFI=ON \ + $(CMAKE_EXTRA) \ + -DLIBCLANG_LIBRARY_VERSION=$(SONAME_EXT); \ fi -# cd $(TARGET_BUILD) && cmake ../ -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_VERBOSE_MAKEFILE=ON -# mkdir build-compiler-rt && cd build-compiler-rt && cmake ../compiler-rt -# --with-ocaml-libdir=/usr/lib/ocaml/llvm-$(LLVM_VERSION) \ 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 +ifeq (${AUTOCONF_BUILD},yes) # We run the build with the Asserts, new directory, make a symlink to make # sure the rest still work cd $(TARGET_BUILD) \ if test -d Release+Asserts -a ! -e Release; then \ ln -s Release+Asserts Release; \ fi +endif override_dh_prep: build_doc @@ -265,7 +282,7 @@ build_doc: help2man --version-string=$(LLVM_VERSION) clang/tools/scan-view/bin/scan-view > debian/man/scan-view-$(LLVM_VERSION).1 help2man --version-string=$(LLVM_VERSION) clang/tools/clang-format/clang-format-diff.py > debian/man/clang-format-diff-$(LLVM_VERSION).1 - CMDS="llvm-dwarfdump llvm-mc llvm-mcmarkup llvm-objdump llvm-rtdyld llvm-size llvm-tblgen llvm-ranlib lldb clang-format clang clang-tblgen clang-check clang-tidy clang-apply-replacements pp-trace sancov"; \ + CMDS="llvm-dwarfdump llvm-mc llvm-mcmarkup llvm-objdump llvm-rtdyld llvm-size llvm-ranlib lldb clang-format clang clang-tblgen clang-check clang-tidy clang-apply-replacements pp-trace sancov"; \ for f in $$CMDS; do \ echo "Generating manpage of $$f"; \ LD_LIBRARY_PATH=$(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/:/usr/lib/*/libfakeroot help2man --no-discard-stderr --version-string=$(LLVM_VERSION) $(TARGET_BUILD)/$(BUILD_DIR)/bin/$$f > debian/man/$$f-$(LLVM_VERSION).1; \ @@ -274,14 +291,20 @@ build_doc: override_dh_auto_install: $(MAKE) -C $(TARGET_BUILD) VERBOSE=1 install DESTDIR=$(DEB_INST)/ - chrpath -d $(TARGET_BUILD)/$(BUILD_DIR)/bin/clang + # 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 + +ifneq (${AUTOCONF_BUILD},yes) + cp $(TARGET_BUILD)/bin/clang-query $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin +endif + # Only run on executable, not script chrpath -d `find $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/ -type f -executable -exec file -i '{}' \; | grep 'x-executable; charset=binary'|cut -d: -f1` # Add the trailing soname - mv $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libLLVM-$(LLVM_VERSION).so $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libLLVM-$(LLVM_VERSION).so.$(SONAME_EXT) - +ifeq (${AUTOCONF_BUILD},yes) cd debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/ && \ mv libclang.so libclang-$(LLVM_VERSION).so.$(SONAME_EXT) && \ ln -s libclang-$(LLVM_VERSION).so.$(SONAME_EXT) libclang.so.$(SONAME_EXT); \ @@ -291,6 +314,7 @@ override_dh_auto_install: ln -s liblldb-$(LLVM_VERSION).so.$(SONAME_EXT) liblldb.so.$(SONAME_EXT); \ fi; \ rm -f libLLVM-$(LLVM_VERSION_FULL).so +endif # Remove artefact (where compiler-rt is built) if test -d $(TARGET_BUILD)/tools/clang/runtime/compiler-rt/clang_linux; then \ @@ -311,6 +335,61 @@ override_dh_auto_install: # idem for the lldb python binding mkdir -p $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/python2.7/site-packages/lldb/ +# Copy things that are installed by CMake but not autoconf, +# and remove things that are installed by autoconf but are +# not intended for distribution. +ifeq (${AUTOCONF_BUILD},yes) + cp clang/tools/clang-format/git-clang-format $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin + cp clang/tools/clang-format/clang-format-diff.py $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/share/clang + cp clang/tools/clang-format/clang-format.py $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/share/clang + cp clang/tools/clang-format/clang-format.el $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/share/clang + cp clang/tools/clang-format/clang-format-sublime.py $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/share/clang + mv $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libLLVM-$(LLVM_VERSION).so $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libLLVM-$(LLVM_VERSION).so.1 +endif + +# Remove things that CMake or autoconf install but which aren't packaged yet, +# or are packaged from the source or build tree. +ifneq (${AUTOCONF_BUILD},yes) + mv $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/clang-$(LLVM_VERSION) \ + $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/clang +endif + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/clang-cl + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/scan-build + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/scan-view + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/c-index-test + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/clang-tblgen + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/pp-trace + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/count + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/not + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/FileCheck + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/Reporter.py + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/ScanView.py + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/startfile.py + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/lli-child-target + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/lldb-argdumper + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/lldb-$(LLVM_VERSION_FULL) + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/lldb-mi-$(LLVM_VERSION_FULL) + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/lldb-server-$(LLVM_VERSION_FULL) + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/modularize + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/libexec/c++-analyzer + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/libexec/ccc-analyzer + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libclang*.so + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libLLVM*.so + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/liblldb*.so + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libclang.so.1 + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/liblldb.so.1 + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libPolly.a + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libPollyISL.a + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/clang/$(LLVM_VERSION_FULL)/*.txt + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/python2.7/site-packages/six.py + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/share/man/man1/scan-build.1 + rm -fr $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/share/clang/cmake/ + rm -fr $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/share/scan-view/ + rm -fr $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/docs/llvm/html/ + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/docs/llvm/html.tar.gz + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/share/scan-build/scanview.css + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/share/scan-build/sorttable.js + # Rename binaries mkdir -p $(DEB_INST)/usr/bin/ cd $(DEB_INST)/usr/bin/; rm -f *; \ @@ -402,8 +481,33 @@ override_dh_installdeb: ifeq (,$(filter nocheck, $(DEB_BUILD_OPTIONS))) # List of the archs we know we have 100 % tests working ARCH_LLVM_TEST_OK := amd64 i386 + override_dh_auto_test: +ifneq (${AUTOCONF_BUILD},yes) + +# LLVM tests (CMake) +ifneq (,$(findstring $(DEB_HOST_ARCH),$(ARCH_LLVM_TEST_OK))) + $(MAKE) $(NJOBS) -C $(TARGET_BUILD) check-llvm +else + $(MAKE) $(NJOBS) -C $(TARGET_BUILD) check-llvm || true +endif + +# Clang tests (CMake) + $(MAKE) $(NJOBS) -C $(TARGET_BUILD) check-clang || true + +# LLDB tests (CMake) +ifeq (,$(filter $(DEB_HOST_ARCH), $(LLDB_DISABLE_ARCHS) armhf armel)) + $(MAKE) $(NJOBS) -C $(TARGET_BUILD) check-lldb || true +endif + +# Polly tests (CMake) +ifeq (${POLLY_ENABLE},yes) + $(MAKE) $(NJOBS) -C $(TARGET_BUILD) check-polly || true +endif + +else # Autoconf build + # LLVM tests ifneq (,$(findstring $(DEB_HOST_ARCH),$(ARCH_LLVM_TEST_OK))) # Fail the build if the test fails @@ -458,7 +562,7 @@ endif lcov --remove $$REPORT "/usr*" -o $$REPORT; \ genhtml -o reports/coverage --show-details --highlight --legend $$REPORT; \ fi -else +endif override_dh_auto_test: endif From a996cf364724f039f11292fa5b5e768a6d6112b6 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 4 Jan 2016 12:47:12 +0000 Subject: [PATCH 06/93] Patch LLDB SWIG interfaces to workaround a bug in SWIG See https://llvm.org/bugs/show_bug.cgi?id=25468 --- debian/changelog | 2 ++ .../llvm25468-lldb-swig-format-security.diff | 14 ++++++++++++++ debian/patches/series | 1 + 3 files changed, 17 insertions(+) create mode 100644 debian/patches/llvm25468-lldb-swig-format-security.diff diff --git a/debian/changelog b/debian/changelog index 43a7ec47..4de522d8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -11,6 +11,8 @@ llvm-toolchain-snapshot (1:3.8~svn256489-1~exp1) experimental; urgency=medium - 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 -- Sylvestre Ledru Mon, 28 Dec 2015 09:31:25 +0100 diff --git a/debian/patches/llvm25468-lldb-swig-format-security.diff b/debian/patches/llvm25468-lldb-swig-format-security.diff new file mode 100644 index 00000000..5d046858 --- /dev/null +++ b/debian/patches/llvm25468-lldb-swig-format-security.diff @@ -0,0 +1,14 @@ +--- 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 2bf97a5b..d4363939 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -39,3 +39,4 @@ compiler-rt-i586.diff clang-analyzer-force-version.diff fix-cmake-config-prefix.diff lldb-test-makefile.diff +llvm25468-lldb-swig-format-security.diff From 5cba9bcc9462c80d665b1d2c6fc6f8ac029877b7 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 4 Jan 2016 12:47:36 +0000 Subject: [PATCH 07/93] add missing files to clang-format --- debian/changelog | 1 + debian/clang-format-X.Y.install.in | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 4de522d8..d035ff01 100644 --- a/debian/changelog +++ b/debian/changelog @@ -13,6 +13,7 @@ llvm-toolchain-snapshot (1:3.8~svn256489-1~exp1) experimental; urgency=medium - 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 -- Sylvestre Ledru Mon, 28 Dec 2015 09:31:25 +0100 diff --git a/debian/clang-format-X.Y.install.in b/debian/clang-format-X.Y.install.in index 8e968405..d3a18a58 100644 --- a/debian/clang-format-X.Y.install.in +++ b/debian/clang-format-X.Y.install.in @@ -1,5 +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/ -clang/tools/clang-format/clang-format.el usr/share/emacs/site-lisp/clang-format-@LLVM_VERSION@/ 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@/ From e3c1b1391d524829918d12f629036e8674668332 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 4 Jan 2016 12:48:33 +0000 Subject: [PATCH 08/93] Add patch to fix sanitizer lit invocation --- debian/changelog | 1 + debian/patches/llvm26003-sanitizer-check-env.diff | 11 +++++++++++ debian/patches/series | 1 + 3 files changed, 13 insertions(+) create mode 100644 debian/patches/llvm26003-sanitizer-check-env.diff diff --git a/debian/changelog b/debian/changelog index d035ff01..01865616 100644 --- a/debian/changelog +++ b/debian/changelog @@ -14,6 +14,7 @@ llvm-toolchain-snapshot (1:3.8~svn256489-1~exp1) experimental; urgency=medium - 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 -- Sylvestre Ledru Mon, 28 Dec 2015 09:31:25 +0100 diff --git a/debian/patches/llvm26003-sanitizer-check-env.diff b/debian/patches/llvm26003-sanitizer-check-env.diff new file mode 100644 index 00000000..9a121e3f --- /dev/null +++ b/debian/patches/llvm26003-sanitizer-check-env.diff @@ -0,0 +1,11 @@ +--- a/compiler-rt/cmake/Modules/SanitizerUtils.cmake ++++ b/compiler-rt/cmake/Modules/SanitizerUtils.cmake +@@ -86,7 +86,7 @@ + # Add target to check code style for sanitizer runtimes. + if(UNIX) + add_custom_target(SanitizerLintCheck +- COMMAND LLVM_CHECKOUT=${LLVM_MAIN_SRC_DIR} SILENT=1 TMPDIR= ++ COMMAND env LLVM_CHECKOUT=${LLVM_MAIN_SRC_DIR} SILENT=1 TMPDIR= + PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE} + COMPILER_RT=${COMPILER_RT_SOURCE_DIR} + ${SANITIZER_LINT_SCRIPT} diff --git a/debian/patches/series b/debian/patches/series index d4363939..c2027e6f 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -40,3 +40,4 @@ clang-analyzer-force-version.diff fix-cmake-config-prefix.diff lldb-test-makefile.diff llvm25468-lldb-swig-format-security.diff +llvm26003-sanitizer-check-env.diff From 763531d41e3a3895775f5fe2f55ba3ad3e50eeb6 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 4 Jan 2016 12:51:36 +0000 Subject: [PATCH 09/93] more info in the changelog --- debian/changelog | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/debian/changelog b/debian/changelog index 01865616..07434591 100644 --- a/debian/changelog +++ b/debian/changelog @@ -15,6 +15,11 @@ llvm-toolchain-snapshot (1:3.8~svn256489-1~exp1) experimental; urgency=medium 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 Mon, 28 Dec 2015 09:31:25 +0100 From 20af508abfe8519cf6ae12d0dbfdb88a7ad5325a Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Wed, 20 Jan 2016 15:03:12 +0000 Subject: [PATCH 10/93] rebase of the patch --- debian/patches/fix-llvm-config-obj-src-root.patch | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/debian/patches/fix-llvm-config-obj-src-root.patch b/debian/patches/fix-llvm-config-obj-src-root.patch index d63e38ea..b9c4ee8f 100644 --- a/debian/patches/fix-llvm-config-obj-src-root.patch +++ b/debian/patches/fix-llvm-config-obj-src-root.patch @@ -1,8 +1,8 @@ -Index: llvm-toolchain-snapshot_3.8~svn253020/tools/llvm-config/llvm-config.cpp +Index: llvm-toolchain-snapshot_3.8~svn257050/tools/llvm-config/llvm-config.cpp =================================================================== ---- llvm-toolchain-snapshot_3.8~svn253020.orig/tools/llvm-config/llvm-config.cpp -+++ llvm-toolchain-snapshot_3.8~svn253020/tools/llvm-config/llvm-config.cpp -@@ -498,9 +498,9 @@ int main(int argc, char **argv) { +--- llvm-toolchain-snapshot_3.8~svn257050.orig/tools/llvm-config/llvm-config.cpp ++++ llvm-toolchain-snapshot_3.8~svn257050/tools/llvm-config/llvm-config.cpp +@@ -531,9 +531,9 @@ int main(int argc, char **argv) { } else if (Arg == "--shared-mode") { PrintSharedMode = true; } else if (Arg == "--obj-root") { @@ -11,6 +11,6 @@ Index: llvm-toolchain-snapshot_3.8~svn253020/tools/llvm-config/llvm-config.cpp } else if (Arg == "--src-root") { - OS << LLVM_SRC_ROOT << '\n'; + OS << ActivePrefix << "/build/" << '\n'; - } else { - usage(); - } + } else if (Arg == "--link-shared") { + LinkMode = LinkModeDyLib; + } else if (Arg == "--link-static") { From bb0a70c4537f31c9c0e7928d38f66d8650acc20d Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Wed, 20 Jan 2016 17:35:53 +0000 Subject: [PATCH 11/93] prepare the 3.8 build --- debian/changelog | 4 +- debian/control | 2 +- .../fix-llvm-config-obj-src-root.patch | 14 +- debian/patches/series | 1 - debian/patches/silent-MCJIIT-tests.diff | 204 +++++++----------- debian/patches/strip-svn.diff | 43 ---- 6 files changed, 92 insertions(+), 176 deletions(-) diff --git a/debian/changelog b/debian/changelog index 07434591..5442e2f1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -llvm-toolchain-snapshot (1:3.8~svn256489-1~exp1) experimental; urgency=medium +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 @@ -21,7 +21,7 @@ llvm-toolchain-snapshot (1:3.8~svn256489-1~exp1) experimental; urgency=medium - removed autotools-specific artifacts (configure, Makefile, etc.) - removed dummy documentation files - -- Sylvestre Ledru Mon, 28 Dec 2015 09:31:25 +0100 + -- Sylvestre Ledru Wed, 20 Jan 2016 16:09:01 +0100 llvm-toolchain-snapshot (1:3.8~svn255217-1~exp1) experimental; urgency=medium diff --git a/debian/control b/debian/control index 1c881d48..9fbfe5e6 100644 --- a/debian/control +++ b/debian/control @@ -1,4 +1,4 @@ -Source: llvm-toolchain-snapshot +Source: llvm-toolchain-3.8 Section: devel Priority: optional Maintainer: LLVM Packaging Team diff --git a/debian/patches/fix-llvm-config-obj-src-root.patch b/debian/patches/fix-llvm-config-obj-src-root.patch index b9c4ee8f..f41b89a4 100644 --- a/debian/patches/fix-llvm-config-obj-src-root.patch +++ b/debian/patches/fix-llvm-config-obj-src-root.patch @@ -1,8 +1,8 @@ -Index: llvm-toolchain-snapshot_3.8~svn257050/tools/llvm-config/llvm-config.cpp +Index: llvm-toolchain-3.8_3.8~+rc1/tools/llvm-config/llvm-config.cpp =================================================================== ---- llvm-toolchain-snapshot_3.8~svn257050.orig/tools/llvm-config/llvm-config.cpp -+++ llvm-toolchain-snapshot_3.8~svn257050/tools/llvm-config/llvm-config.cpp -@@ -531,9 +531,9 @@ int main(int argc, char **argv) { +--- llvm-toolchain-3.8_3.8~+rc1.orig/tools/llvm-config/llvm-config.cpp ++++ llvm-toolchain-3.8_3.8~+rc1/tools/llvm-config/llvm-config.cpp +@@ -498,9 +498,9 @@ int main(int argc, char **argv) { } else if (Arg == "--shared-mode") { PrintSharedMode = true; } else if (Arg == "--obj-root") { @@ -11,6 +11,6 @@ Index: llvm-toolchain-snapshot_3.8~svn257050/tools/llvm-config/llvm-config.cpp } else if (Arg == "--src-root") { - OS << LLVM_SRC_ROOT << '\n'; + OS << ActivePrefix << "/build/" << '\n'; - } else if (Arg == "--link-shared") { - LinkMode = LinkModeDyLib; - } else if (Arg == "--link-static") { + } else { + usage(); + } diff --git a/debian/patches/series b/debian/patches/series index c2027e6f..7ff72278 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -34,7 +34,6 @@ follow-parallel-var.diff hurd-EIEIO-undef.diff silent-MCJIIT-tests.diff lldb-libname.diff -strip-svn.diff compiler-rt-i586.diff clang-analyzer-force-version.diff fix-cmake-config-prefix.diff diff --git a/debian/patches/silent-MCJIIT-tests.diff b/debian/patches/silent-MCJIIT-tests.diff index 958cbfcf..feb60022 100644 --- a/debian/patches/silent-MCJIIT-tests.diff +++ b/debian/patches/silent-MCJIIT-tests.diff @@ -1,7 +1,7 @@ -Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/MCJIT/cross-module-sm-pic-a.ll +Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/cross-module-sm-pic-a.ll =================================================================== ---- llvm-toolchain-snapshot_3.8~svn255758.orig/test/ExecutionEngine/MCJIT/cross-module-sm-pic-a.ll -+++ llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/MCJIT/cross-module-sm-pic-a.ll +--- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/MCJIT/cross-module-sm-pic-a.ll ++++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/cross-module-sm-pic-a.ll @@ -1,5 +1,5 @@ ; RUN: %lli -extra-module=%p/Inputs/cross-module-b.ll -relocation-model=pic -code-model=small %s > /dev/null -; XFAIL: mips-, mipsel-, i686, i386 @@ -9,10 +9,10 @@ Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/MCJIT/cross-mo declare i32 @FB() -Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/MCJIT/eh-lg-pic.ll +Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/eh-lg-pic.ll =================================================================== ---- llvm-toolchain-snapshot_3.8~svn255758.orig/test/ExecutionEngine/MCJIT/eh-lg-pic.ll -+++ llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/MCJIT/eh-lg-pic.ll +--- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/MCJIT/eh-lg-pic.ll ++++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/eh-lg-pic.ll @@ -1,5 +1,5 @@ ; RUN: %lli -relocation-model=pic -code-model=large %s -; XFAIL: cygwin, win32, mingw, mips-, mipsel-, i686, i386, aarch64, arm @@ -20,10 +20,10 @@ Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/MCJIT/eh-lg-pi declare i8* @__cxa_allocate_exception(i64) declare void @__cxa_throw(i8*, i8*, i8*) declare i32 @__gxx_personality_v0(...) -Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/MCJIT/eh-sm-pic.ll +Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/eh-sm-pic.ll =================================================================== ---- llvm-toolchain-snapshot_3.8~svn255758.orig/test/ExecutionEngine/MCJIT/eh-sm-pic.ll -+++ llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/MCJIT/eh-sm-pic.ll +--- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/MCJIT/eh-sm-pic.ll ++++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/eh-sm-pic.ll @@ -1,5 +1,5 @@ ; RUN: %lli -relocation-model=pic -code-model=small %s -; XFAIL: cygwin, win32, mingw, mips-, mipsel-, i686, i386, darwin, aarch64, arm @@ -31,10 +31,10 @@ Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/MCJIT/eh-sm-pi declare i8* @__cxa_allocate_exception(i64) declare void @__cxa_throw(i8*, i8*, i8*) declare i32 @__gxx_personality_v0(...) -Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/MCJIT/multi-module-sm-pic-a.ll +Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/multi-module-sm-pic-a.ll =================================================================== ---- llvm-toolchain-snapshot_3.8~svn255758.orig/test/ExecutionEngine/MCJIT/multi-module-sm-pic-a.ll -+++ llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/MCJIT/multi-module-sm-pic-a.ll +--- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/MCJIT/multi-module-sm-pic-a.ll ++++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/multi-module-sm-pic-a.ll @@ -1,5 +1,5 @@ ; RUN: %lli -extra-module=%p/Inputs/multi-module-b.ll -extra-module=%p/Inputs/multi-module-c.ll -relocation-model=pic -code-model=small %s > /dev/null -; XFAIL: mips-, mipsel-, i686, i386 @@ -42,10 +42,10 @@ Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/MCJIT/multi-mo declare i32 @FB() -Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/MCJIT/stubs-sm-pic.ll +Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/stubs-sm-pic.ll =================================================================== ---- llvm-toolchain-snapshot_3.8~svn255758.orig/test/ExecutionEngine/MCJIT/stubs-sm-pic.ll -+++ llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/MCJIT/stubs-sm-pic.ll +--- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/MCJIT/stubs-sm-pic.ll ++++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/stubs-sm-pic.ll @@ -1,5 +1,5 @@ ; RUN: %lli -disable-lazy-compilation=false -relocation-model=pic -code-model=small %s -; XFAIL: mips-, mipsel-, i686, i386, aarch64, arm @@ -53,10 +53,10 @@ Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/MCJIT/stubs-sm define i32 @main() nounwind { entry: -Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/MCJIT/test-global-init-nonzero-sm-pic.ll +Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/test-global-init-nonzero-sm-pic.ll =================================================================== ---- llvm-toolchain-snapshot_3.8~svn255758.orig/test/ExecutionEngine/MCJIT/test-global-init-nonzero-sm-pic.ll -+++ llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/MCJIT/test-global-init-nonzero-sm-pic.ll +--- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/MCJIT/test-global-init-nonzero-sm-pic.ll ++++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/test-global-init-nonzero-sm-pic.ll @@ -1,5 +1,5 @@ ; RUN: %lli -relocation-model=pic -code-model=small %s > /dev/null -; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386 @@ -64,10 +64,10 @@ Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/MCJIT/test-glo @count = global i32 1, align 4 -Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/MCJIT/test-ptr-reloc-sm-pic.ll +Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/test-ptr-reloc-sm-pic.ll =================================================================== ---- llvm-toolchain-snapshot_3.8~svn255758.orig/test/ExecutionEngine/MCJIT/test-ptr-reloc-sm-pic.ll -+++ llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/MCJIT/test-ptr-reloc-sm-pic.ll +--- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/MCJIT/test-ptr-reloc-sm-pic.ll ++++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/test-ptr-reloc-sm-pic.ll @@ -1,5 +1,5 @@ ; RUN: %lli -O0 -relocation-model=pic -code-model=small %s -; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386 @@ -75,54 +75,34 @@ Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/MCJIT/test-ptr @.str = private unnamed_addr constant [6 x i8] c"data1\00", align 1 @ptr = global i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i32 0, i32 0), align 4 -Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/MCJIT/remote/cross-module-sm-pic-a.ll +Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-sm-pic.ll =================================================================== ---- llvm-toolchain-snapshot_3.8~svn255758.orig/test/ExecutionEngine/MCJIT/remote/cross-module-sm-pic-a.ll -+++ llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/MCJIT/remote/cross-module-sm-pic-a.ll -@@ -1,5 +1,5 @@ - ; RUN: %lli -extra-module=%p/Inputs/cross-module-b.ll -disable-lazy-compilation=true -remote-mcjit -mcjit-remote-process=lli-child-target%exeext -relocation-model=pic -code-model=small %s > /dev/null --; XFAIL: mips-, mipsel-, i686, i386, arm -+; XFAIL: * - - declare i32 @FB() - -Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/MCJIT/remote/multi-module-sm-pic-a.ll -=================================================================== ---- llvm-toolchain-snapshot_3.8~svn255758.orig/test/ExecutionEngine/MCJIT/remote/multi-module-sm-pic-a.ll -+++ llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/MCJIT/remote/multi-module-sm-pic-a.ll -@@ -1,5 +1,5 @@ - ; RUN: %lli -extra-module=%p/Inputs/multi-module-b.ll -extra-module=%p/Inputs/multi-module-c.ll -disable-lazy-compilation=true -remote-mcjit -mcjit-remote-process=lli-child-target%exeext -relocation-model=pic -code-model=small %s > /dev/null --; XFAIL: mips-, mipsel-, i686, i386, arm -+; XFAIL: * - - declare i32 @FB() - -Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-sm-pic.ll -=================================================================== ---- llvm-toolchain-snapshot_3.8~svn255758.orig/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-sm-pic.ll -+++ llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-sm-pic.ll -@@ -1,5 +1,5 @@ - ; RUN: %lli -remote-mcjit -relocation-model=pic -code-model=small %s > /dev/null --; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386 +--- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-sm-pic.ll ++++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-sm-pic.ll +@@ -1,6 +1,6 @@ + ; RUN: %lli -remote-mcjit -mcjit-remote-process=lli-child-target%exeext \ + ; RUN: -relocation-model=pic -code-model=small %s > /dev/null +-; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386, win32 +; XFAIL: * @count = global i32 1, align 4 -Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-sm-pic.ll +Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-sm-pic.ll =================================================================== ---- llvm-toolchain-snapshot_3.8~svn255758.orig/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-sm-pic.ll -+++ llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-sm-pic.ll -@@ -1,5 +1,5 @@ - ; RUN: %lli -remote-mcjit -O0 -relocation-model=pic -code-model=small %s --; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386 +--- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-sm-pic.ll ++++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-sm-pic.ll +@@ -1,6 +1,6 @@ + ; RUN: %lli -remote-mcjit -mcjit-remote-process=lli-child-target%exeext \ + ; RUN: -O0 -relocation-model=pic -code-model=small %s +-; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386, win32 +; XFAIL: * @.str = private unnamed_addr constant [6 x i8] c"data1\00", align 1 @ptr = global i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i32 0, i32 0), align 4 -Index: llvm-toolchain-snapshot_3.8~svn255758/test/BugPoint/crash-narrowfunctiontest.ll +Index: llvm-toolchain-3.8_3.8~+rc1/test/BugPoint/crash-narrowfunctiontest.ll =================================================================== ---- llvm-toolchain-snapshot_3.8~svn255758.orig/test/BugPoint/crash-narrowfunctiontest.ll -+++ llvm-toolchain-snapshot_3.8~svn255758/test/BugPoint/crash-narrowfunctiontest.ll +--- llvm-toolchain-3.8_3.8~+rc1.orig/test/BugPoint/crash-narrowfunctiontest.ll ++++ llvm-toolchain-3.8_3.8~+rc1/test/BugPoint/crash-narrowfunctiontest.ll @@ -2,7 +2,6 @@ ; ; RUN: bugpoint -load %llvmshlibdir/BugpointPasses%shlibext %s -output-prefix %t -bugpoint-crashcalls -silence-passes > /dev/null @@ -131,10 +111,10 @@ Index: llvm-toolchain-snapshot_3.8~svn255758/test/BugPoint/crash-narrowfunctiont define i32 @foo() { ret i32 1 } -Index: llvm-toolchain-snapshot_3.8~svn255758/test/BugPoint/metadata.ll +Index: llvm-toolchain-3.8_3.8~+rc1/test/BugPoint/metadata.ll =================================================================== ---- llvm-toolchain-snapshot_3.8~svn255758.orig/test/BugPoint/metadata.ll -+++ llvm-toolchain-snapshot_3.8~svn255758/test/BugPoint/metadata.ll +--- llvm-toolchain-3.8_3.8~+rc1.orig/test/BugPoint/metadata.ll ++++ llvm-toolchain-3.8_3.8~+rc1/test/BugPoint/metadata.ll @@ -1,7 +1,6 @@ ; RUN: bugpoint -load %llvmshlibdir/BugpointPasses%shlibext %s -output-prefix %t -bugpoint-crashcalls -silence-passes > /dev/null ; RUN: llvm-dis %t-reduced-simplified.bc -o - | FileCheck %s @@ -143,10 +123,10 @@ Index: llvm-toolchain-snapshot_3.8~svn255758/test/BugPoint/metadata.ll ; Bugpoint should keep the call's metadata attached to the call. -Index: llvm-toolchain-snapshot_3.8~svn255758/test/BugPoint/remove_arguments_test.ll +Index: llvm-toolchain-3.8_3.8~+rc1/test/BugPoint/remove_arguments_test.ll =================================================================== ---- llvm-toolchain-snapshot_3.8~svn255758.orig/test/BugPoint/remove_arguments_test.ll -+++ llvm-toolchain-snapshot_3.8~svn255758/test/BugPoint/remove_arguments_test.ll +--- llvm-toolchain-3.8_3.8~+rc1.orig/test/BugPoint/remove_arguments_test.ll ++++ llvm-toolchain-3.8_3.8~+rc1/test/BugPoint/remove_arguments_test.ll @@ -1,7 +1,6 @@ ; RUN: bugpoint -load %llvmshlibdir/BugpointPasses%shlibext %s -output-prefix %t -bugpoint-crashcalls -silence-passes ; RUN: llvm-dis %t-reduced-simplified.bc -o - | FileCheck %s @@ -155,10 +135,10 @@ Index: llvm-toolchain-snapshot_3.8~svn255758/test/BugPoint/remove_arguments_test ; Test to make sure that arguments are removed from the function if they are ; unnecessary. And clean up any types that frees up too. -Index: llvm-toolchain-snapshot_3.8~svn255758/test/Feature/load_module.ll +Index: llvm-toolchain-3.8_3.8~+rc1/test/Feature/load_module.ll =================================================================== ---- llvm-toolchain-snapshot_3.8~svn255758.orig/test/Feature/load_module.ll -+++ llvm-toolchain-snapshot_3.8~svn255758/test/Feature/load_module.ll +--- llvm-toolchain-3.8_3.8~+rc1.orig/test/Feature/load_module.ll ++++ llvm-toolchain-3.8_3.8~+rc1/test/Feature/load_module.ll @@ -3,7 +3,6 @@ ; RUN: -disable-output 2>&1 | grep Hello ; REQUIRES: loadable_module @@ -167,10 +147,10 @@ Index: llvm-toolchain-snapshot_3.8~svn255758/test/Feature/load_module.ll @junk = global i32 0 -Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/OrcMCJIT/cross-module-sm-pic-a.ll +Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/cross-module-sm-pic-a.ll =================================================================== ---- llvm-toolchain-snapshot_3.8~svn255758.orig/test/ExecutionEngine/OrcMCJIT/cross-module-sm-pic-a.ll -+++ llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/OrcMCJIT/cross-module-sm-pic-a.ll +--- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/OrcMCJIT/cross-module-sm-pic-a.ll ++++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/cross-module-sm-pic-a.ll @@ -1,5 +1,5 @@ ; RUN: %lli -jit-kind=orc-mcjit -extra-module=%p/Inputs/cross-module-b.ll -relocation-model=pic -code-model=small %s > /dev/null -; XFAIL: mips-, mipsel-, i686, i386 @@ -178,10 +158,10 @@ Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/OrcMCJIT/cross declare i32 @FB() -Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/OrcMCJIT/eh-lg-pic.ll +Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/eh-lg-pic.ll =================================================================== ---- llvm-toolchain-snapshot_3.8~svn255758.orig/test/ExecutionEngine/OrcMCJIT/eh-lg-pic.ll -+++ llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/OrcMCJIT/eh-lg-pic.ll +--- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/OrcMCJIT/eh-lg-pic.ll ++++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/eh-lg-pic.ll @@ -1,5 +1,5 @@ ; RUN: %lli -jit-kind=orc-mcjit -relocation-model=pic -code-model=large %s -; XFAIL: cygwin, win32, mingw, mips-, mipsel-, i686, i386, aarch64, arm @@ -189,10 +169,10 @@ Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/OrcMCJIT/eh-lg declare i8* @__cxa_allocate_exception(i64) declare void @__cxa_throw(i8*, i8*, i8*) declare i32 @__gxx_personality_v0(...) -Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/OrcMCJIT/eh-sm-pic.ll +Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/eh-sm-pic.ll =================================================================== ---- llvm-toolchain-snapshot_3.8~svn255758.orig/test/ExecutionEngine/OrcMCJIT/eh-sm-pic.ll -+++ llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/OrcMCJIT/eh-sm-pic.ll +--- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/OrcMCJIT/eh-sm-pic.ll ++++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/eh-sm-pic.ll @@ -1,5 +1,5 @@ ; RUN: %lli -jit-kind=orc-mcjit -relocation-model=pic -code-model=small %s -; XFAIL: cygwin, win32, mingw, mips-, mipsel-, i686, i386, darwin, aarch64, arm @@ -200,10 +180,10 @@ Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/OrcMCJIT/eh-sm declare i8* @__cxa_allocate_exception(i64) declare void @__cxa_throw(i8*, i8*, i8*) declare i32 @__gxx_personality_v0(...) -Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/OrcMCJIT/multi-module-sm-pic-a.ll +Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/multi-module-sm-pic-a.ll =================================================================== ---- llvm-toolchain-snapshot_3.8~svn255758.orig/test/ExecutionEngine/OrcMCJIT/multi-module-sm-pic-a.ll -+++ llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/OrcMCJIT/multi-module-sm-pic-a.ll +--- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/OrcMCJIT/multi-module-sm-pic-a.ll ++++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/multi-module-sm-pic-a.ll @@ -1,5 +1,5 @@ ; RUN: %lli -jit-kind=orc-mcjit -extra-module=%p/Inputs/multi-module-b.ll -extra-module=%p/Inputs/multi-module-c.ll -relocation-model=pic -code-model=small %s > /dev/null -; XFAIL: mips-, mipsel-, i686, i386 @@ -211,54 +191,34 @@ Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/OrcMCJIT/multi declare i32 @FB() -Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/OrcMCJIT/remote/cross-module-sm-pic-a.ll +Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/remote/test-global-init-nonzero-sm-pic.ll =================================================================== ---- llvm-toolchain-snapshot_3.8~svn255758.orig/test/ExecutionEngine/OrcMCJIT/remote/cross-module-sm-pic-a.ll -+++ llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/OrcMCJIT/remote/cross-module-sm-pic-a.ll -@@ -1,5 +1,5 @@ - ; RUN: %lli -jit-kind=orc-mcjit -extra-module=%p/Inputs/cross-module-b.ll -disable-lazy-compilation=true -remote-mcjit -mcjit-remote-process=lli-child-target%exeext -relocation-model=pic -code-model=small %s > /dev/null --; XFAIL: mips-, mipsel-, i686, i386, arm -+; XFAIL: * - - declare i32 @FB() - -Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/OrcMCJIT/remote/multi-module-sm-pic-a.ll -=================================================================== ---- llvm-toolchain-snapshot_3.8~svn255758.orig/test/ExecutionEngine/OrcMCJIT/remote/multi-module-sm-pic-a.ll -+++ llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/OrcMCJIT/remote/multi-module-sm-pic-a.ll -@@ -1,5 +1,5 @@ - ; RUN: %lli -jit-kind=orc-mcjit -extra-module=%p/Inputs/multi-module-b.ll -extra-module=%p/Inputs/multi-module-c.ll -disable-lazy-compilation=true -remote-mcjit -mcjit-remote-process=lli-child-target%exeext -relocation-model=pic -code-model=small %s > /dev/null --; XFAIL: mips-, mipsel-, i686, i386, arm -+; XFAIL: * - - declare i32 @FB() - -Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/OrcMCJIT/remote/test-global-init-nonzero-sm-pic.ll -=================================================================== ---- llvm-toolchain-snapshot_3.8~svn255758.orig/test/ExecutionEngine/OrcMCJIT/remote/test-global-init-nonzero-sm-pic.ll -+++ llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/OrcMCJIT/remote/test-global-init-nonzero-sm-pic.ll -@@ -1,5 +1,5 @@ - ; RUN: %lli -jit-kind=orc-mcjit -remote-mcjit -relocation-model=pic -code-model=small %s > /dev/null --; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386 +--- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/OrcMCJIT/remote/test-global-init-nonzero-sm-pic.ll ++++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/remote/test-global-init-nonzero-sm-pic.ll +@@ -1,6 +1,6 @@ + ; RUN: %lli -jit-kind=orc-mcjit -remote-mcjit -mcjit-remote-process=lli-child-target%exeext \ + ; RUN: -relocation-model=pic -code-model=small %s > /dev/null +-; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386, win32 +; XFAIL: * @count = global i32 1, align 4 -Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/OrcMCJIT/remote/test-ptr-reloc-sm-pic.ll +Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/remote/test-ptr-reloc-sm-pic.ll =================================================================== ---- llvm-toolchain-snapshot_3.8~svn255758.orig/test/ExecutionEngine/OrcMCJIT/remote/test-ptr-reloc-sm-pic.ll -+++ llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/OrcMCJIT/remote/test-ptr-reloc-sm-pic.ll -@@ -1,5 +1,5 @@ - ; RUN: %lli -jit-kind=orc-mcjit -remote-mcjit -O0 -relocation-model=pic -code-model=small %s --; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386 +--- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/OrcMCJIT/remote/test-ptr-reloc-sm-pic.ll ++++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/remote/test-ptr-reloc-sm-pic.ll +@@ -1,6 +1,6 @@ + ; RUN: %lli -jit-kind=orc-mcjit -remote-mcjit -mcjit-remote-process=lli-child-target%exeext \ + ; RUN: -O0 -relocation-model=pic -code-model=small %s +-; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386, win32 +; XFAIL: * @.str = private unnamed_addr constant [6 x i8] c"data1\00", align 1 @ptr = global i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i32 0, i32 0), align 4 -Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/OrcMCJIT/stubs-sm-pic.ll +Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/stubs-sm-pic.ll =================================================================== ---- llvm-toolchain-snapshot_3.8~svn255758.orig/test/ExecutionEngine/OrcMCJIT/stubs-sm-pic.ll -+++ llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/OrcMCJIT/stubs-sm-pic.ll +--- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/OrcMCJIT/stubs-sm-pic.ll ++++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/stubs-sm-pic.ll @@ -1,5 +1,5 @@ ; RUN: %lli -jit-kind=orc-mcjit -disable-lazy-compilation=false -relocation-model=pic -code-model=small %s -; XFAIL: mips-, mipsel-, i686, i386, aarch64, arm @@ -266,10 +226,10 @@ Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/OrcMCJIT/stubs define i32 @main() nounwind { entry: -Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/OrcMCJIT/test-global-init-nonzero-sm-pic.ll +Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/test-global-init-nonzero-sm-pic.ll =================================================================== ---- llvm-toolchain-snapshot_3.8~svn255758.orig/test/ExecutionEngine/OrcMCJIT/test-global-init-nonzero-sm-pic.ll -+++ llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/OrcMCJIT/test-global-init-nonzero-sm-pic.ll +--- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/OrcMCJIT/test-global-init-nonzero-sm-pic.ll ++++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/test-global-init-nonzero-sm-pic.ll @@ -1,5 +1,5 @@ ; RUN: %lli -jit-kind=orc-mcjit -relocation-model=pic -code-model=small %s > /dev/null -; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386 @@ -277,10 +237,10 @@ Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/OrcMCJIT/test- @count = global i32 1, align 4 -Index: llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/OrcMCJIT/test-ptr-reloc-sm-pic.ll +Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/test-ptr-reloc-sm-pic.ll =================================================================== ---- llvm-toolchain-snapshot_3.8~svn255758.orig/test/ExecutionEngine/OrcMCJIT/test-ptr-reloc-sm-pic.ll -+++ llvm-toolchain-snapshot_3.8~svn255758/test/ExecutionEngine/OrcMCJIT/test-ptr-reloc-sm-pic.ll +--- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/OrcMCJIT/test-ptr-reloc-sm-pic.ll ++++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/test-ptr-reloc-sm-pic.ll @@ -1,5 +1,5 @@ ; RUN: %lli -jit-kind=orc-mcjit -O0 -relocation-model=pic -code-model=small %s -; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386 diff --git a/debian/patches/strip-svn.diff b/debian/patches/strip-svn.diff index c953a977..e69de29b 100644 --- a/debian/patches/strip-svn.diff +++ b/debian/patches/strip-svn.diff @@ -1,43 +0,0 @@ -Index: llvm-toolchain-snapshot_3.8~svn243851/autoconf/configure.ac -=================================================================== ---- llvm-toolchain-snapshot_3.8~svn243851.orig/autoconf/configure.ac -+++ llvm-toolchain-snapshot_3.8~svn243851/autoconf/configure.ac -@@ -32,12 +32,12 @@ dnl===---------------------------------- - dnl Initialize autoconf and define the package name, version number and - dnl address for reporting bugs. - --AC_INIT([LLVM],[3.8.0svn],[http://llvm.org/bugs/]) -+AC_INIT([LLVM],[3.8.0],[http://llvm.org/bugs/]) - - LLVM_VERSION_MAJOR=3 - LLVM_VERSION_MINOR=8 - LLVM_VERSION_PATCH=0 --LLVM_VERSION_SUFFIX=svn -+LLVM_VERSION_SUFFIX= - - AC_DEFINE_UNQUOTED([LLVM_VERSION_MAJOR], $LLVM_VERSION_MAJOR, [Major version of the LLVM API]) - AC_DEFINE_UNQUOTED([LLVM_VERSION_MINOR], $LLVM_VERSION_MINOR, [Minor version of the LLVM API]) -Index: llvm-toolchain-snapshot_3.8~svn243851/configure -=================================================================== ---- llvm-toolchain-snapshot_3.8~svn243851.orig/configure -+++ llvm-toolchain-snapshot_3.8~svn243851/configure -@@ -561,8 +561,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} - # Identity of this package. - PACKAGE_NAME='LLVM' - PACKAGE_TARNAME='llvm' --PACKAGE_VERSION='3.8.0svn' --PACKAGE_STRING='LLVM 3.8.0svn' -+PACKAGE_VERSION='3.8.0' -+PACKAGE_STRING='LLVM 3.8.0' - PACKAGE_BUGREPORT='http://llvm.org/bugs/' - - ac_unique_file="lib/IR/Module.cpp" -@@ -1956,7 +1956,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - LLVM_VERSION_MAJOR=3 - LLVM_VERSION_MINOR=8 - LLVM_VERSION_PATCH=0 --LLVM_VERSION_SUFFIX=svn -+LLVM_VERSION_SUFFIX= - - - cat >>confdefs.h <<_ACEOF From 8c26e94d7e0996ff87f0617b4b8b6b042664da74 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Wed, 20 Jan 2016 17:41:23 +0000 Subject: [PATCH 12/93] new symbol --- debian/libclang1-X.Y.symbols.in | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/debian/libclang1-X.Y.symbols.in b/debian/libclang1-X.Y.symbols.in index 9004a98d..b0b34323 100644 --- a/debian/libclang1-X.Y.symbols.in +++ b/debian/libclang1-X.Y.symbols.in @@ -7,6 +7,7 @@ libclang-@LLVM_VERSION@.so.1 libclang1-@LLVM_VERSION@ #MINVER# 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 @@ -30,6 +31,7 @@ libclang-@LLVM_VERSION@.so.1 libclang1-@LLVM_VERSION@ #MINVER# 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 @@ -145,6 +147,7 @@ libclang-@LLVM_VERSION@.so.1 libclang1-@LLVM_VERSION@ #MINVER# 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 @@ -199,6 +202,7 @@ libclang-@LLVM_VERSION@.so.1 libclang1-@LLVM_VERSION@ #MINVER# 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 @@ -272,6 +276,7 @@ libclang-@LLVM_VERSION@.so.1 libclang1-@LLVM_VERSION@ #MINVER# 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 @@ -304,6 +309,7 @@ libclang-@LLVM_VERSION@.so.1 libclang1-@LLVM_VERSION@ #MINVER# 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 From f19419341f7d5c29e95025b8c80e11a04ba886a6 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Wed, 20 Jan 2016 17:51:48 +0000 Subject: [PATCH 13/93] For now, disable the fail on testsuite on amd64 & i386 --- debian/changelog | 1 + debian/rules | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 5442e2f1..018e6d9b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,7 @@ llvm-toolchain-3.8 (1:3.8~+rc1-1~exp1) experimental; urgency=medium * New snapshot release + * For now, disable the fail on testsuite on amd64 & i386 * 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 diff --git a/debian/rules b/debian/rules index 125c87e1..5a723bb8 100755 --- a/debian/rules +++ b/debian/rules @@ -480,7 +480,8 @@ override_dh_installdeb: ifeq (,$(filter nocheck, $(DEB_BUILD_OPTIONS))) # List of the archs we know we have 100 % tests working -ARCH_LLVM_TEST_OK := amd64 i386 +ARCH_LLVM_TEST_OK := +#amd64 i386 override_dh_auto_test: From cb16042796ef38c17cf409006110eed89edc378e Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 22 Jan 2016 14:37:22 +0000 Subject: [PATCH 14/93] explicit dep on python + change priority of a dbg pkg --- debian/control | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/debian/control b/debian/control index 9fbfe5e6..ee1417c6 100644 --- a/debian/control +++ b/debian/control @@ -57,7 +57,7 @@ Description: Tool to format C/C++/Obj-C code Package: clang-tidy-3.8 Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} +Depends: ${shlibs:Depends}, ${misc:Depends}, python Replaces: clang-modernize-3.8, clang-3.8 (<< 1:3.8~svn250696-1) Breaks: clang-modernize-3.8, clang-3.8 (<< 1:3.8~svn250696-1) Description: clang-based C++ linter tool @@ -375,6 +375,7 @@ Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc hp 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 From 3149b75b8774f567b4f6572944bb749b6ccb37c9 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 22 Jan 2016 16:05:19 +0000 Subject: [PATCH 15/93] json cmake based patch --- debian/patches/use-deb-json.diff | 46 +++++++++++++++++++++++++++++--- 1 file changed, 42 insertions(+), 4 deletions(-) diff --git a/debian/patches/use-deb-json.diff b/debian/patches/use-deb-json.diff index 8c30935e..170abd0a 100644 --- a/debian/patches/use-deb-json.diff +++ b/debian/patches/use-deb-json.diff @@ -1,7 +1,7 @@ -Index: llvm-toolchain-snapshot_3.8~svn243372/polly/lib/Makefile +Index: llvm-toolchain-3.8_3.8~+rc1/polly/lib/Makefile =================================================================== ---- llvm-toolchain-snapshot_3.8~svn243372.orig/polly/lib/Makefile -+++ llvm-toolchain-snapshot_3.8~svn243372/polly/lib/Makefile +--- llvm-toolchain-3.8_3.8~+rc1.orig/polly/lib/Makefile ++++ llvm-toolchain-3.8_3.8~+rc1/polly/lib/Makefile @@ -26,9 +26,9 @@ ISL_CODEGEN_FILES= CodeGen/IslAst.cpp \ CodeGen/IslNodeBuilder.cpp \ CodeGen/CodeGeneration.cpp @@ -15,10 +15,48 @@ Index: llvm-toolchain-snapshot_3.8~svn243372/polly/lib/Makefile ISL_FILES= External/isl/basis_reduction_tab.c \ External/isl/isl_aff.c \ -@@ -142,4 +142,5 @@ SOURCES= Polly.cpp \ +@@ -146,4 +146,5 @@ SOURCES= Polly.cpp \ # include $(LEVEL)/Makefile.common -LIBS += $(POLLY_LD) $(POLLY_LIB) +LIBS += $(POLLY_LD) $(POLLY_LIB) -ljsoncpp + +Index: llvm-toolchain-3.8_3.8~+rc1/polly/lib/CMakeLists.txt +=================================================================== +--- llvm-toolchain-3.8_3.8~+rc1.orig/polly/lib/CMakeLists.txt ++++ llvm-toolchain-3.8_3.8~+rc1/polly/lib/CMakeLists.txt +@@ -1,10 +1,10 @@ + set(LLVM_NO_RTTI 1) + +-set(POLLY_JSON_FILES +- JSON/json_reader.cpp +- JSON/json_value.cpp +- JSON/json_writer.cpp +-) ++# set(POLLY_JSON_FILES ++# JSON/json_reader.cpp ++# JSON/json_value.cpp ++# JSON/json_writer.cpp ++# ) + + set(ISL_CODEGEN_FILES + CodeGen/IslAst.cpp +@@ -46,7 +46,7 @@ add_polly_library(Polly + Support/RegisterPasses.cpp + Support/ScopHelper.cpp + Support/ScopLocation.cpp +- ${POLLY_JSON_FILES} ++# ${POLLY_JSON_FILES} + Transform/Canonicalization.cpp + Transform/CodePreparation.cpp + Transform/DeadCodeElimination.cpp +@@ -54,7 +54,7 @@ add_polly_library(Polly + ${POLLY_HEADER_FILES} + ) + +-target_link_libraries(Polly PollyISL) ++target_link_libraries(Polly PollyISL jsoncpp) + + if (BUILD_SHARED_LIBS) + target_link_libraries(Polly From cd6a4210bb4a11987108afbae918135fcee394cd Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 24 Jan 2016 17:40:11 +0000 Subject: [PATCH 16/93] silent more tests --- debian/patches/silent-more-tests.diff | 33 +++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/debian/patches/silent-more-tests.diff b/debian/patches/silent-more-tests.diff index 8194ae7a..82c89f0a 100644 --- a/debian/patches/silent-more-tests.diff +++ b/debian/patches/silent-more-tests.diff @@ -49,3 +49,36 @@ Index: llvm-toolchain-snapshot_3.8~svn243372/test/Feature/load_module.ll @junk = global i32 0 +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)) {} + From 4678747a3eb70e1622cbfdc8e8785d23211a7ee5 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Wed, 3 Feb 2016 07:55:20 +0000 Subject: [PATCH 17/93] fixed some various issues --- debian/changelog | 1 - debian/rules | 22 +++++++++++----------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/debian/changelog b/debian/changelog index 018e6d9b..5442e2f1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,7 +1,6 @@ llvm-toolchain-3.8 (1:3.8~+rc1-1~exp1) experimental; urgency=medium * New snapshot release - * For now, disable the fail on testsuite on amd64 & i386 * 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 diff --git a/debian/rules b/debian/rules index 5a723bb8..3a77bb80 100755 --- a/debian/rules +++ b/debian/rules @@ -317,9 +317,9 @@ ifeq (${AUTOCONF_BUILD},yes) endif # 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; \ - fi +# 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; \ +# fi 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) @@ -339,14 +339,15 @@ endif # and remove things that are installed by autoconf but are # not intended for distribution. ifeq (${AUTOCONF_BUILD},yes) - cp clang/tools/clang-format/git-clang-format $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin - cp clang/tools/clang-format/clang-format-diff.py $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/share/clang - cp clang/tools/clang-format/clang-format.py $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/share/clang - cp clang/tools/clang-format/clang-format.el $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/share/clang - cp clang/tools/clang-format/clang-format-sublime.py $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/share/clang + cp -p clang/tools/clang-format/git-clang-format $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin + cp -p clang/tools/clang-format/clang-format-diff.py $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/share/clang + cp -p clang/tools/clang-format/clang-format.py $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/share/clang + cp -p clang/tools/clang-format/clang-format.el $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/share/clang + cp -p clang/tools/clang-format/clang-format-sublime.py $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/share/clang mv $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libLLVM-$(LLVM_VERSION).so $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libLLVM-$(LLVM_VERSION).so.1 endif + # Remove things that CMake or autoconf install but which aren't packaged yet, # or are packaged from the source or build tree. ifneq (${AUTOCONF_BUILD},yes) @@ -468,7 +469,7 @@ override_dh_installdeb: # Managed by the package dh_installdeb -a - rm -f $(CURDIR)/debian/lldb-$(LLVM_VERSION)/usr/lib/python*/dist-packages/lldb/__init__.pyc + rm -f $(CURDIR)/debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/python*/site-packages/lldb/__init__.pyc $(CURDIR)/debian/python-lldb-$(LLVM_VERSION)/usr/lib/llvm-$(LLVM_VERSION)/lib/python*/site-packages/lldb/__init__.pyc rm -f $(CURDIR)/debian/clang-$(LLVM_VERSION)-examples/usr/share/doc/clang-$(LLVM_VERSION)-examples/examples/*Make* rm -f $(CURDIR)//debian/llvm-$(LLVM_VERSION)-dev/usr/lib/llvm-$(LLVM_VERSION)/build/autoconf/LICENSE.TXT @@ -480,8 +481,7 @@ override_dh_installdeb: ifeq (,$(filter nocheck, $(DEB_BUILD_OPTIONS))) # List of the archs we know we have 100 % tests working -ARCH_LLVM_TEST_OK := -#amd64 i386 +ARCH_LLVM_TEST_OK := i386 override_dh_auto_test: From b7c907c6898abc0b1471c2bb7e529a6dc1c1155d Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Wed, 3 Feb 2016 15:20:02 +0000 Subject: [PATCH 18/93] remove deprecate patch --- debian/patches/lldb-test-makefile.diff | 14 -------------- debian/patches/series | 1 - 2 files changed, 15 deletions(-) delete mode 100644 debian/patches/lldb-test-makefile.diff diff --git a/debian/patches/lldb-test-makefile.diff b/debian/patches/lldb-test-makefile.diff deleted file mode 100644 index b255ead7..00000000 --- a/debian/patches/lldb-test-makefile.diff +++ /dev/null @@ -1,14 +0,0 @@ -Index: llvm-toolchain-snapshot_3.8~svn252405/lldb/Makefile -=================================================================== ---- llvm-toolchain-snapshot_3.8~svn252405.orig/lldb/Makefile -+++ llvm-toolchain-snapshot_3.8~svn252405/lldb/Makefile -@@ -91,7 +91,8 @@ ifneq ($(PROJ_SRC_ROOT),$(PROJ_OBJ_ROOT) - $(RecursiveTargets):: - $(Verb) if [ ! -f test/Makefile ]; then \ - $(MKDIR) test; \ -- $(CP) $(PROJ_SRC_DIR)/test/Makefile test/Makefile; \ -+ $(CP) $(PROJ_SRC_DIR)/packages/Python/lldbsuite/test/Makefile test/Makefile; \ -+ $(CP) $(PROJ_SRC_DIR)/packages/Python/lldbsuite/test/Makefile $(PROJ_SRC_DIR)/test/; \ - fi - endif - diff --git a/debian/patches/series b/debian/patches/series index 7ff72278..6555d271 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -37,6 +37,5 @@ lldb-libname.diff compiler-rt-i586.diff clang-analyzer-force-version.diff fix-cmake-config-prefix.diff -lldb-test-makefile.diff llvm25468-lldb-swig-format-security.diff llvm26003-sanitizer-check-env.diff From c59c8e7c6cb58a94fd5e69a57314e398290e2922 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Wed, 3 Feb 2016 15:20:09 +0000 Subject: [PATCH 19/93] rebase of the patch --- debian/patches/silent-MCJIIT-tests.diff | 140 ++++++++++++------------ 1 file changed, 70 insertions(+), 70 deletions(-) diff --git a/debian/patches/silent-MCJIIT-tests.diff b/debian/patches/silent-MCJIIT-tests.diff index feb60022..4bbe45fe 100644 --- a/debian/patches/silent-MCJIIT-tests.diff +++ b/debian/patches/silent-MCJIIT-tests.diff @@ -1,7 +1,7 @@ -Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/cross-module-sm-pic-a.ll +Index: llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/MCJIT/cross-module-sm-pic-a.ll =================================================================== ---- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/MCJIT/cross-module-sm-pic-a.ll -+++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/cross-module-sm-pic-a.ll +--- llvm-toolchain-3.8_3.8~+rc2.orig/test/ExecutionEngine/MCJIT/cross-module-sm-pic-a.ll ++++ llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/MCJIT/cross-module-sm-pic-a.ll @@ -1,5 +1,5 @@ ; RUN: %lli -extra-module=%p/Inputs/cross-module-b.ll -relocation-model=pic -code-model=small %s > /dev/null -; XFAIL: mips-, mipsel-, i686, i386 @@ -9,10 +9,10 @@ Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/cross-module-sm-pi declare i32 @FB() -Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/eh-lg-pic.ll +Index: llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/MCJIT/eh-lg-pic.ll =================================================================== ---- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/MCJIT/eh-lg-pic.ll -+++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/eh-lg-pic.ll +--- llvm-toolchain-3.8_3.8~+rc2.orig/test/ExecutionEngine/MCJIT/eh-lg-pic.ll ++++ llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/MCJIT/eh-lg-pic.ll @@ -1,5 +1,5 @@ ; RUN: %lli -relocation-model=pic -code-model=large %s -; XFAIL: cygwin, win32, mingw, mips-, mipsel-, i686, i386, aarch64, arm @@ -20,10 +20,10 @@ Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/eh-lg-pic.ll declare i8* @__cxa_allocate_exception(i64) declare void @__cxa_throw(i8*, i8*, i8*) declare i32 @__gxx_personality_v0(...) -Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/eh-sm-pic.ll +Index: llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/MCJIT/eh-sm-pic.ll =================================================================== ---- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/MCJIT/eh-sm-pic.ll -+++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/eh-sm-pic.ll +--- llvm-toolchain-3.8_3.8~+rc2.orig/test/ExecutionEngine/MCJIT/eh-sm-pic.ll ++++ llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/MCJIT/eh-sm-pic.ll @@ -1,5 +1,5 @@ ; RUN: %lli -relocation-model=pic -code-model=small %s -; XFAIL: cygwin, win32, mingw, mips-, mipsel-, i686, i386, darwin, aarch64, arm @@ -31,10 +31,10 @@ Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/eh-sm-pic.ll declare i8* @__cxa_allocate_exception(i64) declare void @__cxa_throw(i8*, i8*, i8*) declare i32 @__gxx_personality_v0(...) -Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/multi-module-sm-pic-a.ll +Index: llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/MCJIT/multi-module-sm-pic-a.ll =================================================================== ---- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/MCJIT/multi-module-sm-pic-a.ll -+++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/multi-module-sm-pic-a.ll +--- llvm-toolchain-3.8_3.8~+rc2.orig/test/ExecutionEngine/MCJIT/multi-module-sm-pic-a.ll ++++ llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/MCJIT/multi-module-sm-pic-a.ll @@ -1,5 +1,5 @@ ; RUN: %lli -extra-module=%p/Inputs/multi-module-b.ll -extra-module=%p/Inputs/multi-module-c.ll -relocation-model=pic -code-model=small %s > /dev/null -; XFAIL: mips-, mipsel-, i686, i386 @@ -42,10 +42,10 @@ Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/multi-module-sm-pi declare i32 @FB() -Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/stubs-sm-pic.ll +Index: llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/MCJIT/stubs-sm-pic.ll =================================================================== ---- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/MCJIT/stubs-sm-pic.ll -+++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/stubs-sm-pic.ll +--- llvm-toolchain-3.8_3.8~+rc2.orig/test/ExecutionEngine/MCJIT/stubs-sm-pic.ll ++++ llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/MCJIT/stubs-sm-pic.ll @@ -1,5 +1,5 @@ ; RUN: %lli -disable-lazy-compilation=false -relocation-model=pic -code-model=small %s -; XFAIL: mips-, mipsel-, i686, i386, aarch64, arm @@ -53,10 +53,10 @@ Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/stubs-sm-pic.ll define i32 @main() nounwind { entry: -Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/test-global-init-nonzero-sm-pic.ll +Index: llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/MCJIT/test-global-init-nonzero-sm-pic.ll =================================================================== ---- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/MCJIT/test-global-init-nonzero-sm-pic.ll -+++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/test-global-init-nonzero-sm-pic.ll +--- llvm-toolchain-3.8_3.8~+rc2.orig/test/ExecutionEngine/MCJIT/test-global-init-nonzero-sm-pic.ll ++++ llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/MCJIT/test-global-init-nonzero-sm-pic.ll @@ -1,5 +1,5 @@ ; RUN: %lli -relocation-model=pic -code-model=small %s > /dev/null -; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386 @@ -64,10 +64,10 @@ Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/test-global-init-n @count = global i32 1, align 4 -Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/test-ptr-reloc-sm-pic.ll +Index: llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/MCJIT/test-ptr-reloc-sm-pic.ll =================================================================== ---- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/MCJIT/test-ptr-reloc-sm-pic.ll -+++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/test-ptr-reloc-sm-pic.ll +--- llvm-toolchain-3.8_3.8~+rc2.orig/test/ExecutionEngine/MCJIT/test-ptr-reloc-sm-pic.ll ++++ llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/MCJIT/test-ptr-reloc-sm-pic.ll @@ -1,5 +1,5 @@ ; RUN: %lli -O0 -relocation-model=pic -code-model=small %s -; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386 @@ -75,34 +75,34 @@ Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/test-ptr-reloc-sm- @.str = private unnamed_addr constant [6 x i8] c"data1\00", align 1 @ptr = global i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i32 0, i32 0), align 4 -Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-sm-pic.ll +Index: llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-sm-pic.ll =================================================================== ---- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-sm-pic.ll -+++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-sm-pic.ll +--- llvm-toolchain-3.8_3.8~+rc2.orig/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-sm-pic.ll ++++ llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-sm-pic.ll @@ -1,6 +1,6 @@ ; RUN: %lli -remote-mcjit -mcjit-remote-process=lli-child-target%exeext \ ; RUN: -relocation-model=pic -code-model=small %s > /dev/null --; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386, win32 +-; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386, mingw32, win32 +; XFAIL: * @count = global i32 1, align 4 -Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-sm-pic.ll +Index: llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-sm-pic.ll =================================================================== ---- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-sm-pic.ll -+++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-sm-pic.ll +--- llvm-toolchain-3.8_3.8~+rc2.orig/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-sm-pic.ll ++++ llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-sm-pic.ll @@ -1,6 +1,6 @@ ; RUN: %lli -remote-mcjit -mcjit-remote-process=lli-child-target%exeext \ ; RUN: -O0 -relocation-model=pic -code-model=small %s --; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386, win32 +-; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386, mingw32, win32 +; XFAIL: * @.str = private unnamed_addr constant [6 x i8] c"data1\00", align 1 @ptr = global i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i32 0, i32 0), align 4 -Index: llvm-toolchain-3.8_3.8~+rc1/test/BugPoint/crash-narrowfunctiontest.ll +Index: llvm-toolchain-3.8_3.8~+rc2/test/BugPoint/crash-narrowfunctiontest.ll =================================================================== ---- llvm-toolchain-3.8_3.8~+rc1.orig/test/BugPoint/crash-narrowfunctiontest.ll -+++ llvm-toolchain-3.8_3.8~+rc1/test/BugPoint/crash-narrowfunctiontest.ll +--- llvm-toolchain-3.8_3.8~+rc2.orig/test/BugPoint/crash-narrowfunctiontest.ll ++++ llvm-toolchain-3.8_3.8~+rc2/test/BugPoint/crash-narrowfunctiontest.ll @@ -2,7 +2,6 @@ ; ; RUN: bugpoint -load %llvmshlibdir/BugpointPasses%shlibext %s -output-prefix %t -bugpoint-crashcalls -silence-passes > /dev/null @@ -111,10 +111,10 @@ Index: llvm-toolchain-3.8_3.8~+rc1/test/BugPoint/crash-narrowfunctiontest.ll define i32 @foo() { ret i32 1 } -Index: llvm-toolchain-3.8_3.8~+rc1/test/BugPoint/metadata.ll +Index: llvm-toolchain-3.8_3.8~+rc2/test/BugPoint/metadata.ll =================================================================== ---- llvm-toolchain-3.8_3.8~+rc1.orig/test/BugPoint/metadata.ll -+++ llvm-toolchain-3.8_3.8~+rc1/test/BugPoint/metadata.ll +--- llvm-toolchain-3.8_3.8~+rc2.orig/test/BugPoint/metadata.ll ++++ llvm-toolchain-3.8_3.8~+rc2/test/BugPoint/metadata.ll @@ -1,7 +1,6 @@ ; RUN: bugpoint -load %llvmshlibdir/BugpointPasses%shlibext %s -output-prefix %t -bugpoint-crashcalls -silence-passes > /dev/null ; RUN: llvm-dis %t-reduced-simplified.bc -o - | FileCheck %s @@ -123,10 +123,10 @@ Index: llvm-toolchain-3.8_3.8~+rc1/test/BugPoint/metadata.ll ; Bugpoint should keep the call's metadata attached to the call. -Index: llvm-toolchain-3.8_3.8~+rc1/test/BugPoint/remove_arguments_test.ll +Index: llvm-toolchain-3.8_3.8~+rc2/test/BugPoint/remove_arguments_test.ll =================================================================== ---- llvm-toolchain-3.8_3.8~+rc1.orig/test/BugPoint/remove_arguments_test.ll -+++ llvm-toolchain-3.8_3.8~+rc1/test/BugPoint/remove_arguments_test.ll +--- llvm-toolchain-3.8_3.8~+rc2.orig/test/BugPoint/remove_arguments_test.ll ++++ llvm-toolchain-3.8_3.8~+rc2/test/BugPoint/remove_arguments_test.ll @@ -1,7 +1,6 @@ ; RUN: bugpoint -load %llvmshlibdir/BugpointPasses%shlibext %s -output-prefix %t -bugpoint-crashcalls -silence-passes ; RUN: llvm-dis %t-reduced-simplified.bc -o - | FileCheck %s @@ -135,10 +135,10 @@ Index: llvm-toolchain-3.8_3.8~+rc1/test/BugPoint/remove_arguments_test.ll ; Test to make sure that arguments are removed from the function if they are ; unnecessary. And clean up any types that frees up too. -Index: llvm-toolchain-3.8_3.8~+rc1/test/Feature/load_module.ll +Index: llvm-toolchain-3.8_3.8~+rc2/test/Feature/load_module.ll =================================================================== ---- llvm-toolchain-3.8_3.8~+rc1.orig/test/Feature/load_module.ll -+++ llvm-toolchain-3.8_3.8~+rc1/test/Feature/load_module.ll +--- llvm-toolchain-3.8_3.8~+rc2.orig/test/Feature/load_module.ll ++++ llvm-toolchain-3.8_3.8~+rc2/test/Feature/load_module.ll @@ -3,7 +3,6 @@ ; RUN: -disable-output 2>&1 | grep Hello ; REQUIRES: loadable_module @@ -147,10 +147,10 @@ Index: llvm-toolchain-3.8_3.8~+rc1/test/Feature/load_module.ll @junk = global i32 0 -Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/cross-module-sm-pic-a.ll +Index: llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/OrcMCJIT/cross-module-sm-pic-a.ll =================================================================== ---- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/OrcMCJIT/cross-module-sm-pic-a.ll -+++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/cross-module-sm-pic-a.ll +--- llvm-toolchain-3.8_3.8~+rc2.orig/test/ExecutionEngine/OrcMCJIT/cross-module-sm-pic-a.ll ++++ llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/OrcMCJIT/cross-module-sm-pic-a.ll @@ -1,5 +1,5 @@ ; RUN: %lli -jit-kind=orc-mcjit -extra-module=%p/Inputs/cross-module-b.ll -relocation-model=pic -code-model=small %s > /dev/null -; XFAIL: mips-, mipsel-, i686, i386 @@ -158,10 +158,10 @@ Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/cross-module-sm declare i32 @FB() -Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/eh-lg-pic.ll +Index: llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/OrcMCJIT/eh-lg-pic.ll =================================================================== ---- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/OrcMCJIT/eh-lg-pic.ll -+++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/eh-lg-pic.ll +--- llvm-toolchain-3.8_3.8~+rc2.orig/test/ExecutionEngine/OrcMCJIT/eh-lg-pic.ll ++++ llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/OrcMCJIT/eh-lg-pic.ll @@ -1,5 +1,5 @@ ; RUN: %lli -jit-kind=orc-mcjit -relocation-model=pic -code-model=large %s -; XFAIL: cygwin, win32, mingw, mips-, mipsel-, i686, i386, aarch64, arm @@ -169,10 +169,10 @@ Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/eh-lg-pic.ll declare i8* @__cxa_allocate_exception(i64) declare void @__cxa_throw(i8*, i8*, i8*) declare i32 @__gxx_personality_v0(...) -Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/eh-sm-pic.ll +Index: llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/OrcMCJIT/eh-sm-pic.ll =================================================================== ---- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/OrcMCJIT/eh-sm-pic.ll -+++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/eh-sm-pic.ll +--- llvm-toolchain-3.8_3.8~+rc2.orig/test/ExecutionEngine/OrcMCJIT/eh-sm-pic.ll ++++ llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/OrcMCJIT/eh-sm-pic.ll @@ -1,5 +1,5 @@ ; RUN: %lli -jit-kind=orc-mcjit -relocation-model=pic -code-model=small %s -; XFAIL: cygwin, win32, mingw, mips-, mipsel-, i686, i386, darwin, aarch64, arm @@ -180,10 +180,10 @@ Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/eh-sm-pic.ll declare i8* @__cxa_allocate_exception(i64) declare void @__cxa_throw(i8*, i8*, i8*) declare i32 @__gxx_personality_v0(...) -Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/multi-module-sm-pic-a.ll +Index: llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/OrcMCJIT/multi-module-sm-pic-a.ll =================================================================== ---- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/OrcMCJIT/multi-module-sm-pic-a.ll -+++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/multi-module-sm-pic-a.ll +--- llvm-toolchain-3.8_3.8~+rc2.orig/test/ExecutionEngine/OrcMCJIT/multi-module-sm-pic-a.ll ++++ llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/OrcMCJIT/multi-module-sm-pic-a.ll @@ -1,5 +1,5 @@ ; RUN: %lli -jit-kind=orc-mcjit -extra-module=%p/Inputs/multi-module-b.ll -extra-module=%p/Inputs/multi-module-c.ll -relocation-model=pic -code-model=small %s > /dev/null -; XFAIL: mips-, mipsel-, i686, i386 @@ -191,34 +191,34 @@ Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/multi-module-sm declare i32 @FB() -Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/remote/test-global-init-nonzero-sm-pic.ll +Index: llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/OrcMCJIT/remote/test-global-init-nonzero-sm-pic.ll =================================================================== ---- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/OrcMCJIT/remote/test-global-init-nonzero-sm-pic.ll -+++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/remote/test-global-init-nonzero-sm-pic.ll +--- llvm-toolchain-3.8_3.8~+rc2.orig/test/ExecutionEngine/OrcMCJIT/remote/test-global-init-nonzero-sm-pic.ll ++++ llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/OrcMCJIT/remote/test-global-init-nonzero-sm-pic.ll @@ -1,6 +1,6 @@ ; RUN: %lli -jit-kind=orc-mcjit -remote-mcjit -mcjit-remote-process=lli-child-target%exeext \ ; RUN: -relocation-model=pic -code-model=small %s > /dev/null --; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386, win32 +-; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386, mingw32, win32 +; XFAIL: * @count = global i32 1, align 4 -Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/remote/test-ptr-reloc-sm-pic.ll +Index: llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/OrcMCJIT/remote/test-ptr-reloc-sm-pic.ll =================================================================== ---- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/OrcMCJIT/remote/test-ptr-reloc-sm-pic.ll -+++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/remote/test-ptr-reloc-sm-pic.ll +--- llvm-toolchain-3.8_3.8~+rc2.orig/test/ExecutionEngine/OrcMCJIT/remote/test-ptr-reloc-sm-pic.ll ++++ llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/OrcMCJIT/remote/test-ptr-reloc-sm-pic.ll @@ -1,6 +1,6 @@ ; RUN: %lli -jit-kind=orc-mcjit -remote-mcjit -mcjit-remote-process=lli-child-target%exeext \ ; RUN: -O0 -relocation-model=pic -code-model=small %s --; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386, win32 +-; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386, mingw32, win32 +; XFAIL: * @.str = private unnamed_addr constant [6 x i8] c"data1\00", align 1 @ptr = global i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i32 0, i32 0), align 4 -Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/stubs-sm-pic.ll +Index: llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/OrcMCJIT/stubs-sm-pic.ll =================================================================== ---- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/OrcMCJIT/stubs-sm-pic.ll -+++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/stubs-sm-pic.ll +--- llvm-toolchain-3.8_3.8~+rc2.orig/test/ExecutionEngine/OrcMCJIT/stubs-sm-pic.ll ++++ llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/OrcMCJIT/stubs-sm-pic.ll @@ -1,5 +1,5 @@ ; RUN: %lli -jit-kind=orc-mcjit -disable-lazy-compilation=false -relocation-model=pic -code-model=small %s -; XFAIL: mips-, mipsel-, i686, i386, aarch64, arm @@ -226,10 +226,10 @@ Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/stubs-sm-pic.ll define i32 @main() nounwind { entry: -Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/test-global-init-nonzero-sm-pic.ll +Index: llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/OrcMCJIT/test-global-init-nonzero-sm-pic.ll =================================================================== ---- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/OrcMCJIT/test-global-init-nonzero-sm-pic.ll -+++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/test-global-init-nonzero-sm-pic.ll +--- llvm-toolchain-3.8_3.8~+rc2.orig/test/ExecutionEngine/OrcMCJIT/test-global-init-nonzero-sm-pic.ll ++++ llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/OrcMCJIT/test-global-init-nonzero-sm-pic.ll @@ -1,5 +1,5 @@ ; RUN: %lli -jit-kind=orc-mcjit -relocation-model=pic -code-model=small %s > /dev/null -; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386 @@ -237,10 +237,10 @@ Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/test-global-ini @count = global i32 1, align 4 -Index: llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/test-ptr-reloc-sm-pic.ll +Index: llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/OrcMCJIT/test-ptr-reloc-sm-pic.ll =================================================================== ---- llvm-toolchain-3.8_3.8~+rc1.orig/test/ExecutionEngine/OrcMCJIT/test-ptr-reloc-sm-pic.ll -+++ llvm-toolchain-3.8_3.8~+rc1/test/ExecutionEngine/OrcMCJIT/test-ptr-reloc-sm-pic.ll +--- llvm-toolchain-3.8_3.8~+rc2.orig/test/ExecutionEngine/OrcMCJIT/test-ptr-reloc-sm-pic.ll ++++ llvm-toolchain-3.8_3.8~+rc2/test/ExecutionEngine/OrcMCJIT/test-ptr-reloc-sm-pic.ll @@ -1,5 +1,5 @@ ; RUN: %lli -jit-kind=orc-mcjit -O0 -relocation-model=pic -code-model=small %s -; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386 From dc22bf0057b7e849d562068cc92a93a2ff1739b5 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Wed, 3 Feb 2016 15:21:15 +0000 Subject: [PATCH 20/93] * New snapshot release * Remove build-llvm/ after the install step to save space. Most of the rc1 builds failed because of hd space. --- debian/changelog | 8 ++++++++ debian/libclang-X.Y-dev.install.in | 2 -- debian/rules | 7 +++++-- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/debian/changelog b/debian/changelog index 5442e2f1..4cd43618 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +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 diff --git a/debian/libclang-X.Y-dev.install.in b/debian/libclang-X.Y-dev.install.in index 2b4548fc..ac3e9ebc 100644 --- a/debian/libclang-X.Y-dev.install.in +++ b/debian/libclang-X.Y-dev.install.in @@ -2,8 +2,6 @@ usr/lib/llvm-@LLVM_VERSION@/include/clang usr/lib/llvm-@LLVM_VERSION@/include/clang-c usr/lib/llvm-@LLVM_VERSION@/lib/libclang*a -build-llvm/tools/clang/runtime/compiler-rt/clang_linux/ usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@/lib/ - #usr/include/clang /usr/include/ #usr/include/clang-c /usr/include/ #usr/lib/libclang.so /usr/lib/ diff --git a/debian/rules b/debian/rules index 3a77bb80..8d2fc324 100755 --- a/debian/rules +++ b/debian/rules @@ -224,7 +224,7 @@ override_dh_auto_configure: preconfigure --with-cloog --with-isl \ --with-bug-report-url=http://bugs.debian.org/ \ --enable-shared \ - --disable-bindings \ + --disable-bindings \ --with-clang-default-openmp-runtime=libomp \ $(CONFIGURE_EXTRA) \ CLANG_VENDOR=$(VENDOR) || { cat config.log tools/polly/config.log; exit 1; }; \ @@ -347,7 +347,6 @@ ifeq (${AUTOCONF_BUILD},yes) mv $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libLLVM-$(LLVM_VERSION).so $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libLLVM-$(LLVM_VERSION).so.1 endif - # Remove things that CMake or autoconf install but which aren't packaged yet, # or are packaged from the source or build tree. ifneq (${AUTOCONF_BUILD},yes) @@ -444,6 +443,10 @@ endif $(CURDIR)/debian/libclang-common-$(LLVM_VERSION)-dev/usr/lib/llvm-$(LLVM_VERSION)/include/; \ fi +# Delete the target build directory to save some space on the build systems +# All the files have been installed in $(CURDIR)/debian/tmp/ already + rm -rf $(TARGET_BUILD) + override_dh_shlibdeps: cd $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/ && ln -s libLLVM-$(LLVM_VERSION).so.1 libLLVM-$(LLVM_VERSION).so From fab060147961e902fe405f647776bd32c2553c4d Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 8 Feb 2016 12:45:08 +0000 Subject: [PATCH 21/93] Update the clang description for something more accurate (C++-11, 14, etc) --- debian/changelog | 6 ++++++ debian/control | 40 ++++++++++++++++++++++++---------------- 2 files changed, 30 insertions(+), 16 deletions(-) diff --git a/debian/changelog b/debian/changelog index 4cd43618..bf25aba5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +llvm-toolchain-3.8 (1:3.8~+rc2-2~exp1) UNRELEASED; urgency=medium + + * Update the clang description for something more accurate (C++-11, 14, etc) + + -- Sylvestre Ledru Sun, 07 Feb 2016 17:15:39 +0100 + llvm-toolchain-3.8 (1:3.8~+rc2-1~exp1) experimental; urgency=medium * New snapshot release diff --git a/debian/control b/debian/control index ee1417c6..734d1a1b 100644 --- a/debian/control +++ b/debian/control @@ -35,8 +35,9 @@ Description: C, C++ and Objective-C compiler (LLVM based) for the LLVM compiler. Its goal is to offer a replacement to the GNU Compiler Collection (GCC). . - Clang implements all of the ISO C++ 1998 and 2001 standards and also provides - a partial support of C++1y. + 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 @@ -76,8 +77,9 @@ Description: C, C++ and Objective-C compiler (LLVM based) - Documentation for the LLVM compiler. Its goal is to offer a replacement to the GNU Compiler Collection (GCC). . - Clang implements all of the ISO C++ 1998 and 2001 standards and also provides - a partial support of C++1y. + 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. @@ -91,8 +93,9 @@ Description: C interface to the clang library for the LLVM compiler. Its goal is to offer a replacement to the GNU Compiler Collection (GCC). . - Clang implements all of the ISO C++ 1998 and 2001 standards and also provides - a partial support of C++1y. + 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. . @@ -113,8 +116,9 @@ Description: clang library for the LLVM compiler. Its goal is to offer a replacement to the GNU Compiler Collection (GCC). . - Clang implements all of the ISO C++ 1998 and 2001 standards and also provides - a partial support of C++1y. + 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. @@ -128,8 +132,9 @@ Description: clang library - Development package for the LLVM compiler. Its goal is to offer a replacement to the GNU Compiler Collection (GCC). . - Clang implements all of the ISO C++ 1998 and 2001 standards and also provides - a partial support of C++1y. + 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. @@ -143,8 +148,9 @@ Description: clang library - Common development package for the LLVM compiler. Its goal is to offer a replacement to the GNU Compiler Collection (GCC). . - Clang implements all of the ISO C++ 1998 and 2001 standards and also provides - a partial support of C++1y. + 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). @@ -161,8 +167,9 @@ Description: Clang Python Bindings for the LLVM compiler. Its goal is to offer a replacement to the GNU Compiler Collection (GCC). . - Clang implements all of the ISO C++ 1998 and 2001 standards and also provides - a partial support of C++1y. + 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. @@ -176,8 +183,9 @@ Description: Clang examples for the LLVM compiler. Its goal is to offer a replacement to the GNU Compiler Collection (GCC). . - Clang implements all of the ISO C++ 1998 and 2001 standards and also provides - a partial support of C++1y. + 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. From f6359ef2eb2c3bae6575c4b916487ffd8e55828d Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 14 Feb 2016 20:50:45 +0000 Subject: [PATCH 22/93] Update debian/orig-tar.sh to remove autoconf/config.sub autoconf/config.guess in polly --- debian/changelog | 2 ++ debian/orig-tar.sh | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index bf25aba5..1fea7f45 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,8 @@ llvm-toolchain-3.8 (1:3.8~+rc2-2~exp1) UNRELEASED; urgency=medium * 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 -- Sylvestre Ledru Sun, 07 Feb 2016 17:15:39 +0100 diff --git a/debian/orig-tar.sh b/debian/orig-tar.sh index 1c03550f..075cae4e 100755 --- a/debian/orig-tar.sh +++ b/debian/orig-tar.sh @@ -113,7 +113,7 @@ rm -rf $COMPILER_RT_TARGET # Polly POLLY_TARGET=polly_$VERSION $SVN_CMD $(get_svn_url polly $BRANCH $TAG) $POLLY_TARGET -rm -rf $POLLY_TARGET/www +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 From db9627d9c7b260a503a4f449e2aa0df4324baf36 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 15 Feb 2016 12:20:21 +0000 Subject: [PATCH 23/93] remove old useless files^C --- debian/llvm-X.Y-tools.dirs.in | 3 --- debian/llvm-X.Y-tools.install.in | 13 ------------- 2 files changed, 16 deletions(-) delete mode 100644 debian/llvm-X.Y-tools.dirs.in delete mode 100644 debian/llvm-X.Y-tools.install.in diff --git a/debian/llvm-X.Y-tools.dirs.in b/debian/llvm-X.Y-tools.dirs.in deleted file mode 100644 index ee339823..00000000 --- a/debian/llvm-X.Y-tools.dirs.in +++ /dev/null @@ -1,3 +0,0 @@ -/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 deleted file mode 100644 index 3b9b96c6..00000000 --- a/debian/llvm-X.Y-tools.install.in +++ /dev/null @@ -1,13 +0,0 @@ -usr/lib/llvm-@LLVM_VERSION@/bin/count -usr/lib/llvm-@LLVM_VERSION@/bin/FileCheck -usr/lib/llvm-@LLVM_VERSION@/bin/not - - -unittests/Makefile.unittest /usr/lib/llvm-@LLVM_VERSION@/build/unittests/ - -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@ From 6df26a99ec13d0f531acaf7774b02a2dd832e793 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Thu, 25 Feb 2016 13:26:49 +0000 Subject: [PATCH 24/93] * New snapshot release * clang-tidy-3.8: Remove Breaks/Replaces on clang-modernize-3.8. * Disable lldb on s390x. --- debian/changelog | 9 +++++++-- debian/control | 10 +++++----- debian/rules | 2 +- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/debian/changelog b/debian/changelog index 1fea7f45..211f7d5a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,10 +1,15 @@ -llvm-toolchain-3.8 (1:3.8~+rc2-2~exp1) UNRELEASED; urgency=medium +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 - -- Sylvestre Ledru Sun, 07 Feb 2016 17:15:39 +0100 + [ 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 diff --git a/debian/control b/debian/control index 734d1a1b..ab889bc2 100644 --- a/debian/control +++ b/debian/control @@ -59,8 +59,8 @@ Description: Tool to format C/C++/Obj-C code Package: clang-tidy-3.8 Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, python -Replaces: clang-modernize-3.8, clang-3.8 (<< 1:3.8~svn250696-1) -Breaks: clang-modernize-3.8, clang-3.8 (<< 1:3.8~svn250696-1) +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 @@ -352,7 +352,7 @@ Description: Modular compiler and toolchain technologies, examples # ------------- lldb ------------- Package: lldb-3.8 -Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 s390x sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 mips mipsel +Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 mips mipsel # ia64 mips mipsel hurd powerpc ppc64el have been removed Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm3.8 (= ${binary:Version}), python, llvm-3.8-dev, python-lldb-3.8 Conflicts: lldb-3.4, lldb-3.5 @@ -363,7 +363,7 @@ Description: Next generation, high-performance debugger Project, such as the Clang expression parser and LLVM disassembler. Package: liblldb-3.8 -Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 s390x sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 mips mipsel +Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 mips mipsel # ia64 mips mipsel hurd powerpc ppc64el have been removed Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm3.8 (= ${binary:Version}) Pre-Depends: ${misc:Pre-Depends} @@ -408,7 +408,7 @@ Description: Next generation, high-performance debugger, python lib Package: liblldb-3.8-dev Section: libdevel -Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 s390x sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 mips mipsel +Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 mips mipsel # ia64 mips mipsel hurd powerpc ppc64el have been removed Depends: ${shlibs:Depends}, ${misc:Depends}, lldb-3.8 (= ${binary:Version}) Replaces: lldb-3.8-dev (<= 1:3.8~svn215195-2) diff --git a/debian/rules b/debian/rules index 8d2fc324..be4f96e9 100755 --- a/debian/rules +++ b/debian/rules @@ -122,7 +122,7 @@ endif LLDB_ENABLE=yes -LLDB_DISABLE_ARCHS := arm64 hurd-i386 ia64 ppc64el powerpc +LLDB_DISABLE_ARCHS := arm64 hurd-i386 ia64 ppc64el powerpc s390x # hurd has threading issues ifeq (,$(filter-out $(LLDB_DISABLE_ARCHS), $(DEB_HOST_ARCH))) # Disable LLDB for this arch. From d03409dc831b79d47c4bedbf3f8732b8495db9b1 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 4 Mar 2016 16:56:55 +0000 Subject: [PATCH 25/93] * New upstream release * install missing file (TODO bug lldb) --- debian/changelog | 7 ++++ debian/clang-X.Y.install.in | 22 +++++++++++-- debian/libclang-X.Y-dev.install.in | 1 + debian/libclang-common-X.Y-dev.install.in | 1 + debian/liblldb-X.Y-dev.install.in | 1 + debian/lldb-X.Y.install.in | 2 ++ debian/llvm-X.Y-dev.install.in | 3 ++ debian/rules | 40 ++++------------------- 8 files changed, 42 insertions(+), 35 deletions(-) diff --git a/debian/changelog b/debian/changelog index 211f7d5a..29b78b30 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +llvm-toolchain-3.8 (1:3.8-1) unstable; urgency=medium + + * New upstream release + * install missing file (TODO bug lldb) + + -- 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 diff --git a/debian/clang-X.Y.install.in b/debian/clang-X.Y.install.in index 81055b24..2bb961f9 100644 --- a/debian/clang-X.Y.install.in +++ b/debian/clang-X.Y.install.in @@ -5,6 +5,22 @@ 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/lib/llvm-@LLVM_VERSION@/share/clang/cmake/ + +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/ @@ -17,5 +33,7 @@ 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/lib/llvm-@LLVM_VERSION@/share/man/man1/clang.1 +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/libclang-X.Y-dev.install.in b/debian/libclang-X.Y-dev.install.in index ac3e9ebc..d91e186b 100644 --- a/debian/libclang-X.Y-dev.install.in +++ b/debian/libclang-X.Y-dev.install.in @@ -1,6 +1,7 @@ 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/ diff --git a/debian/libclang-common-X.Y-dev.install.in b/debian/libclang-common-X.Y-dev.install.in index 5e8d0787..ba08e70c 100644 --- a/debian/libclang-common-X.Y-dev.install.in +++ b/debian/libclang-common-X.Y-dev.install.in @@ -1,6 +1,7 @@ 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@/ diff --git a/debian/liblldb-X.Y-dev.install.in b/debian/liblldb-X.Y-dev.install.in index 96c96b31..fc4f34b0 100644 --- a/debian/liblldb-X.Y-dev.install.in +++ b/debian/liblldb-X.Y-dev.install.in @@ -1,4 +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/lldb-X.Y.install.in b/debian/lldb-X.Y.install.in index 8f865554..b4a4629b 100644 --- a/debian/lldb-X.Y.install.in +++ b/debian/lldb-X.Y.install.in @@ -2,6 +2,8 @@ usr/bin/lldb-@LLVM_VERSION@ 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-server-@LLVM_VERSION@ usr/bin/lldb-mi-@LLVM_VERSION@ +usr/bin/lldb-argdumper-@LLVM_VERSION@ \ No newline at end of file diff --git a/debian/llvm-X.Y-dev.install.in b/debian/llvm-X.Y-dev.install.in index 813b6f2f..85f07ac5 100644 --- a/debian/llvm-X.Y-dev.install.in +++ b/debian/llvm-X.Y-dev.install.in @@ -1,6 +1,9 @@ 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@/ diff --git a/debian/rules b/debian/rules index be4f96e9..20dd6dd5 100755 --- a/debian/rules +++ b/debian/rules @@ -353,42 +353,16 @@ ifneq (${AUTOCONF_BUILD},yes) mv $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/clang-$(LLVM_VERSION) \ $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/clang endif - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/clang-cl - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/scan-build - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/scan-view - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/c-index-test - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/clang-tblgen - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/pp-trace +# internal tools, don't care rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/count rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/not rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/FileCheck - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/Reporter.py - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/ScanView.py - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/startfile.py - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/lli-child-target - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/lldb-argdumper - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/lldb-$(LLVM_VERSION_FULL) - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/lldb-mi-$(LLVM_VERSION_FULL) - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/lldb-server-$(LLVM_VERSION_FULL) - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/modularize - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/libexec/c++-analyzer - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/libexec/ccc-analyzer - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libclang*.so - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libLLVM*.so - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/liblldb*.so - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libclang.so.1 - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/liblldb.so.1 - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libPolly.a - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libPollyISL.a - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/clang/$(LLVM_VERSION_FULL)/*.txt +# Don't think it is used + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libPolly*a +# Probably useless rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/python2.7/site-packages/six.py - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/share/man/man1/scan-build.1 - rm -fr $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/share/clang/cmake/ - rm -fr $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/share/scan-view/ - rm -fr $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/docs/llvm/html/ - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/docs/llvm/html.tar.gz - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/share/scan-build/scanview.css - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/share/scan-build/sorttable.js +# Don't want to install lldb-3.8.0-3.8 binaries (probably a bug) + rm -f $(DEB_INST)/usr/bin/*$(LLVM_VERSION_FULL)* # Rename binaries mkdir -p $(DEB_INST)/usr/bin/ @@ -449,7 +423,7 @@ endif override_dh_shlibdeps: - cd $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/ && ln -s libLLVM-$(LLVM_VERSION).so.1 libLLVM-$(LLVM_VERSION).so +# cd $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/ && ln -s libLLVM-$(LLVM_VERSION).so.1 libLLVM-$(LLVM_VERSION).so LD_LIBRARY_PATH=$$LD_LIBRARY_PATH:$(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/ dh_shlibdeps override_dh_installman: From cf0c03051da8d3f893a1a7df4c7f7a596f7a5a92 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 4 Mar 2016 19:04:13 +0000 Subject: [PATCH 26/93] fix the changelog --- debian/changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 29b78b30..ff107d78 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,7 +1,7 @@ llvm-toolchain-3.8 (1:3.8-1) unstable; urgency=medium * New upstream release - * install missing file (TODO bug lldb) + * Install a missing library to unbreak lldb (Closes: #815809) -- Sylvestre Ledru Thu, 03 Mar 2016 21:16:21 +0100 From 651d5e531c0b2d0d7f125bee73a0da7a023336cf Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 5 Mar 2016 08:22:56 +0000 Subject: [PATCH 27/93] fix some lldb install issue --- debian/lldb-X.Y.install.in | 10 +++++----- debian/rules | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/debian/lldb-X.Y.install.in b/debian/lldb-X.Y.install.in index b4a4629b..40134b2e 100644 --- a/debian/lldb-X.Y.install.in +++ b/debian/lldb-X.Y.install.in @@ -1,9 +1,9 @@ -usr/bin/lldb-@LLVM_VERSION@ -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* +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@ \ No newline at end of file +usr/bin/lldb-argdumper-@LLVM_VERSION@ diff --git a/debian/rules b/debian/rules index 20dd6dd5..66eff7a1 100755 --- a/debian/rules +++ b/debian/rules @@ -362,7 +362,7 @@ endif # Probably useless rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/python2.7/site-packages/six.py # Don't want to install lldb-3.8.0-3.8 binaries (probably a bug) - rm -f $(DEB_INST)/usr/bin/*$(LLVM_VERSION_FULL)* + rm -f $(DEB_INST)/usr/bin/lldb-*-$(LLVM_VERSION_FULL)-* # Rename binaries mkdir -p $(DEB_INST)/usr/bin/ From 88168826025a353e06f45bd759488e24d4ce012a Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 5 Mar 2016 10:45:39 +0000 Subject: [PATCH 28/93] ok, let's ship it --- debian/lldb-X.Y.install.in | 6 +++--- debian/rules | 2 -- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/debian/lldb-X.Y.install.in b/debian/lldb-X.Y.install.in index 40134b2e..0baf795a 100644 --- a/debian/lldb-X.Y.install.in +++ b/debian/lldb-X.Y.install.in @@ -3,7 +3,7 @@ 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-@LLVM_VERSION@* +usr/bin/lldb-server-@LLVM_VERSION@* +usr/bin/lldb-mi-@LLVM_VERSION@* usr/bin/lldb-argdumper-@LLVM_VERSION@ diff --git a/debian/rules b/debian/rules index 66eff7a1..15bce969 100755 --- a/debian/rules +++ b/debian/rules @@ -361,8 +361,6 @@ endif rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libPolly*a # Probably useless rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/python2.7/site-packages/six.py -# Don't want to install lldb-3.8.0-3.8 binaries (probably a bug) - rm -f $(DEB_INST)/usr/bin/lldb-*-$(LLVM_VERSION_FULL)-* # Rename binaries mkdir -p $(DEB_INST)/usr/bin/ From bfbceeb38657f020a38e9dbb6eca8a11d1227e7a Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 5 Mar 2016 11:30:02 +0000 Subject: [PATCH 29/93] fix the cmake --- debian/clang-X.Y.install.in | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/debian/clang-X.Y.install.in b/debian/clang-X.Y.install.in index 2bb961f9..eabb0374 100644 --- a/debian/clang-X.Y.install.in +++ b/debian/clang-X.Y.install.in @@ -18,13 +18,12 @@ 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/lib/llvm-@LLVM_VERSION@/share/clang/cmake/ - 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@/lib/cmake/clang/*.cmake usr/share/llvm-@LLVM_VERSION@/cmake/ usr/bin/clang-@LLVM_VERSION@ usr/bin/clang++-@LLVM_VERSION@ From e2c6557046e87b6e9ace9dea0b581461b097d891 Mon Sep 17 00:00:00 2001 From: Gianfranco Costamagna Date: Mon, 7 Mar 2016 10:01:43 +0000 Subject: [PATCH 30/93] Disable polly on s390x --- debian/changelog | 6 ++++++ debian/rules | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index ff107d78..fb9ffc4d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +llvm-toolchain-3.8 (1:3.8-2) UNRELEASED; urgency=medium + + * Disable polly on s390x. + + -- Gianfranco Costamagna Mon, 07 Mar 2016 10:56:05 +0100 + llvm-toolchain-3.8 (1:3.8-1) unstable; urgency=medium * New upstream release diff --git a/debian/rules b/debian/rules index 15bce969..0ca78449 100755 --- a/debian/rules +++ b/debian/rules @@ -77,7 +77,7 @@ endif endif # Enable polly (or not) -ifeq (,$(filter $(DEB_HOST_ARCH), powerpc)) +ifeq (,$(filter $(DEB_HOST_ARCH), powerpc s390x)) POLLY_ENABLE=yes endif From 904f8cdfb8362984497a5635231aac92394dbbca Mon Sep 17 00:00:00 2001 From: Gianfranco Costamagna Date: Mon, 7 Mar 2016 12:31:32 +0000 Subject: [PATCH 31/93] Do not disable polly on s390x --- debian/changelog | 1 - debian/rules | 5 ++++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index fb9ffc4d..988477e8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,5 @@ llvm-toolchain-3.8 (1:3.8-2) UNRELEASED; urgency=medium - * Disable polly on s390x. -- Gianfranco Costamagna Mon, 07 Mar 2016 10:56:05 +0100 diff --git a/debian/rules b/debian/rules index 0ca78449..25f8de5f 100755 --- a/debian/rules +++ b/debian/rules @@ -77,7 +77,7 @@ endif endif # Enable polly (or not) -ifeq (,$(filter $(DEB_HOST_ARCH), powerpc s390x)) +ifeq (,$(filter $(DEB_HOST_ARCH), powerpc)) POLLY_ENABLE=yes endif @@ -331,6 +331,9 @@ endif 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/ + 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/ From e213b377c70a0edeebd5f07a08bce82d79f8a75a Mon Sep 17 00:00:00 2001 From: Gianfranco Costamagna Date: Mon, 7 Mar 2016 12:45:14 +0000 Subject: [PATCH 32/93] Fix polly checks --- debian/rules | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/debian/rules b/debian/rules index 25f8de5f..66878a91 100755 --- a/debian/rules +++ b/debian/rules @@ -77,8 +77,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))) From 4e201f6c4b69e3712535c6fdfbdd8c81e5e34662 Mon Sep 17 00:00:00 2001 From: Gianfranco Costamagna Date: Mon, 7 Mar 2016 12:45:42 +0000 Subject: [PATCH 33/93] Fix libllvm3.8 from Graham Inggs --- debian/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/control b/debian/control index ab889bc2..dff88817 100644 --- a/debian/control +++ b/debian/control @@ -270,7 +270,7 @@ Description: Modular compiler and toolchain technologies, IR interpreter Package: llvm-3.8-dev Architecture: any Depends: ${shlibs:Depends}, libffi-dev (>= 3.0.9), ${misc:Depends}, - llvm-3.8 (= ${binary:Version}), libtinfo-dev + 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 From b221173cddb2094d2924a5a5905a85ad14f0e65b Mon Sep 17 00:00:00 2001 From: Gianfranco Costamagna Date: Mon, 7 Mar 2016 12:45:48 +0000 Subject: [PATCH 34/93] Update changelog --- debian/changelog | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/debian/changelog b/debian/changelog index 988477e8..74bf5cc3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,14 @@ llvm-toolchain-3.8 (1:3.8-2) UNRELEASED; urgency=medium + * Team upload. + * Disable polly on s390x and fix polly check. + + [ 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 From b59d0b52f5b5b3ad65ace9f2d10290573d76681b Mon Sep 17 00:00:00 2001 From: Gianfranco Costamagna Date: Mon, 7 Mar 2016 12:51:37 +0000 Subject: [PATCH 35/93] Update changelog --- debian/changelog | 1 + 1 file changed, 1 insertion(+) diff --git a/debian/changelog b/debian/changelog index 74bf5cc3..1578d407 100644 --- a/debian/changelog +++ b/debian/changelog @@ -6,6 +6,7 @@ llvm-toolchain-3.8 (1:3.8-2) UNRELEASED; urgency=medium [ Sylvestre Ledru ] * Fix txt file installation issue, by putting a README.txt file with some explanation. + * Fix the cmake installation. [ Graham Inggs ] * Tighten llvm dev dependency (Closes: #814142). From 43c2efe17e5e468abd8cf8dc9d6a8087614a4dc2 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 7 Mar 2016 13:04:35 +0000 Subject: [PATCH 36/93] fix the cmake build --- debian/clang-X.Y.install.in | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/debian/clang-X.Y.install.in b/debian/clang-X.Y.install.in index eabb0374..f095a1aa 100644 --- a/debian/clang-X.Y.install.in +++ b/debian/clang-X.Y.install.in @@ -23,7 +23,9 @@ 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@/lib/cmake/clang/*.cmake usr/share/llvm-@LLVM_VERSION@/cmake/ +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@ From a3daeed38a5f8791a2af71345e731d8f5649b5a7 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 7 Mar 2016 13:04:45 +0000 Subject: [PATCH 37/93] improve the txt generation + comments --- debian/rules | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/debian/rules b/debian/rules index 66878a91..34101645 100755 --- a/debian/rules +++ b/debian/rules @@ -332,9 +332,10 @@ endif 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/ - 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 +# 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/ From 8588e6ddcf860ecf46a1787bf7d540b77f109247 Mon Sep 17 00:00:00 2001 From: Gianfranco Costamagna Date: Mon, 7 Mar 2016 13:15:03 +0000 Subject: [PATCH 38/93] Fix VCS fields --- debian/changelog | 3 ++- debian/control | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/debian/changelog b/debian/changelog index 1578d407..41484e46 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,7 +2,8 @@ llvm-toolchain-3.8 (1:3.8-2) UNRELEASED; 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. diff --git a/debian/control b/debian/control index dff88817..13e910cb 100644 --- a/debian/control +++ b/debian/control @@ -13,8 +13,8 @@ Build-Conflicts: oprofile, ocaml, libllvm-3.4-ocaml-dev, libllvm-3.5-ocaml-dev, libllvm-3.8-ocaml-dev Standards-Version: 3.9.6 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: http://svn.debian.org/viewsvn/pkg-llvm/llvm-toolchain/branches/3.8/ # ------------- clang ------------- From 98e3a8c4d63cd856af44ff54b53164b03678f4a5 Mon Sep 17 00:00:00 2001 From: Gianfranco Costamagna Date: Mon, 7 Mar 2016 13:15:35 +0000 Subject: [PATCH 39/93] switch to https link --- debian/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/control b/debian/control index 13e910cb..938c7f8e 100644 --- a/debian/control +++ b/debian/control @@ -14,7 +14,7 @@ Build-Conflicts: oprofile, ocaml, libllvm-3.4-ocaml-dev, libllvm-3.5-ocaml-dev, Standards-Version: 3.9.6 Homepage: http://www.llvm.org/ Vcs-Svn: svn://anonscm.debian.org/svn/pkg-llvm/llvm-toolchain/branches/3.8/ -Vcs-Browser: http://svn.debian.org/viewsvn/pkg-llvm/llvm-toolchain/branches/3.8/ +Vcs-Browser: https://svn.debian.org/viewsvn/pkg-llvm/llvm-toolchain/branches/3.8/ # ------------- clang ------------- From fdfc741264fc57ca1b97b3ad0e3197eda4c93c96 Mon Sep 17 00:00:00 2001 From: Gianfranco Costamagna Date: Tue, 8 Mar 2016 08:02:04 +0000 Subject: [PATCH 40/93] Update changelog --- debian/changelog | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index 41484e46..8b33dcb4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -llvm-toolchain-3.8 (1:3.8-2) UNRELEASED; urgency=medium +llvm-toolchain-3.8 (1:3.8-2) unstable; urgency=medium * Team upload. * Disable polly on s390x and fix polly check. @@ -7,7 +7,6 @@ llvm-toolchain-3.8 (1:3.8-2) UNRELEASED; urgency=medium [ Sylvestre Ledru ] * Fix txt file installation issue, by putting a README.txt file with some explanation. - * Fix the cmake installation. [ Graham Inggs ] * Tighten llvm dev dependency (Closes: #814142). From 2b97c8a523b2875f437c44a25619f635aafa5b94 Mon Sep 17 00:00:00 2001 From: Gianfranco Costamagna Date: Tue, 8 Mar 2016 10:20:56 +0000 Subject: [PATCH 41/93] Improved message for helpers --- debian/rules | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/rules b/debian/rules index 34101645..f83a2684 100755 --- a/debian/rules +++ b/debian/rules @@ -334,8 +334,8 @@ endif 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 + 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/ From 032fba6d17eab738b22c5d96a7b9e905a72c1f87 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 12 Mar 2016 14:08:38 +0000 Subject: [PATCH 42/93] if cmake is installed in /tmp/cmake/ uses it Used to build llvm on old ubuntu (precise) on the llvm.org/apt/ ci --- debian/changelog | 2 +- debian/rules | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 8b33dcb4..80d1dcf4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,7 +3,7 @@ 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. diff --git a/debian/rules b/debian/rules index f83a2684..df832d0b 100755 --- a/debian/rules +++ b/debian/rules @@ -205,6 +205,12 @@ override_dh_auto_configure: preconfigure rm -fr tools/clang/tools/extra cp -R -H clang-tools-extra tools/clang/tools/extra + # if cmake is installed in /tmp/cmake/ uses it + # Used to build llvm on old ubuntu (precise) on the llvm.org/apt/ ci + if test -d /tmp/cmake/bin/; then \ + export PATH=$$PATH:/tmp/cmake/bin; \ + fi + # TODO(axw) specify build type for CMake # TODO(axw) pass compiler flags, etc. From 7db5a410d0dc923f4fc36505d82cbbd33dfd2720 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 12 Mar 2016 18:55:23 +0000 Subject: [PATCH 43/93] change the order of the path declaration --- debian/rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/rules b/debian/rules index df832d0b..4ad6542e 100755 --- a/debian/rules +++ b/debian/rules @@ -208,7 +208,7 @@ override_dh_auto_configure: preconfigure # if cmake is installed in /tmp/cmake/ uses it # Used to build llvm on old ubuntu (precise) on the llvm.org/apt/ ci if test -d /tmp/cmake/bin/; then \ - export PATH=$$PATH:/tmp/cmake/bin; \ + export PATH=/tmp/cmake/bin:$$PATH; \ fi # TODO(axw) specify build type for CMake From 0d8cfe6881c5bc2ca7888e819c6e19301881cb5d Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 13 Mar 2016 17:25:37 +0000 Subject: [PATCH 44/93] Improve the cmake detection (used for llvm.org/apt) --- debian/changelog | 6 ++++++ debian/rules | 20 +++++++++----------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/debian/changelog b/debian/changelog index 80d1dcf4..721db4bc 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +llvm-toolchain-3.8 (1:3.8-3) UNRELEASED; urgency=medium + + * Improve the cmake detection (used for llvm.org/apt) + + -- Sylvestre Ledru Sun, 13 Mar 2016 18:25:13 +0100 + llvm-toolchain-3.8 (1:3.8-2) unstable; urgency=medium * Team upload. diff --git a/debian/rules b/debian/rules index 4ad6542e..011221ab 100755 --- a/debian/rules +++ b/debian/rules @@ -205,15 +205,13 @@ override_dh_auto_configure: preconfigure rm -fr tools/clang/tools/extra cp -R -H clang-tools-extra tools/clang/tools/extra - # if cmake is installed in /tmp/cmake/ uses it - # Used to build llvm on old ubuntu (precise) on the llvm.org/apt/ ci - if test -d /tmp/cmake/bin/; then \ - export PATH=/tmp/cmake/bin:$$PATH; \ - fi - - # TODO(axw) specify build type for CMake - # TODO(axw) pass compiler flags, etc. - + # if cmake is installed in /tmp/cmake/ uses it + # Used to build llvm on old ubuntu (precise) on the llvm.org/apt/ ci + CMAKE_BIN=cmake; \ + if test -f /tmp/cmake/bin/cmake; then \ + CMAKE_BIN=/tmp/cmake/bin/cmake; \ + fi; \ + echo "Using cmake: $$CMAKE_BIN"; \ if test $(AUTOCONF_BUILD) = yes; then \ cd $(TARGET_BUILD); \ $(PRE_PROCESS_CONF) \ @@ -236,8 +234,8 @@ override_dh_auto_configure: preconfigure $(CONFIGURE_EXTRA) \ CLANG_VENDOR=$(VENDOR) || { cat config.log tools/polly/config.log; exit 1; }; \ else \ - cd $(TARGET_BUILD) && \ - cmake ../ \ + cd $(TARGET_BUILD) && \ + $$CMAKE_BIN ../ \ -DCMAKE_INSTALL_PREFIX=/usr/lib/llvm-$(LLVM_VERSION) \ -DCMAKE_VERBOSE_MAKEFILE=ON \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ From 03b6cc12d26ff4ede5ab455c86b976e529d867d8 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 14 Mar 2016 11:01:30 +0000 Subject: [PATCH 45/93] with the spaces / tabs --- debian/rules | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/debian/rules b/debian/rules index 011221ab..761876b7 100755 --- a/debian/rules +++ b/debian/rules @@ -205,13 +205,13 @@ override_dh_auto_configure: preconfigure rm -fr tools/clang/tools/extra cp -R -H clang-tools-extra tools/clang/tools/extra - # if cmake is installed in /tmp/cmake/ uses it - # Used to build llvm on old ubuntu (precise) on the llvm.org/apt/ ci - CMAKE_BIN=cmake; \ - if test -f /tmp/cmake/bin/cmake; then \ - CMAKE_BIN=/tmp/cmake/bin/cmake; \ - fi; \ - echo "Using cmake: $$CMAKE_BIN"; \ + # if cmake is installed in /tmp/cmake/ uses it + # Used to build llvm on old ubuntu (precise) on the llvm.org/apt/ ci + CMAKE_BIN=cmake; \ + if test -f /tmp/cmake/bin/cmake; then \ + CMAKE_BIN=/tmp/cmake/bin/cmake; \ + fi; \ + echo "Using cmake: $$CMAKE_BIN"; \ if test $(AUTOCONF_BUILD) = yes; then \ cd $(TARGET_BUILD); \ $(PRE_PROCESS_CONF) \ @@ -234,8 +234,8 @@ override_dh_auto_configure: preconfigure $(CONFIGURE_EXTRA) \ CLANG_VENDOR=$(VENDOR) || { cat config.log tools/polly/config.log; exit 1; }; \ else \ - cd $(TARGET_BUILD) && \ - $$CMAKE_BIN ../ \ + cd $(TARGET_BUILD) && \ + $$CMAKE_BIN ../ \ -DCMAKE_INSTALL_PREFIX=/usr/lib/llvm-$(LLVM_VERSION) \ -DCMAKE_VERBOSE_MAKEFILE=ON \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ From 60980f013779330bdc9687248870db6d9b4e275c Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 28 Mar 2016 20:15:24 +0000 Subject: [PATCH 46/93] Preparation of 3.8.1 --- debian/changelog | 3 ++- debian/rules | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index 721db4bc..d08d9f46 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,6 @@ -llvm-toolchain-3.8 (1:3.8-3) UNRELEASED; urgency=medium +llvm-toolchain-3.8 (1:3.8.1-1) UNRELEASED; urgency=medium + * Preparation of 3.8.1 * Improve the cmake detection (used for llvm.org/apt) -- Sylvestre Ledru Sun, 13 Mar 2016 18:25:13 +0100 diff --git a/debian/rules b/debian/rules index 761876b7..68204e17 100755 --- a/debian/rules +++ b/debian/rules @@ -7,7 +7,7 @@ DEB_INST := $(CURDIR)/debian/tmp/ # 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') LLVM_VERSION := 3.8 -LLVM_VERSION_FULL := $(LLVM_VERSION).0 +LLVM_VERSION_FULL := $(LLVM_VERSION).1 SONAME_EXT := 1 # Manage the case when the version is 1:3.5~svn213052-1~exp1 or 1:3.4.2-1 DEBIAN_REVISION := $(shell dpkg-parsechangelog | sed -rne "s,^Version: 1:([0-9.]+)(~|-)(.*),\3,p") From bd33ffecedd34ea248a3b099b7f27580f3afd3de Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 9 May 2016 05:32:59 +0000 Subject: [PATCH 47/93] * 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) --- debian/changelog | 12 ++++++++++++ debian/llvm-X.Y-dev.install.in | 3 +-- debian/llvm-X.Y-dev.links.in | 1 + debian/patches/fix-cmake-config-prefix.diff | 21 +++++++++++++++++++++ 4 files changed, 35 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index d08d9f46..20a923a2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,15 @@ +llvm-toolchain-3.8 (1:3.8.1-2) unstable; urgency=medium + + [ 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) + + -- + llvm-toolchain-3.8 (1:3.8.1-1) UNRELEASED; urgency=medium * Preparation of 3.8.1 diff --git a/debian/llvm-X.Y-dev.install.in b/debian/llvm-X.Y-dev.install.in index 85f07ac5..d532f967 100644 --- a/debian/llvm-X.Y-dev.install.in +++ b/debian/llvm-X.Y-dev.install.in @@ -9,8 +9,7 @@ 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 usr/share/llvm-@LLVM_VERSION@/cmake/ - +debian/tmp/usr/lib/llvm-@LLVM_VERSION@/share/llvm/cmake/*.cmake utils/vim/indent/llvm-@LLVM_VERSION@.vim usr/share/vim/addons/indent/ diff --git a/debian/llvm-X.Y-dev.links.in b/debian/llvm-X.Y-dev.links.in index 622d436d..00d8187b 100644 --- a/debian/llvm-X.Y-dev.links.in +++ b/debian/llvm-X.Y-dev.links.in @@ -1,4 +1,5 @@ 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 diff --git a/debian/patches/fix-cmake-config-prefix.diff b/debian/patches/fix-cmake-config-prefix.diff index f9f94748..fd1d44ac 100644 --- a/debian/patches/fix-cmake-config-prefix.diff +++ b/debian/patches/fix-cmake-config-prefix.diff @@ -23,3 +23,24 @@ LLVM_CONFIG_CODE += set(_LLVM_LIBRARY_DIR "$${LLVM_INSTALL_PREFIX}\/lib") +--- a/cmake/modules/CMakeLists.txt ++++ b/cmake/modules/CMakeLists.txt +@@ -47,16 +47,7 @@ file(COPY . + ) + + # Generate LLVMConfig.cmake for the install tree. +-set(LLVM_CONFIG_CODE " +-# Compute the installation prefix from this LLVMConfig.cmake file location. +-get_filename_component(LLVM_INSTALL_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)") +-# Construct the proper number of get_filename_component(... PATH) +-# calls to compute the installation prefix. +-string(REGEX REPLACE "/" ";" _count "${LLVM_INSTALL_PACKAGE_DIR}") +-foreach(p ${_count}) +- set(LLVM_CONFIG_CODE "${LLVM_CONFIG_CODE} +-get_filename_component(LLVM_INSTALL_PREFIX \"\${LLVM_INSTALL_PREFIX}\" PATH)") +-endforeach(p) ++set(LLVM_CONFIG_CODE "set(LLVM_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\")") + set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/include") + set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/lib\${LLVM_LIBDIR_SUFFIX}") + set(LLVM_CONFIG_CMAKE_DIR "\${LLVM_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}") + From 65c51c9a32e6a518a1b425dd37b8e8c03b49584b Mon Sep 17 00:00:00 2001 From: Pablo Oliveira Date: Mon, 9 May 2016 15:04:00 +0000 Subject: [PATCH 48/93] * 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). --- debian/changelog | 6 ++++++ debian/control | 2 +- debian/liblldb-X.Y.links.in | 1 - debian/patches/lldb-soname.diff | 13 +++++++++++++ debian/prepare-new-release.sh | 2 +- debian/python-lldb-X.Y.links.in | 5 +++-- debian/rules | 4 ++-- 7 files changed, 26 insertions(+), 7 deletions(-) diff --git a/debian/changelog b/debian/changelog index 20a923a2..335ad2ab 100644 --- a/debian/changelog +++ b/debian/changelog @@ -8,6 +8,12 @@ llvm-toolchain-3.8 (1:3.8.1-2) unstable; urgency=medium 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) + -- llvm-toolchain-3.8 (1:3.8.1-1) UNRELEASED; urgency=medium diff --git a/debian/control b/debian/control index 938c7f8e..4350049f 100644 --- a/debian/control +++ b/debian/control @@ -395,7 +395,7 @@ Description: Next generation, high-performance debugger, debugging libraries Package: python-lldb-3.8 Section: python Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, python +Depends: ${shlibs:Depends}, ${misc:Depends}, liblldb-3.8, lldb-3.8, python 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 diff --git a/debian/liblldb-X.Y.links.in b/debian/liblldb-X.Y.links.in index bea86baa..a222fbc6 100644 --- a/debian/liblldb-X.Y.links.in +++ b/debian/liblldb-X.Y.links.in @@ -1,4 +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 usr/lib/python2.7/dist-packages/lldb-@LLVM_VERSION@/_lldb.so usr/lib/@DEB_HOST_MULTIARCH@/liblldb-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/liblldb.so.1 diff --git a/debian/patches/lldb-soname.diff b/debian/patches/lldb-soname.diff index f702e06f..13979b0a 100644 --- a/debian/patches/lldb-soname.diff +++ b/debian/patches/lldb-soname.diff @@ -54,3 +54,16 @@ endif() if (LLDB_WRAP_PYTHON) + +--- a/lldb/scripts/Python/finishSwigPythonLLDB.py ++++ b/lldb/scripts/Python/finishSwigPythonLLDB.py +@@ -378,7 +378,7 @@ + if eOSType == utilsOsType.EnumOsType.Darwin: + strLibFileExtn = ".dylib" + else: +- strLibFileExtn = "so" ++ strLibFileExtn = "-3.8.so.1" + strSrc = os.path.join("lib", "liblldb" + strLibFileExtn) + + bOk, strErrMsg = make_symlink(vDictArgs, vstrFrameworkPythonDir, strSrc, strTarget) + diff --git a/debian/prepare-new-release.sh b/debian/prepare-new-release.sh index 8745c3b4..b604fd92 100644 --- a/debian/prepare-new-release.sh +++ b/debian/prepare-new-release.sh @@ -9,7 +9,7 @@ for F in $LIST; do TARGET=`echo $F|sed -e "s|$ORIG_VERSION|$TARGET_VERSION|g"` svn mv $F $TARGET done -LIST=`ls debian/*$TARGET_VERSION* debian/control debian/*.install debian/*.links debian/orig-tar.sh debian/rules debian/patches/clang-analyzer-force-version.diff debian/patches/clang-format-version.diff debian/patches/python-clangpath.diff debian/patches/scan-build-clang-path.diff` +LIST=`ls debian/*$TARGET_VERSION* debian/control debian/*.install debian/*.links debian/orig-tar.sh debian/rules debian/patches/clang-analyzer-force-version.diff debian/patches/clang-format-version.diff debian/patches/lldb-soname.diff debian/patches/python-clangpath.diff debian/patches/scan-build-clang-path.diff` for F in $LIST; do sed -i -e "s|$ORIG_VERSION_2|$TARGET_VERSION_2|g" $F sed -i -e "s|$ORIG_VERSION|$TARGET_VERSION|g" $F diff --git a/debian/python-lldb-X.Y.links.in b/debian/python-lldb-X.Y.links.in index f3eb99bb..bce077f7 100644 --- a/debian/python-lldb-X.Y.links.in +++ b/debian/python-lldb-X.Y.links.in @@ -1,5 +1,6 @@ -usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION_FULL@.so.1 usr/lib/python2.7/dist-packages/lldb/libLLVM-@LLVM_VERSION_FULL@.so.1 -usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION_FULL@.so.1 usr/lib/python2.7/dist-packages/lldb/libLLVM-@LLVM_VERSION@.so.1 +usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION_FULL@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/python2.7/site-packages/lldb/libLLVM-@LLVM_VERSION_FULL@.so.1 +usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION_FULL@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/python2.7/site-packages/lldb/libLLVM-@LLVM_VERSION@.so.1 +usr/lib/@DEB_HOST_MULTIARCH@/liblldb-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/python2.7/site-packages/lldb/_lldb.so usr/lib/llvm-@LLVM_VERSION@/lib/python2.7/site-packages/lldb/ usr/lib/python2.7/dist-packages/lldb diff --git a/debian/rules b/debian/rules index 68204e17..e0ac9a0d 100755 --- a/debian/rules +++ b/debian/rules @@ -411,8 +411,8 @@ endif # Change CMake module dir sed -i 's|LLVM_CMAKE_DIR "/usr/lib/llvm-$(LLVM_VERSION)/share/llvm/cmake"|LLVM_CMAKE_DIR "/usr/share/llvm-$(LLVM_VERSION)/cmake"|' $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/share/llvm/cmake/LLVMConfig.cmake -# Managed in lldb-X.Y.links.in - rm -f $(CURDIR)/$(TARGET_BUILD)/$(BUILD_DIR)/lib/python*/site-packages/lldb/_lldb.so +# Managed in python-lldb-X.Y.links.in + rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/python*/site-packages/lldb/_lldb.so # Manage the polly files. Sometimes, we build them. Sometimes not. if test "$(POLLY_ENABLE)" = yes; then \ From 10380241cc68ee232c93e59bffbb9cad6287082b Mon Sep 17 00:00:00 2001 From: Pablo Oliveira Date: Mon, 9 May 2016 17:28:05 +0000 Subject: [PATCH 49/93] fix 3.8/debian/patches/lldb-soname.diff --- debian/patches/lldb-soname.diff | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/debian/patches/lldb-soname.diff b/debian/patches/lldb-soname.diff index 13979b0a..e4b6922f 100644 --- a/debian/patches/lldb-soname.diff +++ b/debian/patches/lldb-soname.diff @@ -61,9 +61,8 @@ if eOSType == utilsOsType.EnumOsType.Darwin: strLibFileExtn = ".dylib" else: -- strLibFileExtn = "so" +- strLibFileExtn = ".so" + strLibFileExtn = "-3.8.so.1" strSrc = os.path.join("lib", "liblldb" + strLibFileExtn) bOk, strErrMsg = make_symlink(vDictArgs, vstrFrameworkPythonDir, strSrc, strTarget) - From 2ecd07d08cdc465a3d76f980cc7c5057f53b4cf4 Mon Sep 17 00:00:00 2001 From: Gianfranco Costamagna Date: Wed, 11 May 2016 09:39:42 +0000 Subject: [PATCH 50/93] Fix changelog, make python-lldb-3.8 depend on liblldb-3.8-dev --- debian/changelog | 14 ++++++++------ debian/control | 5 +++-- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/debian/changelog b/debian/changelog index 335ad2ab..c06f9022 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -llvm-toolchain-3.8 (1:3.8.1-2) unstable; urgency=medium +llvm-toolchain-3.8 (1:3.8.1-1) UNRELEASED; urgency=medium [ Brad King ] * Install cmake files in usr/share/llvm-@LLVM_VERSION@/cmake/ instead of @@ -14,13 +14,15 @@ llvm-toolchain-3.8 (1:3.8.1-2) unstable; urgency=medium * Fix liblldb suffix in lldb/scripts/Python/finishSwigPythonLLDB.py (Closes: #813798) - -- - -llvm-toolchain-3.8 (1:3.8.1-1) UNRELEASED; urgency=medium - - * Preparation of 3.8.1 + [ Sylvestre Ledru ] * Improve the cmake detection (used for llvm.org/apt) + [ 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 + -- Sylvestre Ledru Sun, 13 Mar 2016 18:25:13 +0100 llvm-toolchain-3.8 (1:3.8-2) unstable; urgency=medium diff --git a/debian/control b/debian/control index 4350049f..8a40c24a 100644 --- a/debian/control +++ b/debian/control @@ -354,7 +354,8 @@ Description: Modular compiler and toolchain technologies, examples Package: lldb-3.8 Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 mips mipsel # ia64 mips mipsel hurd powerpc ppc64el have been removed -Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm3.8 (= ${binary:Version}), python, llvm-3.8-dev, python-lldb-3.8 +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 @@ -395,7 +396,7 @@ Description: Next generation, high-performance debugger, debugging libraries Package: python-lldb-3.8 Section: python Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, liblldb-3.8, lldb-3.8, python +Depends: ${shlibs:Depends}, ${misc:Depends}, liblldb-3.8-dev, python 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 From 09b0fb388ecb5c585d2d7a725bf55e29aa3d3750 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Wed, 25 May 2016 09:18:12 +0000 Subject: [PATCH 51/93] Fix an issue with scan-view (Closes: #825101) --- debian/changelog | 7 +++++-- debian/patches/scan-view-fix-path.diff | 11 +++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 debian/patches/scan-view-fix-path.diff diff --git a/debian/changelog b/debian/changelog index c06f9022..a05b29df 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -llvm-toolchain-3.8 (1:3.8.1-1) UNRELEASED; urgency=medium +llvm-toolchain-3.8 (1:3.8-3) unstable; urgency=medium [ Brad King ] * Install cmake files in usr/share/llvm-@LLVM_VERSION@/cmake/ instead of @@ -23,7 +23,10 @@ llvm-toolchain-3.8 (1:3.8.1-1) UNRELEASED; urgency=medium * Unbreak circular dependency by Suggesting the python binding from liblldb-3.8-dev - -- Sylvestre Ledru Sun, 13 Mar 2016 18:25:13 +0100 + [ Alexis La Goutte ] + * Fix an issue with scan-view (Closes: #825101) + + -- Sylvestre Ledru Wed, 25 May 2016 11:05:18 +0200 llvm-toolchain-3.8 (1:3.8-2) unstable; urgency=medium diff --git a/debian/patches/scan-view-fix-path.diff b/debian/patches/scan-view-fix-path.diff new file mode 100644 index 00000000..0db8033d --- /dev/null +++ b/debian/patches/scan-view-fix-path.diff @@ -0,0 +1,11 @@ +--- llvm-toolchain-snapshot_3.8~svn253186.orig/clang/tools/scan-view/bin/scan-view.old 2016-05-23 15:27:03.278422015 +0200 ++++ llvm-toolchain-snapshot_3.8~svn253186/clang/tools/scan-view/bin/scan-view 2016-05-23 15:34:30.517953399 +0200 +@@ -61,7 +61,7 @@ + + def run(port, options, root): + # Prefer to look relative to the installed binary +- share = os.path.dirname(__file__) + "/../share/scan-view" ++ share = os.path.dirname(__file__) + "/../share/" + if not os.path.isdir(share): + # Otherwise look relative to the source + share = os.path.dirname(__file__) + "/../../scan-view/share" From 01aab1a6e7280d8eeff97ec1615ca0fe9c8665e3 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Wed, 25 May 2016 15:06:37 +0000 Subject: [PATCH 52/93] add the missing patch --- debian/patches/series | 1 + 1 file changed, 1 insertion(+) diff --git a/debian/patches/series b/debian/patches/series index 6555d271..00ea8bff 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -39,3 +39,4 @@ clang-analyzer-force-version.diff fix-cmake-config-prefix.diff llvm25468-lldb-swig-format-security.diff llvm26003-sanitizer-check-env.diff +scan-view-fix-path.diff From fe8484905abb017761904f4704a36889b9e6bf44 Mon Sep 17 00:00:00 2001 From: Pablo Oliveira Date: Thu, 26 May 2016 11:32:03 +0000 Subject: [PATCH 53/93] Fix bug 26158 - clang packages don't provide man pages in 3.7 and 3.8 --- debian/clang-X.Y.manpages.in | 2 +- debian/rules | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) 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/rules b/debian/rules index e0ac9a0d..6b055e98 100755 --- a/debian/rules +++ b/debian/rules @@ -269,7 +269,7 @@ override_dh_prep: build_doc build_doc: cd $(CURDIR)/docs && make -f Makefile.sphinx && make -f Makefile.sphinx man - cd $(CURDIR)/tools/clang/docs && make -f Makefile.sphinx + cd $(CURDIR)/clang/docs && make -f Makefile.sphinx && make -f Makefile.sphinx man # Rename manpages d=$(CURDIR)/docs/_build/man/; \ @@ -278,6 +278,8 @@ build_doc: echo "$$f"|grep $(LLVM_VERSION) || mv $$f `echo $$f|sed "s|\.1|-$(LLVM_VERSION).1|"`; \ done + cd $(CURDIR)/clang/docs/_build/man/; mv clang.1 clang-$(LLVM_VERSION).1 + # Remove the copy of jquery. See bug #701087 for d in $(CURDIR)/clang/docs/_build/html/_static/ $(CURDIR)/docs/_build/html/_static/; do \ cd $$d && rm -f jquery.js && ln -s /usr/share/javascript/jquery/jquery.js; \ @@ -380,8 +382,6 @@ endif 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 (exept that tablegen does not exist for indent From f06d6b78c8cac14a120aa2c7c3c3cf9e7dec660f Mon Sep 17 00:00:00 2001 From: Pablo Oliveira Date: Thu, 26 May 2016 15:31:58 +0000 Subject: [PATCH 54/93] Update changelog --- debian/changelog | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index a05b29df..ca40f8fc 100644 --- a/debian/changelog +++ b/debian/changelog @@ -13,6 +13,7 @@ llvm-toolchain-3.8 (1:3.8-3) unstable; urgency=medium 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 [ Sylvestre Ledru ] * Improve the cmake detection (used for llvm.org/apt) @@ -26,7 +27,7 @@ llvm-toolchain-3.8 (1:3.8-3) unstable; urgency=medium [ Alexis La Goutte ] * Fix an issue with scan-view (Closes: #825101) - -- Sylvestre Ledru Wed, 25 May 2016 11:05:18 +0200 + -- Sylvestre Ledru Thu, 26 May 2016 17:30:00 +0200 llvm-toolchain-3.8 (1:3.8-2) unstable; urgency=medium From 4fa55bcea3bab172a7af3e69cd003ca60ef0b7ac Mon Sep 17 00:00:00 2001 From: Pablo Oliveira Date: Thu, 26 May 2016 16:11:55 +0000 Subject: [PATCH 55/93] Add python-six dependency to 3.8 --- debian/changelog | 1 + debian/control | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index ca40f8fc..a08ffc3f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -14,6 +14,7 @@ llvm-toolchain-3.8 (1:3.8-3) unstable; urgency=medium * 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). [ Sylvestre Ledru ] * Improve the cmake detection (used for llvm.org/apt) diff --git a/debian/control b/debian/control index 8a40c24a..2a3b943c 100644 --- a/debian/control +++ b/debian/control @@ -6,7 +6,7 @@ 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-sphinx, ocaml-nox, binutils-dev, + libedit-dev, swig, python-six, python-sphinx, ocaml-nox, binutils-dev, libjsoncpp-dev, lcov, procps, help2man, dh-ocaml, zlib1g-dev Build-Conflicts: oprofile, ocaml, libllvm-3.4-ocaml-dev, libllvm-3.5-ocaml-dev, @@ -396,7 +396,7 @@ Description: Next generation, high-performance debugger, debugging libraries Package: python-lldb-3.8 Section: python Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, liblldb-3.8-dev, python +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 From e1a7801186a27bdbebf6f55405af6d763e353835 Mon Sep 17 00:00:00 2001 From: Pablo Oliveira Date: Fri, 27 May 2016 09:00:57 +0000 Subject: [PATCH 56/93] Refresh patches --- debian/patches/lldb-soname.diff | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/debian/patches/lldb-soname.diff b/debian/patches/lldb-soname.diff index e4b6922f..1b0263b8 100644 --- a/debian/patches/lldb-soname.diff +++ b/debian/patches/lldb-soname.diff @@ -54,15 +54,14 @@ endif() if (LLDB_WRAP_PYTHON) - --- a/lldb/scripts/Python/finishSwigPythonLLDB.py +++ b/lldb/scripts/Python/finishSwigPythonLLDB.py -@@ -378,7 +378,7 @@ +@@ -379,7 +379,7 @@ if eOSType == utilsOsType.EnumOsType.Darwin: strLibFileExtn = ".dylib" else: - strLibFileExtn = ".so" + strLibFileExtn = "-3.8.so.1" - strSrc = os.path.join("lib", "liblldb" + strLibFileExtn) + strSrc = os.path.join(vstrLldbLibDir, "liblldb" + strLibFileExtn) bOk, strErrMsg = make_symlink(vDictArgs, vstrFrameworkPythonDir, strSrc, strTarget) From 63a718e5239bd814034f3f78362ba177fcb9419c Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Wed, 8 Jun 2016 09:20:13 +0000 Subject: [PATCH 57/93] * New RC release * Improve the cmake detection (used for llvm.org/apt) * Standards-Version updated to 3.9.8 * Ignore outdated-autotools-helper-file --- debian/changelog | 10 ++++++---- debian/control | 2 +- debian/source.lintian-overrides | 4 ++++ 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/debian/changelog b/debian/changelog index a08ffc3f..7db663e0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,9 @@ -llvm-toolchain-3.8 (1:3.8-3) unstable; urgency=medium +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 @@ -16,9 +21,6 @@ llvm-toolchain-3.8 (1:3.8-3) unstable; urgency=medium * Fix LLVM bug 26158 - clang packages don't provide man pages * Add python-six as a dependency of python-lldb (thanks to Askar Safin). - [ Sylvestre Ledru ] - * Improve the cmake detection (used for llvm.org/apt) - [ Gianfranco Costamagna ] * Make python-lldb-3.8 depend on lldb-3.8-dev, to pick all the required dependencies diff --git a/debian/control b/debian/control index 2a3b943c..bd67f22f 100644 --- a/debian/control +++ b/debian/control @@ -11,7 +11,7 @@ Build-Depends: debhelper (>= 9.0), flex, bison, dejagnu, tcl, expect, lcov, procps, help2man, dh-ocaml, zlib1g-dev Build-Conflicts: oprofile, ocaml, libllvm-3.4-ocaml-dev, libllvm-3.5-ocaml-dev, libllvm-3.8-ocaml-dev -Standards-Version: 3.9.6 +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/ 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 + From 6b0ab895c1e9923349b1a3dc694586a40358bc42 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 11 Jun 2016 14:54:50 +0000 Subject: [PATCH 58/93] 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. --- debian/changelog | 8 ++++++++ debian/rules | 1 + 2 files changed, 9 insertions(+) diff --git a/debian/changelog b/debian/changelog index 7db663e0..02b4cf0d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +llvm-toolchain-3.8 (1:3.8.1~+rc1-1~exp2) UNRELEASED; urgency=medium + + [ 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. + + -- Sylvestre Ledru Sat, 11 Jun 2016 16:53:04 +0200 + llvm-toolchain-3.8 (1:3.8.1~+rc1-1~exp1) experimental; urgency=medium * New RC release diff --git a/debian/rules b/debian/rules index 6b055e98..d7fb9ba0 100755 --- a/debian/rules +++ b/debian/rules @@ -73,6 +73,7 @@ ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' bin ifneq (,$(findstring $(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 endif endif From 006aa4f096b8f72ee6f54e7b3e531aa26300b373 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 11 Jun 2016 20:23:17 +0000 Subject: [PATCH 59/93] only run lldb when doing the code coverage (too many issues otherwise) --- debian/rules | 2 ++ 1 file changed, 2 insertions(+) diff --git a/debian/rules b/debian/rules index d7fb9ba0..de8a9656 100755 --- a/debian/rules +++ b/debian/rules @@ -484,8 +484,10 @@ endif # LLDB tests (CMake) ifeq (,$(filter $(DEB_HOST_ARCH), $(LLDB_DISABLE_ARCHS) armhf armel)) +ifneq (,$(filter codecoverage,$(DEB_BUILD_OPTIONS))) $(MAKE) $(NJOBS) -C $(TARGET_BUILD) check-lldb || true endif +endif # Polly tests (CMake) ifeq (${POLLY_ENABLE},yes) From 8d7b6ea7807431d3a8b7946225614ff24aa3a2d3 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 12 Jun 2016 16:26:58 +0000 Subject: [PATCH 60/93] remove trailing whitespaces --- debian/changelog | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index 02b4cf0d..3648bac2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -26,7 +26,7 @@ llvm-toolchain-3.8 (1:3.8.1~+rc1-1~exp1) experimental; urgency=medium 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 + * 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 ] @@ -714,7 +714,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 From 833df9a3db2cc8a2a746c33aa9ebccad24c56fe0 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 12 Jun 2016 16:27:27 +0000 Subject: [PATCH 61/93] Followup to fix the cmake install (Closes: #819072) --- debian/changelog | 3 +++ debian/rules | 3 +++ 2 files changed, 6 insertions(+) diff --git a/debian/changelog b/debian/changelog index 3648bac2..f8494ffe 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,9 @@ llvm-toolchain-3.8 (1:3.8.1~+rc1-1~exp2) UNRELEASED; urgency=medium * 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) + -- Sylvestre Ledru Sat, 11 Jun 2016 16:53:04 +0200 llvm-toolchain-3.8 (1:3.8.1~+rc1-1~exp1) experimental; urgency=medium diff --git a/debian/rules b/debian/rules index de8a9656..bc784aae 100755 --- a/debian/rules +++ b/debian/rules @@ -412,6 +412,9 @@ endif # Change CMake module dir sed -i 's|LLVM_CMAKE_DIR "/usr/lib/llvm-$(LLVM_VERSION)/share/llvm/cmake"|LLVM_CMAKE_DIR "/usr/share/llvm-$(LLVM_VERSION)/cmake"|' $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/share/llvm/cmake/LLVMConfig.cmake +# Disable CMake's package validation checks for target files that we may remove. + sed -i '/_IMPORT_CHECK_TARGETS \(Polly\|sancov\)/ {s|^|#|}' $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/share/llvm/cmake/LLVMExports-*.cmake + # Managed in python-lldb-X.Y.links.in rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/python*/site-packages/lldb/_lldb.so From 6e1f7d19fb36f986267e5006c89966d75ed984f0 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 12 Jun 2016 16:27:42 +0000 Subject: [PATCH 62/93] remove trailing whitespaces --- debian/changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index f8494ffe..8f569f4c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,7 +5,7 @@ llvm-toolchain-3.8 (1:3.8.1~+rc1-1~exp2) UNRELEASED; urgency=medium g++ most of the time, therefore we need to set -Wl,-fuse-ld=gold. [ Brad King ] - * Followup to fix the cmake install (Closes: #819072) + * Followup to fix the cmake install (Closes: #819072) -- Sylvestre Ledru Sat, 11 Jun 2016 16:53:04 +0200 From 038f86cc32a7a330d2a3eb6750685d0b18b9713d Mon Sep 17 00:00:00 2001 From: Pablo Oliveira Date: Tue, 21 Jun 2016 09:38:34 +0000 Subject: [PATCH 63/93] Enable FPXX on mips by default (3.8) --- debian/changelog | 3 +++ debian/patches/mips-fpxx-enable.diff | 14 ++++++++++++++ debian/patches/series | 1 + 3 files changed, 18 insertions(+) create mode 100644 debian/patches/mips-fpxx-enable.diff diff --git a/debian/changelog b/debian/changelog index 8f569f4c..a286e7fd 100644 --- a/debian/changelog +++ b/debian/changelog @@ -7,6 +7,9 @@ llvm-toolchain-3.8 (1:3.8.1~+rc1-1~exp2) UNRELEASED; urgency=medium [ Brad King ] * Followup to fix the cmake install (Closes: #819072) + [ YunQiang Su ] + * Enable FPXX by default on mips/mipsel (Closes: #826749) + -- Sylvestre Ledru Sat, 11 Jun 2016 16:53:04 +0200 llvm-toolchain-3.8 (1:3.8.1~+rc1-1~exp1) experimental; urgency=medium diff --git a/debian/patches/mips-fpxx-enable.diff b/debian/patches/mips-fpxx-enable.diff new file mode 100644 index 00000000..ba119c02 --- /dev/null +++ b/debian/patches/mips-fpxx-enable.diff @@ -0,0 +1,14 @@ +--- a/clang/lib/Driver/Tools.cpp ++++ b/clang/lib/Driver/Tools.cpp +@@ -7172,11 +7172,6 @@ + + bool mips::isFPXXDefault(const llvm::Triple &Triple, StringRef CPUName, + StringRef ABIName, mips::FloatABI FloatABI) { +- if (Triple.getVendor() != llvm::Triple::ImaginationTechnologies && +- Triple.getVendor() != llvm::Triple::MipsTechnologies && +- !Triple.isAndroid()) +- return false; +- + if (ABIName != "32") + return false; + diff --git a/debian/patches/series b/debian/patches/series index 00ea8bff..96d0ea2d 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -40,3 +40,4 @@ fix-cmake-config-prefix.diff llvm25468-lldb-swig-format-security.diff llvm26003-sanitizer-check-env.diff scan-view-fix-path.diff +mips-fpxx-enable.diff From 37e0424e365daa0b489e3d8ed2186256308f5048 Mon Sep 17 00:00:00 2001 From: Pablo Oliveira Date: Tue, 21 Jun 2016 09:55:37 +0000 Subject: [PATCH 64/93] Fix mips-fpxx-enable patch for 3.8 --- debian/patches/mips-fpxx-enable.diff | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/debian/patches/mips-fpxx-enable.diff b/debian/patches/mips-fpxx-enable.diff index ba119c02..0afdd263 100644 --- a/debian/patches/mips-fpxx-enable.diff +++ b/debian/patches/mips-fpxx-enable.diff @@ -1,14 +1,12 @@ --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp -@@ -7172,11 +7172,6 @@ +@@ -6705,10 +6705,6 @@ bool mips::isFPXXDefault(const llvm::Triple &Triple, StringRef CPUName, StringRef ABIName, mips::FloatABI FloatABI) { - if (Triple.getVendor() != llvm::Triple::ImaginationTechnologies && -- Triple.getVendor() != llvm::Triple::MipsTechnologies && -- !Triple.isAndroid()) +- Triple.getVendor() != llvm::Triple::MipsTechnologies) - return false; - if (ABIName != "32") return false; - From ade0fed9fe2a5e96e1ce7ee1109d71062ed28d53 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 26 Jun 2016 06:33:35 +0000 Subject: [PATCH 65/93] fix the gold declaration --- debian/rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/rules b/debian/rules index bc784aae..539ac42a 100755 --- a/debian/rules +++ b/debian/rules @@ -240,7 +240,7 @@ override_dh_auto_configure: preconfigure -DCMAKE_INSTALL_PREFIX=/usr/lib/llvm-$(LLVM_VERSION) \ -DCMAKE_VERBOSE_MAKEFILE=ON \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DCMAKE_CXX_FLAGS=$(CXXFLAGS_EXTRA) \ + -DCMAKE_CXX_FLAGS="$(CXXFLAGS_EXTRA)" \ -DLLVM_LINK_LLVM_DYLIB=ON \ -DLLVM_VERSION_SUFFIX= \ -DLLVM_ENABLE_SPHINX=ON \ From 63b748862b0ed72a27226a1e4dc3893dee366d52 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Tue, 28 Jun 2016 12:42:10 +0000 Subject: [PATCH 66/93] 3.8.1-1 --- debian/changelog | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index a286e7fd..4d066710 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,6 @@ -llvm-toolchain-3.8 (1:3.8.1~+rc1-1~exp2) UNRELEASED; urgency=medium +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 @@ -10,7 +12,7 @@ llvm-toolchain-3.8 (1:3.8.1~+rc1-1~exp2) UNRELEASED; urgency=medium [ YunQiang Su ] * Enable FPXX by default on mips/mipsel (Closes: #826749) - -- Sylvestre Ledru Sat, 11 Jun 2016 16:53:04 +0200 + -- Sylvestre Ledru Thu, 23 Jun 2016 08:49:29 +0200 llvm-toolchain-3.8 (1:3.8.1~+rc1-1~exp1) experimental; urgency=medium From 68d94d3998b420df9ad6c5bef0704828781be9af Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Tue, 28 Jun 2016 12:45:48 +0000 Subject: [PATCH 67/93] Add a symlink from usr/lib/llvm-3.8/share/llvm/cmake pointing to usr/share/llvm-3.8/cmake --- debian/changelog | 7 +++++++ debian/llvm-X.Y-dev.links.in | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/debian/changelog b/debian/changelog index 4d066710..989a3fa6 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +llvm-toolchain-3.8 (1:3.8.1-2) UNRELEASED; urgency=medium + + * Add a symlink from usr/lib/llvm-3.8/share/llvm/cmake + pointing to usr/share/llvm-3.8/cmake + + -- 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 diff --git a/debian/llvm-X.Y-dev.links.in b/debian/llvm-X.Y-dev.links.in index 00d8187b..7a1bea20 100644 --- a/debian/llvm-X.Y-dev.links.in +++ b/debian/llvm-X.Y-dev.links.in @@ -3,10 +3,14 @@ usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLV 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@/ 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 From 892e8af844e8d30a91b12b45cc596608ff91d1dc Mon Sep 17 00:00:00 2001 From: Gianfranco Costamagna Date: Thu, 30 Jun 2016 12:50:09 +0000 Subject: [PATCH 68/93] Fix python-lldb-3.8 and don't build it where liblld is not available --- debian/changelog | 4 ++++ debian/control | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 989a3fa6..930c06e6 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,12 @@ llvm-toolchain-3.8 (1:3.8.1-2) UNRELEASED; 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 diff --git a/debian/control b/debian/control index bd67f22f..7a9d212e 100644 --- a/debian/control +++ b/debian/control @@ -395,7 +395,7 @@ Description: Next generation, high-performance debugger, debugging libraries Package: python-lldb-3.8 Section: python -Architecture: any +Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 mips mipsel 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} From 7b1c03a91ae1a386db4d5eddc809220b9535a492 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 1 Jul 2016 11:56:51 +0000 Subject: [PATCH 69/93] uploaded --- debian/changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 930c06e6..a83bbab0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -llvm-toolchain-3.8 (1:3.8.1-2) UNRELEASED; urgency=medium +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 From 12583c0028500157a7256a6adea6c62ca6fdf39a Mon Sep 17 00:00:00 2001 From: Gianfranco Costamagna Date: Fri, 1 Jul 2016 12:45:24 +0000 Subject: [PATCH 70/93] Fix newline in mips fpxx patch --- debian/patches/mips-fpxx-enable.diff | 1 + 1 file changed, 1 insertion(+) diff --git a/debian/patches/mips-fpxx-enable.diff b/debian/patches/mips-fpxx-enable.diff index 0afdd263..7c6d14e3 100644 --- a/debian/patches/mips-fpxx-enable.diff +++ b/debian/patches/mips-fpxx-enable.diff @@ -10,3 +10,4 @@ - if (ABIName != "32") return false; + From 2b69b184b190e76f5879431d77efb5066388bdfb Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 2 Jul 2016 19:48:27 +0000 Subject: [PATCH 71/93] Add -gsplit-dwarf to CXXFLAGS to workaround the memory allocation issue on i386 (hopefully) --- debian/changelog | 7 +++++++ debian/rules | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index a83bbab0..e84a3704 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +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 ] diff --git a/debian/rules b/debian/rules index 539ac42a..3917f115 100755 --- a/debian/rules +++ b/debian/rules @@ -30,7 +30,7 @@ DEB_HOST_ARCH = $(shell dpkg-architecture -qDEB_HOST_ARCH) OCAML_STDLIB_DIR ?= $(shell ocamlc -where) LDFLAGS_EXTRA = -CXXFLAGS_EXTRA = -std=c++0x +CXXFLAGS_EXTRA = -std=c++0x -gsplit-dwarf CONFIGURE_EXTRA = CMAKE_EXTRA = From 629bbcbe25f0d72c785d4b8a219095e37b718a9d Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 3 Jul 2016 10:12:36 +0000 Subject: [PATCH 72/93] Fix the FTBFS under mips/mipsel? (enable the link against atomic) (Closes: #820537) --- debian/changelog | 7 +++++++ debian/rules | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index e84a3704..e1add947 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +llvm-toolchain-3.8 (1:3.8.1-4) UNRELEASED; urgency=medium + + * Fix the FTBFS under mips/mipsel? (enable the link against atomic) + (Closes: #820537) + + -- Sylvestre Ledru Sun, 03 Jul 2016 12:10:44 +0200 + llvm-toolchain-3.8 (1:3.8.1-3) unstable; urgency=medium * Add -gsplit-dwarf to CXXFLAGS to workaround the memory allocation diff --git a/debian/rules b/debian/rules index 3917f115..e3e7e0b4 100755 --- a/debian/rules +++ b/debian/rules @@ -34,7 +34,7 @@ CXXFLAGS_EXTRA = -std=c++0x -gsplit-dwarf CONFIGURE_EXTRA = CMAKE_EXTRA = -ifneq (,$(filter $(DEB_HOST_ARCH),powerpc powerpcspe)) +ifneq (,$(filter $(DEB_HOST_ARCH),powerpc powerpcspe mips mipsel)) LDFLAGS_EXTRA += -latomic endif From 3a70f2b80b6c3dc4a26cf211000f384e0accc26c Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Tue, 19 Jul 2016 12:20:32 +0000 Subject: [PATCH 73/93] snapshot => 3.9 --- debian/changelog | 3 ++- debian/control | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index 772b4d42..9a553595 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,6 @@ -llvm-toolchain-snapshot (1:3.9~svn275597-1~exp2) UNRELEASED; urgency=medium +llvm-toolchain-3.9 (1:3.9~svn275597-1~exp2) UNRELEASED; urgency=medium + * New snapshot release * Silent test CodeGen/SPARC/LeonInsertNOPsDoublePrecision.ll -- Sylvestre Ledru Fri, 15 Jul 2016 21:29:38 +0200 diff --git a/debian/control b/debian/control index 0615965a..88ff47a7 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 From 138285575a1c07c0c4043740e9ca4139d4add0ef Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Wed, 20 Jul 2016 08:21:18 +0000 Subject: [PATCH 74/93] Bring back llvm-tools to life --- debian/changelog | 5 +++-- debian/control | 19 +++++++++++++++++++ debian/llvm-X.Y-tools.dirs.in | 2 ++ debian/llvm-X.Y-tools.install.in | 9 +++++++++ debian/rules | 1 + 5 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 debian/llvm-X.Y-tools.dirs.in create mode 100644 debian/llvm-X.Y-tools.install.in diff --git a/debian/changelog b/debian/changelog index e1add947..7648e5a5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,9 +1,10 @@ -llvm-toolchain-3.8 (1:3.8.1-4) UNRELEASED; urgency=medium +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-tools to life - -- Sylvestre Ledru Sun, 03 Jul 2016 12:10:44 +0200 + -- Sylvestre Ledru Wed, 20 Jul 2016 10:20:46 +0200 llvm-toolchain-3.8 (1:3.8.1-3) unstable; urgency=medium diff --git a/debian/control b/debian/control index 7a9d212e..ed825739 100644 --- a/debian/control +++ b/debian/control @@ -288,6 +288,25 @@ Description: Modular compiler and toolchain technologies, libraries and headers 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 diff --git a/debian/llvm-X.Y-tools.dirs.in b/debian/llvm-X.Y-tools.dirs.in new file mode 100644 index 00000000..401df068 --- /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 00000000..db5574f7 --- /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/rules b/debian/rules index e3e7e0b4..49ce551b 100755 --- a/debian/rules +++ b/debian/rules @@ -242,6 +242,7 @@ override_dh_auto_configure: preconfigure -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_CXX_FLAGS="$(CXXFLAGS_EXTRA)" \ -DLLVM_LINK_LLVM_DYLIB=ON \ + -DLLVM_INSTALL_UTILS=ON \ -DLLVM_VERSION_SUFFIX= \ -DLLVM_ENABLE_SPHINX=ON \ -DLLVM_ENABLE_RTTI=ON \ From f052b34682b2e5646a9649694c45eda9f3397216 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Wed, 20 Jul 2016 12:31:02 +0000 Subject: [PATCH 75/93] * Bring back llvm-3.8-tools to life * ship clang-tblgen & yaml-bench as part of the libclang-common-X.Y-dev package --- debian/changelog | 4 +++- debian/libclang-common-X.Y-dev.install.in | 7 +++++++ debian/rules | 4 ---- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/debian/changelog b/debian/changelog index 7648e5a5..b33802fa 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,7 +2,9 @@ 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-tools to life + * 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 diff --git a/debian/libclang-common-X.Y-dev.install.in b/debian/libclang-common-X.Y-dev.install.in index ba08e70c..3d9d13ef 100644 --- a/debian/libclang-common-X.Y-dev.install.in +++ b/debian/libclang-common-X.Y-dev.install.in @@ -5,3 +5,10 @@ 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/rules b/debian/rules index 49ce551b..bf244de4 100755 --- a/debian/rules +++ b/debian/rules @@ -366,10 +366,6 @@ ifneq (${AUTOCONF_BUILD},yes) mv $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/clang-$(LLVM_VERSION) \ $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/clang endif -# internal tools, don't care - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/count - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/not - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/FileCheck # Don't think it is used rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libPolly*a # Probably useless From 7f14b364a663b3533400b4ee6d5065edab74402f Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Thu, 21 Jul 2016 07:15:49 +0000 Subject: [PATCH 76/93] * Bring back llvm-3.9-tools to life * ship clang-tblgen & yaml-bench as part of the libclang-common-X.Y-dev package --- debian/changelog | 7 +++++-- debian/control | 20 ++++++++++++++++++++ debian/libclang-common-X.Y-dev.install.in | 7 +++++++ debian/llvm-X.Y-tools.dirs.in | 2 ++ debian/llvm-X.Y-tools.install.in | 9 +++++++++ debian/rules | 5 +---- llvm-X.Y-tools.install.in | 9 +++++++++ 7 files changed, 53 insertions(+), 6 deletions(-) create mode 100644 debian/llvm-X.Y-tools.dirs.in create mode 100644 debian/llvm-X.Y-tools.install.in create mode 100644 llvm-X.Y-tools.install.in diff --git a/debian/changelog b/debian/changelog index 9a553595..725e0172 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,9 +1,12 @@ -llvm-toolchain-3.9 (1:3.9~svn275597-1~exp2) UNRELEASED; urgency=medium +llvm-toolchain-3.9 (1:3.9~svn275918-1~exp1) UNRELEASED; urgency=medium * New snapshot release * Silent test CodeGen/SPARC/LeonInsertNOPsDoublePrecision.ll + * Bring back llvm-3.9-tools to life + * ship clang-tblgen & yaml-bench as part of the libclang-common-X.Y-dev + 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 diff --git a/debian/control b/debian/control index 88ff47a7..f1fbc684 100644 --- a/debian/control +++ b/debian/control @@ -288,6 +288,26 @@ Description: Modular compiler and toolchain technologies, libraries and headers This package provides the libraries and headers to develop applications using llvm. +Package: llvm-3.9-tools +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, python, + llvm-3.9-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.9-ocaml-dev Section: ocaml Architecture: any diff --git a/debian/libclang-common-X.Y-dev.install.in b/debian/libclang-common-X.Y-dev.install.in index ba08e70c..3d9d13ef 100644 --- a/debian/libclang-common-X.Y-dev.install.in +++ b/debian/libclang-common-X.Y-dev.install.in @@ -5,3 +5,10 @@ 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/llvm-X.Y-tools.dirs.in b/debian/llvm-X.Y-tools.dirs.in new file mode 100644 index 00000000..401df068 --- /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 00000000..db5574f7 --- /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/rules b/debian/rules index a5d3a939..859c926a 100755 --- a/debian/rules +++ b/debian/rules @@ -214,6 +214,7 @@ override_dh_auto_configure: preconfigure -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_CXX_FLAGS='$(CXXFLAGS_EXTRA)' \ -DLLVM_LINK_LLVM_DYLIB=ON \ + -DLLVM_INSTALL_UTILS=ON \ -DLLVM_VERSION_SUFFIX= \ -DLLVM_ENABLE_SPHINX=ON \ -DSPHINX_WARNINGS_AS_ERRORS=OFF \ @@ -306,10 +307,6 @@ override_dh_auto_install: mv $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/clang-$(LLVM_VERSION) \ $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/clang -# internal tools, don't care - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/count - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/not - rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/FileCheck # Don't think it is used rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libPolly*a # Probably useless diff --git a/llvm-X.Y-tools.install.in b/llvm-X.Y-tools.install.in new file mode 100644 index 00000000..db5574f7 --- /dev/null +++ b/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@ From d2bc6e7b2b6362943163025deaa6129a0a36a924 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Thu, 21 Jul 2016 07:18:05 +0000 Subject: [PATCH 77/93] wrong file --- llvm-X.Y-tools.install.in | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 llvm-X.Y-tools.install.in diff --git a/llvm-X.Y-tools.install.in b/llvm-X.Y-tools.install.in deleted file mode 100644 index db5574f7..00000000 --- a/llvm-X.Y-tools.install.in +++ /dev/null @@ -1,9 +0,0 @@ -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@ From b895313ad898d8e2e9744c20c71eae7cc4813ff9 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Thu, 21 Jul 2016 12:05:03 +0000 Subject: [PATCH 78/93] ship lli-child-target as part of the llvm-X.Y-runtime package --- debian/changelog | 3 ++- debian/llvm-X.Y-runtime.install.in | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 725e0172..f1b177e4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,10 +1,11 @@ -llvm-toolchain-3.9 (1:3.9~svn275918-1~exp1) UNRELEASED; urgency=medium +llvm-toolchain-3.9 (1:3.9~svn275918-1~exp1) experimental; urgency=medium * New snapshot release * Silent test CodeGen/SPARC/LeonInsertNOPsDoublePrecision.ll * 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 Tue, 19 Jul 2016 15:34:08 +0200 diff --git a/debian/llvm-X.Y-runtime.install.in b/debian/llvm-X.Y-runtime.install.in index 2fe0d36a..d8e16a7c 100644 --- a/debian/llvm-X.Y-runtime.install.in +++ b/debian/llvm-X.Y-runtime.install.in @@ -1,6 +1,8 @@ usr/lib/llvm-@LLVM_VERSION@/bin/lli +usr/lib/llvm-@LLVM_VERSION@/bin/lli-child-target usr/bin/lli-@LLVM_VERSION@ +usr/bin/lli-child-target-@LLVM_VERSION@ debian/llvm-@LLVM_VERSION@-runtime.binfmt usr/share/binfmts/ From aed95f3c1453fb375517e4f826d58a77a2df6b64 Mon Sep 17 00:00:00 2001 From: Gianfranco Costamagna Date: Fri, 22 Jul 2016 16:41:40 +0000 Subject: [PATCH 79/93] Try to enable mips64el, consistently with mips and mipsel --- debian/changelog | 7 +++++++ debian/control | 18 +++++++++--------- debian/rules | 2 +- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/debian/changelog b/debian/changelog index b33802fa..bfdd70b0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +llvm-toolchain-3.8 (1:3.8.1-5) UNRELEASED; urgency=medium + + * Try to fix mips64el build, by enabling the same + packages as the mips and mipsel versions + + -- Gianfranco Costamagna Fri, 22 Jul 2016 18:40:42 +0200 + llvm-toolchain-3.8 (1:3.8.1-4) unstable; urgency=medium * Fix the FTBFS under mips/mipsel? (enable the link against atomic) diff --git a/debian/control b/debian/control index ed825739..3e6a7056 100644 --- a/debian/control +++ b/debian/control @@ -371,8 +371,8 @@ Description: Modular compiler and toolchain technologies, examples # ------------- lldb ------------- Package: lldb-3.8 -Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 mips mipsel -# ia64 mips mipsel hurd powerpc ppc64el have been removed +Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 mips mipsel mips64el +# ia64 hurd powerpc ppc64el 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 @@ -383,8 +383,8 @@ Description: Next generation, high-performance debugger 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 ppc64 sh4 sparc64 x32 mips mipsel -# ia64 mips mipsel hurd powerpc ppc64el have been removed +Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 mips mipsel mips64el +# ia64 hurd powerpc ppc64el have been removed Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm3.8 (= ${binary:Version}) Pre-Depends: ${misc:Pre-Depends} Section: libs @@ -398,8 +398,8 @@ Description: Next generation, high-performance debugger, library 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 ppc64 sh4 sparc64 x32 mips mipsel -# ia64 mips mipsel hurd ppc64el alpha s390x powerpc have been removed +Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc hppa m68k powerpcspe ppc64 sh4 sparc64 x32 mips mipsel mips64el +# ia64 hurd ppc64el alpha s390x powerpc have been removed Depends: ${shlibs:Depends}, ${misc:Depends}, liblldb-3.8 (= ${binary:Version}) Pre-Depends: ${misc:Pre-Depends} Section: debug @@ -414,7 +414,7 @@ Description: Next generation, high-performance debugger, debugging libraries Package: python-lldb-3.8 Section: python -Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 mips mipsel +Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 mips mipsel mips64el 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} @@ -428,8 +428,8 @@ Description: Next generation, high-performance debugger, python lib Package: liblldb-3.8-dev Section: libdevel -Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 mips mipsel -# ia64 mips mipsel hurd powerpc ppc64el have been removed +Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 mips mipsel mips64el +# ia64 hurd powerpc ppc64el 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) diff --git a/debian/rules b/debian/rules index bf244de4..d923ff03 100755 --- a/debian/rules +++ b/debian/rules @@ -34,7 +34,7 @@ CXXFLAGS_EXTRA = -std=c++0x -gsplit-dwarf CONFIGURE_EXTRA = CMAKE_EXTRA = -ifneq (,$(filter $(DEB_HOST_ARCH),powerpc powerpcspe mips mipsel)) +ifneq (,$(filter $(DEB_HOST_ARCH),powerpc powerpcspe mips mipsel mips64el)) LDFLAGS_EXTRA += -latomic endif From 89787810c359c03cd2250c3921bf883c76532a98 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 25 Jul 2016 10:19:03 +0000 Subject: [PATCH 80/93] Fix the cmake paths in llvm-3.9-dev deb package. Thanks to Brad King for the patch (Closes: #819072) --- debian/changelog | 7 ++++++ debian/patches/fix-cmake-config-prefix.diff | 25 +++------------------ 2 files changed, 10 insertions(+), 22 deletions(-) diff --git a/debian/changelog b/debian/changelog index f1b177e4..63eb9fc8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +llvm-toolchain-3.9 (1:3.9~svn275918-1~exp2) experimental; urgency=medium + + * Fix the cmake paths in llvm-3.9-dev deb package. Thanks to Brad King + for the patch (Closes: #819072) + + -- 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 diff --git a/debian/patches/fix-cmake-config-prefix.diff b/debian/patches/fix-cmake-config-prefix.diff index 8247adb7..c53b3721 100644 --- a/debian/patches/fix-cmake-config-prefix.diff +++ b/debian/patches/fix-cmake-config-prefix.diff @@ -1,25 +1,6 @@ ---- a/cmake/modules/Makefile -+++ b/cmake/modules/Makefile -@@ -62,17 +62,9 @@ - - LLVM_CONFIG_CODE := \ - \# Compute the CMake directory from the LLVMConfig.cmake file location.\n\ --get_filename_component(_LLVM_CMAKE_DIR "$${CMAKE_CURRENT_LIST_FILE}" PATH)\n\ --\# Compute the installation prefix from the LLVMConfig.cmake file location.\n\ --get_filename_component(LLVM_INSTALL_PREFIX "$${CMAKE_CURRENT_LIST_FILE}" PATH)\n -+get_filename_component(_LLVM_CMAKE_DIR "$${CMAKE_CURRENT_LIST_FILE}" PATH)\n - --# Compute number of levels (typically 3 - ``share/llvm/cmake/``) to PROJ_prefix --# from PROJ_cmake, then emit the appropriate number of calls to --# get_filename_components(). Note this assumes there are no spaces in the --# cmake_path_suffix variable. --cmake_path_suffix := $(subst $(PROJ_prefix),,$(subst $(DESTDIR),,$(PROJ_cmake))) --cmake_path_dirs := $(subst /, ,$(cmake_path_suffix)) --LLVM_CONFIG_CODE += $(foreach __not_used,$(cmake_path_dirs),get_filename_component(LLVM_INSTALL_PREFIX "$${LLVM_INSTALL_PREFIX}" PATH)\n) -+LLVM_CONFIG_CODE += set(LLVM_INSTALL_PREFIX "$(subst /,\/,$(PROJ_prefix))")\n - - LLVM_CONFIG_CODE += set(_LLVM_LIBRARY_DIR "$${LLVM_INSTALL_PREFIX}\/lib") - +## Description: add some description +## Origin/Author: add some origin or author +## Bug: bug URL --- a/cmake/modules/CMakeLists.txt +++ b/cmake/modules/CMakeLists.txt @@ -47,16 +47,7 @@ file(COPY . From 8232afa51e61b8185db0a3f9a8e0bb9175bd9efe Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 25 Jul 2016 10:22:17 +0000 Subject: [PATCH 81/93] LLVMConfig.cmake is now installed to /lib/cmake/llvm instead of /share/llvm/cmake Thanks to Brad King of the fix --- debian/changelog | 3 +++ debian/llvm-X.Y-dev.links.in | 3 +-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index 63eb9fc8..f286eaac 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,9 @@ llvm-toolchain-3.9 (1:3.9~svn275918-1~exp2) experimental; urgency=medium * 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 -- Sylvestre Ledru Mon, 25 Jul 2016 12:18:52 +0200 diff --git a/debian/llvm-X.Y-dev.links.in b/debian/llvm-X.Y-dev.links.in index df12f202..c8cbce2f 100644 --- a/debian/llvm-X.Y-dev.links.in +++ b/debian/llvm-X.Y-dev.links.in @@ -13,5 +13,4 @@ usr/lib/llvm-@LLVM_VERSION@/include/ usr/lib/llvm-@LLVM_VERSION@/build/include 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 - +usr/lib/llvm-@LLVM_VERSION@/lib/llvm/cmake usr/lib/llvm-@LLVM_VERSION@/cmake From 4007a1cf0dfd72193c6d556cc9c736bd734585a3 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 25 Jul 2016 11:49:39 +0000 Subject: [PATCH 82/93] Disable lldb on sparc64 (Closes: #832371) --- debian/changelog | 1 + debian/control | 18 +++++++++--------- debian/rules | 2 +- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/debian/changelog b/debian/changelog index bfdd70b0..c85c74bc 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,7 @@ llvm-toolchain-3.8 (1:3.8.1-5) UNRELEASED; urgency=medium * Try to fix mips64el build, by enabling the same packages as the mips and mipsel versions + * Disable lldb on sparc64 (Closes: #832371) -- Gianfranco Costamagna Fri, 22 Jul 2016 18:40:42 +0200 diff --git a/debian/control b/debian/control index 3e6a7056..29206338 100644 --- a/debian/control +++ b/debian/control @@ -371,8 +371,8 @@ Description: Modular compiler and toolchain technologies, examples # ------------- lldb ------------- Package: lldb-3.8 -Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 mips mipsel mips64el -# ia64 hurd powerpc ppc64el have been removed +Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 x32 mips mipsel mips64el +# ia64 hurd powerpc ppc64el sparc64 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 @@ -383,8 +383,8 @@ Description: Next generation, high-performance debugger 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 ppc64 sh4 sparc64 x32 mips mipsel mips64el -# ia64 hurd powerpc ppc64el have been removed +Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 x32 mips mipsel mips64el +# ia64 hurd powerpc ppc64el sparc64 have been removed Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm3.8 (= ${binary:Version}) Pre-Depends: ${misc:Pre-Depends} Section: libs @@ -398,8 +398,8 @@ Description: Next generation, high-performance debugger, library 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 ppc64 sh4 sparc64 x32 mips mipsel mips64el -# ia64 hurd ppc64el alpha s390x powerpc have been removed +Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc hppa m68k powerpcspe ppc64 sh4 x32 mips mipsel mips64el +# ia64 hurd ppc64el alpha s390x powerpc sparc64 have been removed Depends: ${shlibs:Depends}, ${misc:Depends}, liblldb-3.8 (= ${binary:Version}) Pre-Depends: ${misc:Pre-Depends} Section: debug @@ -414,7 +414,7 @@ Description: Next generation, high-performance debugger, debugging libraries Package: python-lldb-3.8 Section: python -Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 mips mipsel mips64el +Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 x32 mips mipsel mips64el 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} @@ -428,8 +428,8 @@ Description: Next generation, high-performance debugger, python lib Package: liblldb-3.8-dev Section: libdevel -Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 mips mipsel mips64el -# ia64 hurd powerpc ppc64el have been removed +Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 x32 mips mipsel mips64el +# ia64 hurd powerpc ppc64el sparc64 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) diff --git a/debian/rules b/debian/rules index d923ff03..53b4316a 100755 --- a/debian/rules +++ b/debian/rules @@ -124,7 +124,7 @@ endif LLDB_ENABLE=yes -LLDB_DISABLE_ARCHS := arm64 hurd-i386 ia64 ppc64el powerpc s390x +LLDB_DISABLE_ARCHS := arm64 hurd-i386 ia64 ppc64el powerpc s390x sparc64 # hurd has threading issues ifeq (,$(filter-out $(LLDB_DISABLE_ARCHS), $(DEB_HOST_ARCH))) # Disable LLDB for this arch. From f2de04217d70e82f310e1009f1036f3edd162457 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 25 Jul 2016 11:52:03 +0000 Subject: [PATCH 83/93] Disable lldb on sparc64 (Closes: #832371) --- debian/changelog | 1 + debian/control | 16 ++++++++-------- debian/rules | 2 +- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/debian/changelog b/debian/changelog index f286eaac..7ac534f3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,6 +5,7 @@ llvm-toolchain-3.9 (1:3.9~svn275918-1~exp2) experimental; urgency=medium * 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 diff --git a/debian/control b/debian/control index f1fbc684..4426d5c4 100644 --- a/debian/control +++ b/debian/control @@ -426,8 +426,8 @@ Description: Modular compiler and toolchain technologies, examples # ------------- lldb ------------- Package: lldb-3.9 -Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 mips mipsel -# ia64 mips mipsel hurd powerpc ppc64el have been removed +Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 x32 mips mipsel +# ia64 mips mipsel hurd powerpc ppc64el sparc64 have been removed Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm3.9 (= ${binary:Version}), llvm-3.9-dev Suggests: python-lldb-3.9 Conflicts: lldb-3.4, lldb-3.5 @@ -438,8 +438,8 @@ Description: Next generation, high-performance debugger Project, such as the Clang expression parser and LLVM disassembler. Package: liblldb-3.9 -Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 mips mipsel -# ia64 mips mipsel hurd powerpc ppc64el have been removed +Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 x32 mips mipsel +# ia64 mips mipsel hurd powerpc ppc64el sparc64 have been removed Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm3.9 (= ${binary:Version}) Pre-Depends: ${misc:Pre-Depends} Section: libs @@ -453,8 +453,8 @@ Description: Next generation, high-performance debugger, library This package contains the LLDB runtime library. Package: liblldb-3.9-dbg -Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc hppa m68k powerpcspe ppc64 sh4 sparc64 x32 mips mipsel -# ia64 mips mipsel hurd ppc64el alpha s390x powerpc have been removed +Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc hppa m68k powerpcspe ppc64 sh4 x32 mips mipsel +# ia64 mips mipsel hurd ppc64el alpha s390x powerpc sparc64 have been removed Depends: ${shlibs:Depends}, ${misc:Depends}, liblldb-3.9 (= ${binary:Version}) Pre-Depends: ${misc:Pre-Depends} Section: debug @@ -483,8 +483,8 @@ Description: Next generation, high-performance debugger, python lib Package: liblldb-3.9-dev Section: libdevel -Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 mips mipsel -# ia64 mips mipsel hurd powerpc ppc64el have been removed +Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 x32 mips mipsel +# ia64 mips mipsel hurd powerpc ppc64el sparc64 have been removed Depends: ${shlibs:Depends}, ${misc:Depends}, lldb-3.9 (= ${binary:Version}) Replaces: lldb-3.9-dev (<= 1:3.9~svn215195-2) Breaks: lldb-3.9-dev (<< 1:3.9~svn215195-2) diff --git a/debian/rules b/debian/rules index 859c926a..228a70ec 100755 --- a/debian/rules +++ b/debian/rules @@ -108,7 +108,7 @@ endif LLDB_ENABLE=yes -LLDB_DISABLE_ARCHS := arm64 hurd-i386 ia64 ppc64el powerpc s390x +LLDB_DISABLE_ARCHS := arm64 hurd-i386 ia64 ppc64el powerpc s390x sparc64 # hurd has threading issues ifeq (,$(filter-out $(LLDB_DISABLE_ARCHS), $(DEB_HOST_ARCH))) # Disable LLDB for this arch. From da042a53638e487c218f8006cdee02c5fa7d7e7a Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 25 Jul 2016 15:57:41 +0000 Subject: [PATCH 84/93] Hopefully fix the FTBFS on armel --- debian/changelog | 3 ++- debian/rules | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index c85c74bc..cb8035d8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,6 +3,7 @@ llvm-toolchain-3.8 (1:3.8.1-5) UNRELEASED; urgency=medium * Try to fix mips64el build, by enabling the same packages as the mips and mipsel versions * Disable lldb on sparc64 (Closes: #832371) + * Hopefully fix the FTBFS on armel -- Gianfranco Costamagna Fri, 22 Jul 2016 18:40:42 +0200 @@ -26,7 +27,7 @@ llvm-toolchain-3.8 (1:3.8.1-3) unstable; urgency=medium 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 + * Add a symlink from usr/lib/llvm-3.8/share/llvm/cmake pointing to usr/share/llvm-3.8/cmake [ Gianfranco Costamagna ] diff --git a/debian/rules b/debian/rules index 53b4316a..6b7baca5 100755 --- a/debian/rules +++ b/debian/rules @@ -58,6 +58,9 @@ endif 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) From b53344eb7f8f5f6237d11668ffd8e6568f2f7b57 Mon Sep 17 00:00:00 2001 From: Gianfranco Costamagna Date: Wed, 27 Jul 2016 10:11:27 +0000 Subject: [PATCH 85/93] Hopefully the mips* build is fixed --- debian/changelog | 1 + debian/patches/lldb-link-atomic-cmake.patch | 19 +++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 21 insertions(+) create mode 100644 debian/patches/lldb-link-atomic-cmake.patch diff --git a/debian/changelog b/debian/changelog index cb8035d8..38a60d74 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,7 @@ llvm-toolchain-3.8 (1:3.8.1-5) UNRELEASED; urgency=medium * 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 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/series b/debian/patches/series index 96d0ea2d..f656795f 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -41,3 +41,4 @@ llvm25468-lldb-swig-format-security.diff llvm26003-sanitizer-check-env.diff scan-view-fix-path.diff mips-fpxx-enable.diff +lldb-link-atomic-cmake.patch From 7b02ad421ce48ca6e96bced399b86d3ec75f29fb Mon Sep 17 00:00:00 2001 From: Gianfranco Costamagna Date: Wed, 27 Jul 2016 12:09:15 +0000 Subject: [PATCH 86/93] Drop useless and bad hack on rules file --- debian/rules | 4 ---- 1 file changed, 4 deletions(-) diff --git a/debian/rules b/debian/rules index 6b7baca5..9d3efd45 100755 --- a/debian/rules +++ b/debian/rules @@ -34,10 +34,6 @@ CXXFLAGS_EXTRA = -std=c++0x -gsplit-dwarf CONFIGURE_EXTRA = CMAKE_EXTRA = -ifneq (,$(filter $(DEB_HOST_ARCH),powerpc powerpcspe mips mipsel mips64el)) -LDFLAGS_EXTRA += -latomic -endif - ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' g++-$(GCC_VERSION)) lt 4.7.2-10~ ; echo $$?),0) # Too old version of gcc. Force 4.9 GCC_VERSION := 4.9 From b8fd01b62ec1e936b9d68e4ba8b80ea9fce7a78b Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Thu, 28 Jul 2016 08:58:01 +0000 Subject: [PATCH 87/93] 3.8.1-5 uploaded --- debian/changelog | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index 38a60d74..fbc3ed18 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,12 +1,15 @@ -llvm-toolchain-3.8 (1:3.8.1-5) UNRELEASED; urgency=medium +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 - -- Gianfranco Costamagna Fri, 22 Jul 2016 18:40:42 +0200 + -- Sylvestre Ledru Wed, 27 Jul 2016 22:49:09 +0200 llvm-toolchain-3.8 (1:3.8.1-4) unstable; urgency=medium From e9f1d28b132958365054906451818c3bdd803963 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Thu, 28 Jul 2016 09:15:10 +0000 Subject: [PATCH 88/93] * 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) --- debian/changelog | 13 + ...Sema-part-of-attrbute-abi_tag-support.diff | 322 +++++ ...gler-part-of-attrbute-abi_tag-support.diff | 1234 +++++++++++++++++ debian/patches/drop-avx512-from-skylake.diff | 16 + debian/patches/series | 3 + debian/rules | 2 + 6 files changed, 1590 insertions(+) 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/drop-avx512-from-skylake.diff diff --git a/debian/changelog b/debian/changelog index fbc3ed18..4fcb00c8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,16 @@ +llvm-toolchain-3.8 (1:3.8.1-6) unstable; urgency=medium + + * 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) + + -- Sylvestre Ledru Thu, 28 Jul 2016 11:15:04 +0200 + llvm-toolchain-3.8 (1:3.8.1-5) unstable; urgency=medium [ Gianfranco Costamagna ] 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 00000000..44b7fb7b --- /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 00000000..3f01aa42 --- /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) { + // ::=