diff --git a/debian/changelog b/debian/changelog index 40ca625b..556938ec 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -llvm-toolchain-snapshot (1:13~++20210403031832+89afec348dbd-1~exp1) UNRELEASED; urgency=medium +llvm-toolchain-snapshot (1:13~++20210418105309+a0898f0cecc7-1~exp1) experimental; urgency=medium [ Sylvestre Ledru ] * New snapshot release @@ -16,7 +16,7 @@ llvm-toolchain-snapshot (1:13~++20210403031832+89afec348dbd-1~exp1) UNRELEASED; * Set LLVM_HOST_TRIPLE to x86_64-linux-gnux32 on x32 * Set LLVM_DEFAULT_TARGET_TRIPLE to x86_64-linux-gnux32 on x32 - -- Sylvestre Ledru Sat, 03 Apr 2021 15:22:07 +0200 + -- Sylvestre Ledru Sun, 18 Apr 2021 11:00:31 +0200 llvm-toolchain-snapshot (1:13~++20210129063721+010b176cdefb-1~exp2) experimental; urgency=medium @@ -39,10 +39,39 @@ llvm-toolchain-snapshot (1:13~++20210129063721+010b176cdefb-1~exp1) experimental -- Sylvestre Ledru Sat, 30 Jan 2021 17:31:15 +0100 -llvm-toolchain-12 (1:12.0.0~++rc4-2) unstable; urgency=medium +llvm-toolchain-12 (1:12.0.0-2) UNRELEASED; urgency=medium + [ Matthias Klose ] + * Improve the clean rule + * Disable again LTO + * Create a new package llvm-12-linker-tools: + Contains the LLVMgold and LLVMPolly linker plugins. + + -- Sylvestre Ledru Thu, 15 Apr 2021 13:27:57 +0200 + +llvm-toolchain-12 (1:12.0.0-1) unstable; urgency=medium + + * New upstream release + + -- Sylvestre Ledru Thu, 15 Apr 2021 07:57:57 +0200 + +llvm-toolchain-12 (1:12.0.0~++rc5-2) unstable; urgency=medium + + * Add -DCMAKE_SUPPRESS_REGENERATION=ON to limit the number of calls + to cmake + Try to workaround a bug on llvm-toolchain-stretch-12-binaries + architecture=s390x,stretch + + -- Sylvestre Ledru Sat, 10 Apr 2021 14:59:07 +0200 + +llvm-toolchain-12 (1:12.0.0~++rc5-1) unstable; urgency=medium + + * New testing upstream release * Verify that /proc is mounted. It makes some unexpected issues when building from a chroot without /proc + + -- Sylvestre Ledru Thu, 08 Apr 2021 18:04:07 +0200 + llvm-toolchain-12 (1:12.0.0~++rc4-1) unstable; urgency=medium * New testing upstream release diff --git a/debian/control b/debian/control index f77fa3d4..180491a6 100644 --- a/debian/control +++ b/debian/control @@ -35,6 +35,8 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, ${dep:devlibs}, Provides: c-compiler, objc-compiler, c++-compiler Recommends: llvm-13-dev, python3, libomp-13-dev Suggests: clang-13-doc +Breaks: llvm-13-dev (<< 1:13~++20210129063721) +Replaces: llvm-13-dev (<< 1:13~++20210129063721) Description: C, C++ and Objective-C compiler Clang project is a C, C++, Objective C and Objective C++ front-end based on the LLVM compiler. Its goal is to offer a replacement to the @@ -279,10 +281,24 @@ Description: Modular compiler and toolchain technologies, runtime library . This package contains the LLVM runtime library. +Package: llvm-13-linker-tools +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Breaks: llvm-13-dev (<< 1:13~++20210129063721), clang-13 (<< 1:13~++20210129063721) +Replaces: llvm-13-dev (<< 1:13~++20210129063721), clang-13 (<< 1:13~++20210129063721) +Description: Modular compiler and toolchain technologies - Plugins + LLVM is a collection of libraries and tools that make it easy to build + compilers, optimizers, just-in-time code generators, and many other + compiler-related programs. + . + This package contains the LLVMgold and LLVMPolly linker plugins. + Package: llvm-13 Architecture: any Suggests: llvm-13-doc -Depends: llvm-13-runtime (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Depends: llvm-13-runtime (= ${binary:Version}), + llvm-13-linker-tools (= ${binary:Version}), + ${shlibs:Depends}, ${misc:Depends} Recommends: llvm-13-dev Description: Modular compiler and toolchain technologies LLVM is a collection of libraries and tools that make it easy to build diff --git a/debian/llvm-X.Y-dev.install.in b/debian/llvm-X.Y-dev.install.in index a6acd028..aab9970a 100644 --- a/debian/llvm-X.Y-dev.install.in +++ b/debian/llvm-X.Y-dev.install.in @@ -2,10 +2,9 @@ usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM*.a #usr/lib/llvm-@LLVM_VERSION@/lib/libllvm*.a -[!powerpc !powerpcspe] 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/libLTO.* +usr/lib/llvm-@LLVM_VERSION@/lib/libLTO.so usr/lib/llvm-@LLVM_VERSION@/lib/libRemarks.* 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@/ diff --git a/debian/rules b/debian/rules index 9904e902..ab0a90d0 100755 --- a/debian/rules +++ b/debian/rules @@ -17,6 +17,7 @@ GCC_VERSION := $(subst /usr/bin/g++-,,$(GXX_VERSIONED_EXECUTABLE)) LLVM_VERSION := $(shell dpkg-parsechangelog | sed -rne "s,^Version: 1:([0-9]+).*,\1,p") LLVM_VERSION_FULL := $(shell dpkg-parsechangelog | sed -rne "s,^Version: 1:([0-9.]+)(~|-)(.*),\1,p") +LLVM_VERSION_SNAPSHOT := $(shell dpkg-parsechangelog | sed -rne "s,^Version: 1:(.*),\1,p") ifeq ($(LLVM_VERSION),$(LLVM_VERSION_FULL)) LLVM_VERSION_FULL := $(LLVM_VERSION).0.0 endif @@ -65,7 +66,8 @@ endif # Ensure fixfilepath feature is disabled. The fixfilepath feature # sets a -ffile-prefix-map flag, which is only supported in clang-10. -export DEB_BUILD_MAINT_OPTIONS=reproducible=-fixfilepath +# Disable also lto +export DEB_BUILD_MAINT_OPTIONS=reproducible=-fixfilepath optimize=-lto # Cxx flags for building libcxx and libcxxabi LIBCXXFLAGS := $(shell dpkg-buildflags --get CXXFLAGS) $(shell dpkg-buildflags --get CPPFLAGS) @@ -299,6 +301,14 @@ ifneq (,$(filter $(DEB_HOST_ARCH), mips64 mips64el)) LIBOMP_ARCH = mips64 endif +# 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 +ifeq ($(shell test -e /tmp/cmake/bin/cmake && echo -n yes),yes) + CMAKE_BIN=/tmp/cmake/bin/cmake + export LD_LIBRARY_PATH=$$LD_LIBRARY_PATH:/tmp/cmake/bin/ +endif + %: dh $@ $(DH_OPTIONS) @@ -322,6 +332,7 @@ preconfigure: @echo "PROJECTS=$(PROJECTS_LIST)" @echo "LLVM_VERSION=$(LLVM_VERSION)" @echo "LLVM_VERSION_FULL=$(LLVM_VERSION_FULL)" + @echo "LLVM_VERSION_SNAPSHOT=$(LLVM_VERSION_SNAPSHOT)" for f in debian/*.in; do \ f2=$$(echo $$f | sed 's/\.in$$//;s/X\.Y/$(LLVM_VERSION)/'); \ @@ -333,7 +344,22 @@ preconfigure: done # Make install file executable for dh-exec - chmod +x debian/llvm-$(LLVM_VERSION)-dev.install debian/libclang-common-$(LLVM_VERSION)-dev.install debian/clang-tools-$(LLVM_VERSION).install debian/libomp-$(LLVM_VERSION)-dev.install + chmod +x \ + debian/clang-tools-$(LLVM_VERSION).install \ + debian/libclang-common-$(LLVM_VERSION)-dev.install \ + debian/libomp-$(LLVM_VERSION)-dev.install \ + debian/llvm-$(LLVM_VERSION)-dev.install \ + debian/llvm-$(LLVM_VERSION)-linker-tools.install + + + # workaround the breaks/replaces/conflicts introduced with llvm-12-linker-tools + # we update the version to make it work with apt.llvm.org + # Yeah, this is ugly but I don't know how to do better + if test "$(LLVM_VERSION)" = "12"; then \ + if echo "$(LLVM_VERSION_SNAPSHOT)"|grep -q "++"; then \ + sed -i -e "s|(<< 1:12.0.0-2)|(<< 12.0.0~++20210418)|g" debian/control; \ + fi; \ + fi # DH doesn't support the [power ...] in install on Ubuntu trusty # fails with cp: cannot stat 'debian/tmp/[!powerpc': No such file or directory @@ -375,20 +401,11 @@ override_dh_auto_configure: preconfigure fi) echo "Running tests: $(RUN_TEST)" - - # if cmake is installed in /tmp/cmake/ uses it - # Used to build llvm on Debian & Ubuntu with a recent cmake - # on the llvm.org/apt/ ci - # Use D24cmake as hook to download/setup - CMAKE_BIN=cmake; \ - if test -f /tmp/cmake/bin/cmake; then \ - CMAKE_BIN=/tmp/cmake/bin/cmake; \ - LD_LIBRARY_PATH=$$LD_LIBRARY_PATH:/tmp/cmake/bin/; \ - fi; \ - echo "Using cmake: $$CMAKE_BIN"; \ + echo "Using cmake: $(CMAKE_BIN)"; \ cd $(TARGET_BUILD) && \ - LD_LIBRARY_PATH=$$LD_LIBRARY_PATH $(PRE_PROCESS_CONF) $$CMAKE_BIN ../llvm/ \ + LD_LIBRARY_PATH=$$LD_LIBRARY_PATH $(PRE_PROCESS_CONF) $(CMAKE_BIN) ../llvm/ \ -DLLVM_ENABLE_PROJECTS="$(PROJECTS_LIST)" \ + -DCMAKE_SUPPRESS_REGENERATION=ON \ -DCMAKE_INSTALL_PREFIX=/usr/lib/llvm-$(LLVM_VERSION) \ -DCMAKE_VERBOSE_MAKEFILE=ON \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ @@ -480,13 +497,9 @@ debian-libcxx-build: mkdir -p libcxx/build mkdir -p libcxxabi/build - CMAKE_BIN=cmake; \ - if test -f /tmp/cmake/bin/cmake; then \ - CMAKE_BIN=/tmp/cmake/bin/cmake; \ - fi; \ - echo "Using cmake: $$CMAKE_BIN"; \ + echo "Using cmake: $(CMAKE_BIN)"; \ cd libcxxabi/build && \ - $(PRE_PROCESS_CONF) $$CMAKE_BIN ../ \ + $(PRE_PROCESS_CONF) $(CMAKE_BIN) ../ \ $(LIBCXX_CMAKE_OPTIONS) \ -DLIBCXXABI_LIBCXX_PATH=$(BASE_PATH)/libcxx \ -DLIBCXXABI_LIBCXX_LIBRARY_PATH=$(BASE_PATH)/libcxx/build/lib \ @@ -501,13 +514,9 @@ debian-libcxxabi-build: mkdir -p libcxxabi/build - CMAKE_BIN=cmake; \ - if test -f /tmp/cmake/bin/cmake; then \ - CMAKE_BIN=/tmp/cmake/bin/cmake; \ - fi; \ - echo "Using cmake: $$CMAKE_BIN"; \ + echo "Using cmake: $(CMAKE_BIN)"; \ cd libcxx/build && \ - $(PRE_PROCESS_CONF) $$CMAKE_BIN ../ \ + $(PRE_PROCESS_CONF) $(CMAKE_BIN) ../ \ $(LIBCXX_CMAKE_OPTIONS) \ -DLIBCXX_CXX_ABI=libcxxabi \ -DLIBCXX_CXX_ABI_INCLUDE_PATHS=$(BASE_PATH)/libcxxabi/include \ @@ -914,5 +923,11 @@ override_dh_auto_clean: if test -f lld/docs/ld.lld-$(LLVM_VERSION).1; then \ mv lld/docs/ld.lld-$(LLVM_VERSION).1 lld/docs/ld.lld.1; \ fi + for f in debian/*.in; do \ + f2=$$(echo $$f | sed 's/\.in$$//;s/X\.Y/$(LLVM_VERSION)/'); \ + rm -f $$f2; \ + done + : # for some reason, the docs are written to debian/usr and debian/man ... + rm -rf debian/usr debian/man .PHONY: override_dh_strip preconfigure debian-full-build debian-libfuzzer-build debian-libcxx-build debian-libcxxabi-build