* Improve the clean rule

* Disable again LTO
* Create a new package llvm-12-linker-tools:
  Contains the LLVMgold and LLVMPolly linker plugins.
* New upstream release
* 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
* New testing upstream release
This commit is contained in:
Sylvestre Ledru 2021-04-18 23:05:58 +02:00
parent 687f146134
commit f01f2c149c
4 changed files with 91 additions and 32 deletions

35
debian/changelog vendored
View File

@ -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 ] [ Sylvestre Ledru ]
* New snapshot release * 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_HOST_TRIPLE to x86_64-linux-gnux32 on x32
* Set LLVM_DEFAULT_TARGET_TRIPLE to x86_64-linux-gnux32 on x32 * Set LLVM_DEFAULT_TARGET_TRIPLE to x86_64-linux-gnux32 on x32
-- Sylvestre Ledru <sylvestre@debian.org> Sat, 03 Apr 2021 15:22:07 +0200 -- Sylvestre Ledru <sylvestre@debian.org> Sun, 18 Apr 2021 11:00:31 +0200
llvm-toolchain-snapshot (1:13~++20210129063721+010b176cdefb-1~exp2) experimental; urgency=medium 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 <sylvestre@debian.org> Sat, 30 Jan 2021 17:31:15 +0100 -- Sylvestre Ledru <sylvestre@debian.org> 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 <sylvestre@debian.org> Thu, 15 Apr 2021 13:27:57 +0200
llvm-toolchain-12 (1:12.0.0-1) unstable; urgency=medium
* New upstream release
-- Sylvestre Ledru <sylvestre@debian.org> 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 <sylvestre@debian.org> 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 * Verify that /proc is mounted. It makes some unexpected issues when
building from a chroot without /proc building from a chroot without /proc
-- Sylvestre Ledru <sylvestre@debian.org> Thu, 08 Apr 2021 18:04:07 +0200
llvm-toolchain-12 (1:12.0.0~++rc4-1) unstable; urgency=medium llvm-toolchain-12 (1:12.0.0~++rc4-1) unstable; urgency=medium
* New testing upstream release * New testing upstream release

18
debian/control vendored
View File

@ -35,6 +35,8 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, ${dep:devlibs},
Provides: c-compiler, objc-compiler, c++-compiler Provides: c-compiler, objc-compiler, c++-compiler
Recommends: llvm-13-dev, python3, libomp-13-dev Recommends: llvm-13-dev, python3, libomp-13-dev
Suggests: clang-13-doc 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 Description: C, C++ and Objective-C compiler
Clang project is a C, C++, Objective C and Objective C++ front-end 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 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. 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 Package: llvm-13
Architecture: any Architecture: any
Suggests: llvm-13-doc 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 Recommends: llvm-13-dev
Description: Modular compiler and toolchain technologies Description: Modular compiler and toolchain technologies
LLVM is a collection of libraries and tools that make it easy to build LLVM is a collection of libraries and tools that make it easy to build

View File

@ -2,10 +2,9 @@
usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM*.a usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM*.a
#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.so
usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM-@LLVM_VERSION@*.so usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM-@LLVM_VERSION@*.so
usr/lib/llvm-@LLVM_VERSION@/lib/libLTO.* usr/lib/llvm-@LLVM_VERSION@/lib/libLTO.so
usr/lib/llvm-@LLVM_VERSION@/lib/libRemarks.* 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/ usr/include/llvm-@LLVM_VERSION@/
usr/lib/llvm-@LLVM_VERSION@/include/llvm-c/ usr/include/llvm-c-@LLVM_VERSION@/ usr/lib/llvm-@LLVM_VERSION@/include/llvm-c/ usr/include/llvm-c-@LLVM_VERSION@/

67
debian/rules vendored
View File

