Add code to hack time64 in 32bit builds, and try to disable stack protector on mips64el

This commit is contained in:
Gianfranco Costamagna 2024-02-22 14:10:45 +01:00 committed by Sylvestre Ledru
parent bb17074e3c
commit 26c93c9ff7
4 changed files with 55 additions and 29 deletions

15
debian/changelog vendored
View File

@ -1,3 +1,9 @@
llvm-toolchain-snapshot (1:19~++20240302063716+a30ba2ca21b0-1~exp1) UNRELEASED; urgency=medium
* experimental New snapshot release
-- Sylvestre Ledru <sylvestre@debian.org> 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 <sylvestre@debian.org> 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 <glaubitz@physik.fu-berlin.de> Fri, 16 Feb 2024 09:53:15 +0100
-- Gianfranco Costamagna <locutusofborg@debian.org> Fri, 09 Feb 2024 20:59:07 +0100
llvm-toolchain-18 (1:18.1.0~rc2-3) unstable; urgency=medium

14
debian/control vendored
View File

@ -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

14
debian/control.in vendored
View File

@ -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

41
debian/rules vendored
View File

@ -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: