* Add a stage1 profile to disable curl, grpc and spirv.

* Build with --as-needed.
This commit is contained in:
Matthias Klose 2024-03-16 22:16:18 +01:00
parent 3d4b64df99
commit cff18adb3b
4 changed files with 29 additions and 15 deletions

8
debian/changelog vendored
View File

@ -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 <doko@debian.org> Sat, 16 Mar 2024 22:12:22 +0100
llvm-toolchain-16 (1:16.0.6-23) unstable; urgency=medium
[ Matthias Klose ]

12
debian/control vendored
View File

@ -26,13 +26,13 @@ Build-Depends: debhelper (>= 10.0), cmake, ninja-build,
llvm-spirv-16 [ amd64 arm64 armel armhf i386 mips64el ppc64el riscv64 s390x ] <!stage1> |
llvm-spirv-15 [ amd64 arm64 armel armhf i386 mips64el mipsel ppc64el riscv64 s390x ] <!stage1> |
llvm-spirv-14 [ amd64 arm64 armel armhf i386 mips64el mipsel ppc64el riscv64 s390x ] <!stage1> | hello,
spirv-tools [ linux-any ] | hello [ !i386],
spirv-tools [ linux-any ] <!stage1> | 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 <!stage1> | libcurl-dev <!stage1>,
libgrpc++-dev [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x] <!stage1>,
protobuf-compiler-grpc [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x] <!stage1>,
libprotobuf-dev [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x] <!stage1>,
protobuf-compiler [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x] <!stage1>,
# "| hello" is for older buster/bionic distros without spirv support
Build-Conflicts: oprofile
Standards-Version: 4.6.2

12
debian/control.in vendored
View File

@ -26,13 +26,13 @@ Build-Depends: debhelper (>= 10.0), cmake, ninja-build,
llvm-spirv-16 [ amd64 arm64 armel armhf i386 mips64el ppc64el riscv64 s390x ] <!stage1> |
llvm-spirv-15 [ amd64 arm64 armel armhf i386 mips64el mipsel ppc64el riscv64 s390x ] <!stage1> |
llvm-spirv-14 [ amd64 arm64 armel armhf i386 mips64el mipsel ppc64el riscv64 s390x ] <!stage1> | hello,
spirv-tools [ linux-any ] | hello [ !i386],
spirv-tools [ linux-any ] <!stage1> | 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 <!stage1> | libcurl-dev <!stage1>,
libgrpc++-dev [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x] <!stage1>,
protobuf-compiler-grpc [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x] <!stage1>,
libprotobuf-dev [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x] <!stage1>,
protobuf-compiler [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x] <!stage1>,
# "| hello" is for older buster/bionic distros without spirv support
Build-Conflicts: oprofile
Standards-Version: 4.6.2

12
debian/rules vendored
View File

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