From 26c93c9ff75a299c89acf0317ee72b224785567b Mon Sep 17 00:00:00 2001 From: Gianfranco Costamagna Date: Thu, 22 Feb 2024 14:10:45 +0100 Subject: [PATCH] Add code to hack time64 in 32bit builds, and try to disable stack protector on mips64el --- debian/changelog | 15 ++++++++++----- debian/control | 14 +++++++++----- debian/control.in | 14 +++++++++----- debian/rules | 41 +++++++++++++++++++++++++++-------------- 4 files changed, 55 insertions(+), 29 deletions(-) diff --git a/debian/changelog b/debian/changelog index e8e63525..aee48d62 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +llvm-toolchain-snapshot (1:19~++20240302063716+a30ba2ca21b0-1~exp1) UNRELEASED; urgency=medium + + * experimental New snapshot release + + -- Sylvestre Ledru Sat, 02 Mar 2024 18:37:29 +0100 + llvm-toolchain-snapshot (1:19~++20240125092523+41fe98a6e7e5-1~exp1) experimental; urgency=medium [ Sylvestre Ledru ] @@ -26,13 +32,12 @@ llvm-toolchain-snapshot (1:19~++20240125092523+41fe98a6e7e5-1~exp1) experimental -- Sylvestre Ledru Thu, 25 Jan 2024 14:51:10 +0100 -llvm-toolchain-18 (1:18.1.0~rc2-4) UNRELEASED; urgency=medium +llvm-toolchain-18 (1:18.1.0~rc2-4) unstable; urgency=medium - [ John Paul Adrian Glaubitz ] - * Install *clang_rt* on sparc and sparc64 - * Run chrpath for libclang on sparc and sparc64 + * Fix 32bit builds, exclude i386, don't build clang-rt there + * Revert gold linker on mips64el - -- John Paul Adrian Glaubitz Fri, 16 Feb 2024 09:53:15 +0100 + -- Gianfranco Costamagna Fri, 09 Feb 2024 20:59:07 +0100 llvm-toolchain-18 (1:18.1.0~rc2-3) unstable; urgency=medium diff --git a/debian/control b/debian/control index 63c87b03..9d71ef75 100644 --- a/debian/control +++ b/debian/control @@ -135,6 +135,7 @@ Description: C, C++ and Objective-C compiler - Documentation This package contains the documentation. Package: libclang1-19 +Provides: ${t64:Provides} Section: libs Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} @@ -236,6 +237,7 @@ Description: High-level loop and data-locality optimizer # ------------- clang libraries ------------- Package: libclang-cpp19 +Provides: ${t64:Provides} Section: libs Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm19 (= ${binary:Version}) @@ -338,6 +340,7 @@ Description: Clang examples # ------------- LLVM ------------- Package: libllvm19 +Provides: ${t64:Provides} Architecture: any Section: libs Depends: ${shlibs:Depends}, ${misc:Depends} @@ -570,6 +573,7 @@ Description: Next generation, high-performance debugger Project, such as the Clang expression parser and LLVM disassembler. Package: liblldb-19 +Provides: ${t64:Provides} Architecture: amd64 arm64 armel armhf i386 ppc64el kfreebsd-amd64 kfreebsd-i386 s390 s390x sparc hppa m68k sh4 x32 loong64 # ia64 hurd powerpc powerpcspe ppc64 alpha riscv64 s390x sparc64 mipsel mips64el have been removed Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm19 (= ${binary:Version}) @@ -634,7 +638,7 @@ Package: libomp5-19 Multi-Arch: same Architecture: amd64 arm64 armhf i386 loong64 mips64el ppc64el ppc64 riscv64 Depends: ${shlibs:Depends}, ${misc:Depends} -Provides: libomp-x.y +Provides: ${t64:Provides}, libomp-x.y Conflicts: libomp-x.y Replaces: libomp-x.y Description: LLVM OpenMP runtime @@ -665,7 +669,7 @@ Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Suggests: clang -Provides: libc++-x.y +Provides: ${t64:Provides}, libc++-x.y Conflicts: libc++-x.y Replaces: libc++-x.y Description: LLVM C++ Standard library @@ -735,7 +739,7 @@ Architecture: any Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} -Provides: libc++abi-x.y +Provides: ${t64:Provides}, libc++abi-x.y Conflicts: libc++abi-x.y Replaces: libc++abi-x.y Description: LLVM low level support for a standard C++ library @@ -829,7 +833,7 @@ Architecture: amd64 arm64 armhf i386 loong64 ppc64el ppc64 riscv64 Multi-Arch: same Depends: ${shlibs:Depends}, ${misc:Depends} -Provides: libunwind-x.y +Provides: ${t64:Provides}, libunwind-x.y Conflicts: libunwind-x.y Replaces: libunwind-x.y Description: production-quality unwinder @@ -877,7 +881,7 @@ Architecture: any Multi-Arch: same Depends: ${shlibs:Depends}, ${misc:Depends} -Provides: libmlir-x.y +Provides: ${t64:Provides}, libmlir-x.y Conflicts: libmlir-x.y Replaces: libmlir-x.y Description: Multi-Level Intermediate Representation library diff --git a/debian/control.in b/debian/control.in index d47e0cc4..94402b28 100644 --- a/debian/control.in +++ b/debian/control.in @@ -135,6 +135,7 @@ Description: C, C++ and Objective-C compiler - Documentation This package contains the documentation. Package: libclang1-@LLVM_VERSION@ +Provides: ${t64:Provides} Section: libs Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} @@ -236,6 +237,7 @@ Description: High-level loop and data-locality optimizer # ------------- clang libraries ------------- Package: libclang-cpp@LLVM_VERSION@ +Provides: ${t64:Provides} Section: libs Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm@LLVM_VERSION@ (= ${binary:Version}) @@ -338,6 +340,7 @@ Description: Clang examples # ------------- LLVM ------------- Package: libllvm@LLVM_VERSION@ +Provides: ${t64:Provides} Architecture: any Section: libs Depends: ${shlibs:Depends}, ${misc:Depends} @@ -570,6 +573,7 @@ Description: Next generation, high-performance debugger Project, such as the Clang expression parser and LLVM disassembler. Package: liblldb-@LLVM_VERSION@ +Provides: ${t64:Provides} Architecture: amd64 arm64 armel armhf i386 ppc64el kfreebsd-amd64 kfreebsd-i386 s390 s390x sparc hppa m68k sh4 x32 loong64 # ia64 hurd powerpc powerpcspe ppc64 alpha riscv64 s390x sparc64 mipsel mips64el have been removed Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm@LLVM_VERSION@ (= ${binary:Version}) @@ -634,7 +638,7 @@ Package: libomp5-@LLVM_VERSION@ Multi-Arch: same Architecture: amd64 arm64 armhf i386 loong64 mips64el ppc64el ppc64 riscv64 Depends: ${shlibs:Depends}, ${misc:Depends} -Provides: libomp-x.y +Provides: ${t64:Provides}, libomp-x.y Conflicts: libomp-x.y Replaces: libomp-x.y Description: LLVM OpenMP runtime @@ -665,7 +669,7 @@ Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Suggests: clang -Provides: libc++-x.y +Provides: ${t64:Provides}, libc++-x.y Conflicts: libc++-x.y Replaces: libc++-x.y Description: LLVM C++ Standard library @@ -735,7 +739,7 @@ Architecture: any Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} -Provides: libc++abi-x.y +Provides: ${t64:Provides}, libc++abi-x.y Conflicts: libc++abi-x.y Replaces: libc++abi-x.y Description: LLVM low level support for a standard C++ library @@ -829,7 +833,7 @@ Architecture: amd64 arm64 armhf i386 loong64 ppc64el ppc64 riscv64 Multi-Arch: same Depends: ${shlibs:Depends}, ${misc:Depends} -Provides: libunwind-x.y +Provides: ${t64:Provides}, libunwind-x.y Conflicts: libunwind-x.y Replaces: libunwind-x.y Description: production-quality unwinder @@ -877,7 +881,7 @@ Architecture: any Multi-Arch: same Depends: ${shlibs:Depends}, ${misc:Depends} -Provides: libmlir-x.y +Provides: ${t64:Provides}, libmlir-x.y Conflicts: libmlir-x.y Replaces: libmlir-x.y Description: Multi-Level Intermediate Representation library diff --git a/debian/rules b/debian/rules index bbccb144..22670fc1 100755 --- a/debian/rules +++ b/debian/rules @@ -3,7 +3,6 @@ # polly & lldb aren't enabled for every platform PROJECTS = clang;clang-tools-extra;lld;cross-project-tests;mlir # openmp & libunwind aren't enabled for every platform -RUNTIMES = compiler-rt;libcxx;libcxxabi TARGET_BUILD := build-llvm TARGET_BUILD_STAGE2 := $(TARGET_BUILD)/tools/clang/stage2-bins @@ -22,6 +21,27 @@ ifeq ($(LLVM_VERSION),$(LLVM_VERSION_FULL)) endif LLVM_VERSION_NEXT := $(shell echo $(LLVM_VERSION_FULL) | awk -F. '{ OFS="."; $$NF+=1; print}') +# dpkg-buildflags support +# disable fixfilepath in favor of the llvm-project supplied flavor, disable lto +# remove +time64,+lfs once the time64_t transition starts +ifeq ($(DEB_HOST_ARCH),i386) + RUNTIMES = compiler-rt;libcxx;libcxxabi + export DEB_BUILD_MAINT_OPTIONS = reproducible=-fixfilepath,-fixdebugpath optimize=-lto +else + ifeq ($(DEB_HOST_ARCH_BITS),32) + RUNTIMES = libcxx;libcxxabi + export DEB_BUILD_MAINT_OPTIONS = reproducible=-fixfilepath,-fixdebugpath optimize=-lto abi=+time64,+lfs + skip_packages = -Nlibclang-rt-$(LLVM_VERSION)-dev + else + RUNTIMES = compiler-rt;libcxx;libcxxabi + ifeq ($(DEB_HOST_ARCH),mips64el) + export DEB_BUILD_MAINT_OPTIONS = reproducible=-fixfilepath,-fixdebugpath optimize=-lto hardening=-stackprotector,-stackprotectorstrong + else + export DEB_BUILD_MAINT_OPTIONS = reproducible=-fixfilepath,-fixdebugpath optimize=-lto + endif + endif +endif + SOURCE_NAME := $(shell dpkg-parsechangelog -S Source) ifneq (,$(findstring snapshot,$(SOURCE_NAME))) BRANCH_NAME=snapshot @@ -63,16 +83,6 @@ include /usr/share/dpkg/architecture.mk CONFIGURE_EXTRA = -# dpkg-buildflags support -# disable fixfilepath in favor of the llvm-project supplied flavor, disable lto -# remove +time64,+lfs once the time64_t transition starts -export DEB_BUILD_MAINT_OPTIONS = reproducible=-fixfilepath,-fixdebugpath optimize=-lto - -ifeq ($(DEB_BUILD_ARCH_BITS),64) - export DEB_BUILD_MAINT_OPTIONS += abi=+time64,+lfs -endif - - # these are handled on a per stage / build basis ifeq ($(VENDOR)-$(DEB_HOST_ARCH),Ubuntu-ppc64el) export DEB_CFLAGS_MAINT_STRIP = -g -O3 @@ -1136,7 +1146,7 @@ override_dh_auto_install: ifeq (,$(filter $(DEB_HOST_ARCH), powerpc powerpcspe)) ifneq (,$(filter $(DEB_HOST_ARCH_OS),linux)) # To fix custom-library-search-path - chrpath -d $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/clang/$(LLVM_VERSION)*/lib/linux/*.so + chrpath -d $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/clang/$(LLVM_VERSION)*/lib/linux/*.so || true endif endif @@ -1398,7 +1408,7 @@ else rm -rf $(CURDIR)/debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/polly/*.cmake endif endif - dh_install --fail-missing + dh_install --fail-missing ${skip_packages} # Move the libc++ abi files from libc++ to libc++-abi for the wasm32 packages # These packages are arch: all, so only do so when the packages are built ifneq (,$(filter libc++-$(LLVM_VERSION)-dev-wasm32, $(packages))) @@ -1526,8 +1536,11 @@ override_dh_auto_test: endif +override_dh_builddeb: + dh_builddeb ${skip_packages} + override_dh_gencontrol: stamps/sccache-stats - dh_gencontrol -- $(control_vars) + dh_gencontrol ${skip_packages} -- $(control_vars) override_dh_auto_clean: