From cff18adb3bd474eb4de400a0f43a1062a2b83303 Mon Sep 17 00:00:00 2001 From: Matthias Klose Date: Sat, 16 Mar 2024 22:16:18 +0100 Subject: [PATCH] * Add a stage1 profile to disable curl, grpc and spirv. * Build with --as-needed. --- debian/changelog | 8 ++++++++ debian/control | 12 ++++++------ debian/control.in | 12 ++++++------ debian/rules | 12 +++++++++--- 4 files changed, 29 insertions(+), 15 deletions(-) diff --git a/debian/changelog b/debian/changelog index a6098d29..c6f8d697 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +llvm-toolchain-16 (1:16.0.6-24) UNRELEASED; urgency=medium + + [ Matthias Klose ] + * Add a stage1 profile to disable curl, grpc and spirv. + * Build with --as-needed. + + -- Matthias Klose Sat, 16 Mar 2024 22:12:22 +0100 + llvm-toolchain-16 (1:16.0.6-23) unstable; urgency=medium [ Matthias Klose ] diff --git a/debian/control b/debian/control index aa8c1d5d..9a8529e1 100644 --- a/debian/control +++ b/debian/control @@ -26,13 +26,13 @@ Build-Depends: debhelper (>= 10.0), cmake, ninja-build, llvm-spirv-16 [ amd64 arm64 armel armhf i386 mips64el ppc64el riscv64 s390x ] | llvm-spirv-15 [ amd64 arm64 armel armhf i386 mips64el mipsel ppc64el riscv64 s390x ] | llvm-spirv-14 [ amd64 arm64 armel armhf i386 mips64el mipsel ppc64el riscv64 s390x ] | hello, - spirv-tools [ linux-any ] | hello [ !i386], + spirv-tools [ linux-any ] | hello [ !i386], wasi-libc | hello, - libcurl4-openssl-dev | libcurl-dev, - libgrpc++-dev [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x], - protobuf-compiler-grpc [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x], - libprotobuf-dev [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x], - protobuf-compiler [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x] + libcurl4-openssl-dev | libcurl-dev , + libgrpc++-dev [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x] , + protobuf-compiler-grpc [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x] , + libprotobuf-dev [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x] , + protobuf-compiler [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x] , # "| hello" is for older buster/bionic distros without spirv support Build-Conflicts: oprofile Standards-Version: 4.6.2 diff --git a/debian/control.in b/debian/control.in index 0cf5a2c7..07a84747 100644 --- a/debian/control.in +++ b/debian/control.in @@ -26,13 +26,13 @@ Build-Depends: debhelper (>= 10.0), cmake, ninja-build, llvm-spirv-16 [ amd64 arm64 armel armhf i386 mips64el ppc64el riscv64 s390x ] | llvm-spirv-15 [ amd64 arm64 armel armhf i386 mips64el mipsel ppc64el riscv64 s390x ] | llvm-spirv-14 [ amd64 arm64 armel armhf i386 mips64el mipsel ppc64el riscv64 s390x ] | hello, - spirv-tools [ linux-any ] | hello [ !i386], + spirv-tools [ linux-any ] | hello [ !i386], wasi-libc | hello, - libcurl4-openssl-dev | libcurl-dev, - libgrpc++-dev [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x], - protobuf-compiler-grpc [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x], - libprotobuf-dev [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x], - protobuf-compiler [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x] + libcurl4-openssl-dev | libcurl-dev , + libgrpc++-dev [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x] , + protobuf-compiler-grpc [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x] , + libprotobuf-dev [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x] , + protobuf-compiler [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x] , # "| hello" is for older buster/bionic distros without spirv support Build-Conflicts: oprofile Standards-Version: 4.6.2 diff --git a/debian/rules b/debian/rules index a437a8de..63da6d0f 100755 --- a/debian/rules +++ b/debian/rules @@ -64,7 +64,7 @@ include /usr/share/dpkg/buildflags.mk # collect additional flags for all stages all builds CFLAGS_EXTRA = -Wno-unused-command-line-argument CXXFLAGS_EXTRA = -Wno-unused-command-line-argument -LDFLAGS_EXTRA = -Wl,--build-id +LDFLAGS_EXTRA = -Wl,--build-id,--as-needed # collect all flags for stage 1 toolchain build only STAGE_1_CFLAGS = $(CFLAGS) $(CFLAGS_EXTRA) $(CPPFLAGS) @@ -137,6 +137,7 @@ STAGE_2_CMAKE_EXTRA += -DCLANG_SYSTEMZ_DEFAULT_ARCH=$(ZARCH) # clangd remote index support requires GRPC & protobuf. # Enable if minimum tested versions are available. CLANGD_GRPC_INSTALLED=no +ifeq (,$(filter stage1, $(DEB_BUILD_PROFILES))) ifeq ($(shell v=$$(dpkg-query -W -f '$${Version}' libgrpc++-dev 2>/dev/null); if [ -z "$$v" ]; then echo 1; else dpkg --compare-versions $$v gt 1.30.0; echo $$?; fi),0) ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' protobuf-compiler-grpc) gt 1.30.0; echo $$?),0) ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' libprotobuf-dev) gt 3.12.0; echo $$?),0) @@ -147,6 +148,7 @@ endif endif endif endif +endif export CC=gcc-$(GCC_VERSION) export CXX=g++-$(GCC_VERSION) @@ -252,6 +254,9 @@ else control_vars = '-Vdep:devlibs=libstdc++6-$(GCC_VERSION)-dev' endif +ifneq (,$(filter stage1, $(DEB_BUILD_PROFILES))) + LLVM_SPIRV_INSTALLED = no +else LLVM_SPIRV_VERSION := $(LLVM_VERSION) LLVM_SPIRV := $(shell bash -c "command -v llvm-spirv-$(LLVM_SPIRV_VERSION)" 2>/dev/null) ifndef LLVM_SPIRV @@ -273,6 +278,7 @@ else LLVM_SPIRV_INSTALLED = yes endif endif +endif LIBCLC_TARGETS_TO_BUILD=amdgcn--;amdgcn--amdhsa;amdgcn-mesa-mesa3d;r600--;nvptx--;nvptx64--;nvptx--nvidiacl;nvptx64--nvidiacl LIBCLC_LLVM_SPIRV = @@ -675,7 +681,7 @@ endif -DLLVM_INCLUDE_GO_TESTS=OFF \ -DLLVM_USE_RELATIVE_PATHS_IN_FILES=ON \ -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON \ - -DLLVM_ENABLE_CURL=ON \ + -DLLVM_ENABLE_CURL=$(if $(filter stage1, $(DEB_BUILD_PROFILES)),OFF,ON) \ -DLLVM_USE_RELATIVE_PATHS_IN_DEBUG_INFO=ON \ -DCLANG_PLUGIN_SUPPORT=OFF \ -DCLANG_BUILD_EXAMPLES=OFF \ @@ -727,7 +733,7 @@ endif -DBOOTSTRAP_LLVM_POLLY_LINK_INTO_TOOLS=ON \ -DBOOTSTRAP_LLVM_EXPERIMENTAL_TARGETS_TO_BUILD="M68k;Xtensa" \ -DBOOTSTRAP_LLVM_LINK_LLVM_DYLIB=ON \ - -DBOOTSTRAP_LLVM_ENABLE_CURL=ON \ + -DBOOTSTRAP_LLVM_ENABLE_CURL=$(if $(filter stage1, $(DEB_BUILD_PROFILES)),OFF,ON) \ -DBOOTSTRAP_CLANG_LINK_CLANG_DYLIB=ON \ -DBOOTSTRAP_LIBCLANG_LIBRARY_VERSION=$(SONAME_EXT) \ -DBOOTSTRAP_LIBCXX_INSTALL_EXPERIMENTAL_LIBRARY=ON \