@ -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 := $(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_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)) ifeq ($(LLVM_VERSION),$(LLVM_VERSION_FULL))
LLVM_VERSION_FULL := $(LLVM_VERSION).0.0 LLVM_VERSION_FULL := $(LLVM_VERSION).0.0
endif endif
@ -65,7 +66,8 @@ endif
# Ensure fixfilepath feature is disabled. The fixfilepath feature # Ensure fixfilepath feature is disabled. The fixfilepath feature
# sets a -ffile-prefix-map flag, which is only supported in clang-10. # 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 # Cxx flags for building libcxx and libcxxabi
LIBCXXFLAGS := $(shell dpkg-buildflags --get CXXFLAGS) $(shell dpkg-buildflags --get CPPFLAGS) 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 LIBOMP_ARCH = mips64
endif 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) dh $@ $(DH_OPTIONS)
@ -322,6 +332,7 @@ preconfigure:
@echo "PROJECTS=$(PROJECTS_LIST)" @echo "PROJECTS=$(PROJECTS_LIST)"
@echo "LLVM_VERSION=$(LLVM_VERSION)" @echo "LLVM_VERSION=$(LLVM_VERSION)"
@echo "LLVM_VERSION_FULL=$(LLVM_VERSION_FULL)" @echo "LLVM_VERSION_FULL=$(LLVM_VERSION_FULL)"
@echo "LLVM_VERSION_SNAPSHOT=$(LLVM_VERSION_SNAPSHOT)"
for f in debian/*.in; do \ for f in debian/*.in; do \
f2=$$(echo $$f | sed 's/\.in$$//;s/X\.Y/$(LLVM_VERSION)/'); \ f2=$$(echo $$f | sed 's/\.in$$//;s/X\.Y/$(LLVM_VERSION)/'); \
@ -333,7 +344,22 @@ preconfigure:
done done
# Make install file executable for dh-exec # 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 # DH doesn't support the [power ...] in install on Ubuntu trusty
# fails with cp: cannot stat 'debian/tmp/[!powerpc': No such file or directory # fails with cp: cannot stat 'debian/tmp/[!powerpc': No such file or directory
@ -375,20 +401,11 @@ override_dh_auto_configure: preconfigure
fi) fi)
echo "Running tests: $(RUN_TEST)" echo "Running tests: $(RUN_TEST)"
echo "Using cmake: $(CMAKE_BIN)"; \
# 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"; \
cd $(TARGET_BUILD) && \ 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)" \ -DLLVM_ENABLE_PROJECTS="$(PROJECTS_LIST)" \
-DCMAKE_SUPPRESS_REGENERATION=ON \
-DCMAKE_INSTALL_PREFIX=/usr/lib/llvm-$(LLVM_VERSION) \ -DCMAKE_INSTALL_PREFIX=/usr/lib/llvm-$(LLVM_VERSION) \
-DCMAKE_VERBOSE_MAKEFILE=ON \ -DCMAKE_VERBOSE_MAKEFILE=ON \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
@ -480,13 +497,9 @@ debian-libcxx-build:
mkdir -p libcxx/build mkdir -p libcxx/build
mkdir -p libcxxabi/build mkdir -p libcxxabi/build
CMAKE_BIN=cmake; \ echo "Using cmake: $(CMAKE_BIN)"; \
if test -f /tmp/cmake/bin/cmake; then \
CMAKE_BIN=/tmp/cmake/bin/cmake; \
fi; \
echo "Using cmake: $$CMAKE_BIN"; \
cd libcxxabi/build && \ cd libcxxabi/build && \
$(PRE_PROCESS_CONF) $$CMAKE_BIN ../ \ $(PRE_PROCESS_CONF) $(CMAKE_BIN) ../ \
$(LIBCXX_CMAKE_OPTIONS) \ $(LIBCXX_CMAKE_OPTIONS) \
-DLIBCXXABI_LIBCXX_PATH=$(BASE_PATH)/libcxx \ -DLIBCXXABI_LIBCXX_PATH=$(BASE_PATH)/libcxx \
-DLIBCXXABI_LIBCXX_LIBRARY_PATH=$(BASE_PATH)/libcxx/build/lib \ -DLIBCXXABI_LIBCXX_LIBRARY_PATH=$(BASE_PATH)/libcxx/build/lib \
@ -501,13 +514,9 @@ debian-libcxxabi-build:
mkdir -p libcxxabi/build mkdir -p libcxxabi/build
CMAKE_BIN=cmake; \ echo "Using cmake: $(CMAKE_BIN)"; \
if test -f /tmp/cmake/bin/cmake; then \
CMAKE_BIN=/tmp/cmake/bin/cmake; \
fi; \
echo "Using cmake: $$CMAKE_BIN"; \
cd libcxx/build && \ cd libcxx/build && \
$(PRE_PROCESS_CONF) $$CMAKE_BIN ../ \ $(PRE_PROCESS_CONF) $(CMAKE_BIN) ../ \
$(LIBCXX_CMAKE_OPTIONS) \ $(LIBCXX_CMAKE_OPTIONS) \
-DLIBCXX_CXX_ABI=libcxxabi \ -DLIBCXX_CXX_ABI=libcxxabi \
-DLIBCXX_CXX_ABI_INCLUDE_PATHS=$(BASE_PATH)/libcxxabi/include \ -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 \ if test -f lld/docs/ld.lld-$(LLVM_VERSION).1; then \
mv lld/docs/ld.lld-$(LLVM_VERSION).1 lld/docs/ld.lld.1; \ mv lld/docs/ld.lld-$(LLVM_VERSION).1 lld/docs/ld.lld.1; \
fi 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 .PHONY: override_dh_strip preconfigure debian-full-build debian-libfuzzer-build debian-libcxx-build debian-libcxxabi-build