For apt.llvm.org on stretch, from snapshot, also use libc++ for the build. It adds a dependency on libc++. It might be extended in the future for for now, it is Debian/stretch only

This commit is contained in:
Sylvestre Ledru 2022-08-23 17:25:33 +02:00
parent a6baf364f5
commit 89fafb13d8
2 changed files with 21 additions and 2 deletions

3
debian/changelog vendored
View File

@ -4,6 +4,9 @@ llvm-toolchain-snapshot (1:16~++20220727093617+17fb879764dc-1~exp1) experimental
* clang doesn't have a specific SONAME anymore.
See https://reviews.llvm.org/D129160 for the rational
* Install clang-tblgen in clang-tools-X.Y
* For apt.llvm.org on stretch, from snapshot, also use libc++ for the
build. It adds a dependency on libc++. It might be extended in
the future for for now, it is Debian/stretch only
-- Sylvestre Ledru <sylvestre@debian.org> Wed, 27 Jul 2022 21:36:27 +0200

20
debian/rules vendored
View File

@ -62,6 +62,11 @@ LDFLAGS_EXTRA = -Wl,--build-id
STAGE_1_CFLAGS = $(CFLAGS) $(CFLAGS_EXTRA) $(CPPFLAGS)
STAGE_1_CXXFLAGS = $(CXXFLAGS) $(CXXFLAGS_EXTRA) $(CPPFLAGS)
STAGE_1_LDFLAGS = $(LDFLAGS) $(LDFLAGS_EXTRA)
# If we build with libc++, we might want to set different arguments for
# stage 1 & runtimes
RUNTIMES_CFLAGS = $(STAGE_1_CFLAGS)
RUNTIMES_CXXFLAGS := $(STAGE_1_CXXFLAGS)
RUNTIMES_LDFLAGS := $(STAGE_1_LDFLAGS)
# collect all flags for stage 2 toolchain and stand-alone builds
STAGE_2_CFLAGS = $(CFLAGS) $(CFLAGS_EXTRA) $(CPPFLAGS)
@ -106,7 +111,16 @@ ifneq (,$(filter $(DISTRO),stretch))
# GCC_VERSION := 7
# Don't enable lld python for old distros
STAGE_ALL_CMAKE_EXTRA += -DLLDB_ENABLE_PYTHON=OFF
# Only enabled for stage 1, for stage2, it will use the local libc++ version
STAGE_1_CMAKE_EXTRA += -DCLANG_DEFAULT_CXX_STDLIB=libc++
STAGE_1_CMAKE_EXTRA += -DLLVM_ENABLE_LIBCXX=ON
STAGE_1_CXXFLAGS += -I/usr/lib/llvm-14/include/c++/v1/ -stdlib=libc++
STAGE_1_LDFLAGS += -stdlib=libc++
USE_CLANG_PACKAGE_TO_BUILD_ITSELF = yes
else
# For all other deb/ubuntu, use libstdc++
# TODO: At some point, we might want to use libc++
CMAKE_EXTRA += -DCLANG_DEFAULT_CXX_STDLIB=libstdc++
endif
Z3_FLAG = -DLLVM_ENABLE_Z3_SOLVER=OFF
@ -462,6 +476,9 @@ preconfigure:
@echo "LLVM_VERSION_SNAPSHOT=$(LLVM_VERSION_SNAPSHOT)"
@echo "PATH=$(PATH)"
@echo "LD_LIBRARY_PATH=$(LD_LIBRARY_PATH)"
@echo "RUNTIMES_CXXFLAGS=$(RUNTIMES_CXXFLAGS)"
@echo "STAGE_1_CXXFLAGS=$(STAGE_1_CXXFLAGS)"
@echo "STAGE_2_CFLAGS=$(STAGE_2_CFLAGS)"
for f in debian/*.in; do \
f2=$$(echo $$f | sed 's/\.in$$//;s/X\.Y/$(LLVM_VERSION)/'); \
@ -580,7 +597,6 @@ override_dh_auto_configure: preconfigure
-DCLANG_PLUGIN_SUPPORT=OFF \
-DCLANG_BUILD_EXAMPLES=OFF \
-DCLANG_DEFAULT_LINKER=ld \
-DCLANG_DEFAULT_CXX_STDLIB=libstdc++ \
-DCLANG_DEFAULT_RTLIB=libgcc \
-DCOMPILER_RT_BUILD_XRAY=OFF \
-DCOMPILER_RT_INCLUDE_TESTS=OFF \
@ -632,7 +648,7 @@ override_dh_auto_configure: preconfigure
-DBOOTSTRAP_PYTHON_EXECUTABLE=/usr/bin/python3 \
$(BOOTSTRAP_CMAKE_EXTRA) \
-DBOOTSTRAP_BUILTINS_CMAKE_ARGS="-DCMAKE_C_FLAGS=$(STAGE_2_CFLAGS);-DCMAKE_CXX_FLAGS=$(STAGE_2_CXXFLAGS);-DCMAKE_EXE_LINKER_FLAGS=$(STAGE_2_LDFLAGS);-DCMAKE_SHARED_LINKER_FLAGS=$(STAGE_2_LDFLAGS);-DCMAKE_MODULE_LINKER_FLAGS=$(STAGE_2_LDFLAGS);-DCMAKE_BUILD_TYPE=RelWithDebInfo;-DCMAKE_C_FLAGS_RELWITHDEBINFO=$(opt_flags);-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=$(opt_flags);-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF" \
-DBOOTSTRAP_RUNTIMES_CMAKE_ARGS="-DCMAKE_C_FLAGS=$(STAGE_2_CFLAGS);-DCMAKE_CXX_FLAGS=$(STAGE_2_CXXFLAGS);-DCMAKE_EXE_LINKER_FLAGS=$(STAGE_2_LDFLAGS) -L$(STAGE_1_LIB_DIR);-DCMAKE_SHARED_LINKER_FLAGS=$(STAGE_2_LDFLAGS) -L$(STAGE_1_LIB_DIR);-DCMAKE_MODULE_LINKER_FLAGS=$(STAGE_2_LDFLAGS) -L$(STAGE_1_LIB_DIR);-DCMAKE_BUILD_TYPE=RelWithDebInfo;-DCMAKE_C_FLAGS_RELWITHDEBINFO=$(opt_flags);-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=$(opt_flags);-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF"
-DBOOTSTRAP_RUNTIMES_CMAKE_ARGS="-DCMAKE_C_FLAGS=$(STAGE_2_CFLAGS);-DCMAKE_CXX_FLAGS=$(RUNTIMES_CXXFLAGS);-DCMAKE_EXE_LINKER_FLAGS=$(STAGE_2_LDFLAGS) -L$(STAGE_1_LIB_DIR);-DCMAKE_SHARED_LINKER_FLAGS=$(STAGE_2_LDFLAGS) -L$(STAGE_1_LIB_DIR);-DCMAKE_MODULE_LINKER_FLAGS=$(STAGE_2_LDFLAGS) -L$(STAGE_1_LIB_DIR);-DCMAKE_BUILD_TYPE=RelWithDebInfo;-DCMAKE_C_FLAGS_RELWITHDEBINFO=$(opt_flags);-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=$(opt_flags);-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF"
FOUND_VERSION=`grep LLVM_VERSION_STRING build-llvm/include/llvm/Config/llvm-config.h|cut -d\" -f2`; \
if ! echo "$(LLVM_VERSION_FULL)"|grep "$$FOUND_VERSION"; then \