mirror of
https://git.proxmox.com/git/llvm-toolchain
synced 2025-06-14 14:47:14 +00:00
flag consinstency pass for build stages and sub-builds
utilize dpkg-buildflags for defaults where appropriate and make sure all flags intended for a stage are also applied to the stage's builtins and runtimes builds
This commit is contained in:
parent
ba7dad1665
commit
dd07b033af
34
debian/rules
vendored
34
debian/rules
vendored
@ -38,10 +38,22 @@ DH_VERSION := $(shell dpkg -s debhelper | grep '^Version' | awk '{print $$2}')
|
||||
include /usr/share/dpkg/architecture.mk
|
||||
|
||||
CONFIGURE_EXTRA =
|
||||
|
||||
# set up global build flags (dpkg-buildflags)
|
||||
|
||||
# these are handled on a per stage / build basis
|
||||
export DEB_CFLAGS_MAINT_STRIP=-g -O2
|
||||
export DEB_CXXFLAGS_MAINT_STRIP=-g -O2
|
||||
|
||||
# additional global build flags
|
||||
export DEB_CFLAGS_MAINT_APPEND=-Wno-unused-command-line-argument
|
||||
export DEB_CXXFLAGS_MAINT_APPEND=-Wno-unused-command-line-argument
|
||||
export DEB_LDFLAGS_MAINT_APPEND=-Wl,--build-id
|
||||
|
||||
# all stages all builds
|
||||
CFLAGS_EXTRA = -Wno-unused-command-line-argument
|
||||
CXXFLAGS_EXTRA = -Wno-unused-command-line-argument
|
||||
LDFLAGS_EXTRA = -Wno-unused-command-line-argument -Wl,--build-id
|
||||
CFLAGS_EXTRA = $(shell dpkg-buildflags --get CFLAGS) $(shell dpkg-buildflags --get CPPFLAGS)
|
||||
CXXFLAGS_EXTRA = $(shell dpkg-buildflags --get CXXFLAGS) $(shell dpkg-buildflags --get CPPFLAGS)
|
||||
LDFLAGS_EXTRA = $(shell dpkg-buildflags --get LDFLAGS)
|
||||
|
||||
# We use a stage2 build. It means that a first clang is built using gcc,
|
||||
# a second clang is built with the first
|
||||
@ -503,8 +515,8 @@ override_dh_auto_configure: preconfigure
|
||||
-DLIBOMP_ENABLE_RTTI=OFF \
|
||||
-DLIBOMP_OMPT_SUPPORT=OFF \
|
||||
$(CMAKE_EXTRA) \
|
||||
-DBUILTINS_CMAKE_ARGS="-DCMAKE_SYSTEM_NAME=Linux;-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF" \
|
||||
-DRUNTIMES_CMAKE_ARGS="-DCMAKE_SYSTEM_NAME=Linux;-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF" \
|
||||
-DBUILTINS_CMAKE_ARGS="-DCMAKE_C_FLAGS=$(STAGE1_CFLAGS_EXTRA);-DCMAKE_CXX_FLAGS=$(STAGE1_CXXFLAGS_EXTRA);-DCMAKE_EXE_LINKER_FLAGS=$(STAGE1_LDFLAGS_EXTRA);-DCMAKE_SHARED_LINKER_FLAGS=$(STAGE1_LDFLAGS_EXTRA);-DCMAKE_MODULE_LINKER_FLAGS=$(STAGE1_LDFLAGS_EXTRA);-DCMAKE_SYSTEM_NAME=Linux;-DCMAKE_BUILD_TYPE=Release;-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF" \
|
||||
-DRUNTIMES_CMAKE_ARGS="-DCMAKE_C_FLAGS=$(STAGE1_CFLAGS_EXTRA);-DCMAKE_CXX_FLAGS=$(STAGE1_CXXFLAGS_EXTRA);-DCMAKE_EXE_LINKER_FLAGS=$(STAGE1_LDFLAGS_EXTRA);-DCMAKE_SHARED_LINKER_FLAGS=$(STAGE1_LDFLAGS_EXTRA);-DCMAKE_MODULE_LINKER_FLAGS=$(STAGE1_LDFLAGS_EXTRA);-DCMAKE_SYSTEM_NAME=Linux;-DCMAKE_BUILD_TYPE=Release;-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF" \
|
||||
-DCLANG_ENABLE_BOOTSTRAP=ON \
|
||||
-DCLANG_BOOTSTRAP_TARGETS="$(ENABLED_STAGE2_CMAKE_BUILD_TARGETS)" \
|
||||
-DBOOTSTRAP_CMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||
@ -530,8 +542,8 @@ override_dh_auto_configure: preconfigure
|
||||
-DBOOTSTRAP_LIBCLANG_LIBRARY_VERSION=$(SONAME_EXT) \
|
||||
-DBOOTSTRAP_LIBCXX_INSTALL_EXPERIMENTAL_LIBRARY=ON \
|
||||
$(BOOTSTRAP_CMAKE_EXTRA) \
|
||||
-DBOOTSTRAP_BUILTINS_CMAKE_ARGS="-DCMAKE_SYSTEM_NAME=Linux;-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_CXX_FLAGS=$(STAGE2_CXXFLAGS_EXTRA);-DCMAKE_EXE_LINKER_FLAGS=$(STAGE2_LDFLAGS_EXTRA) -L$(STAGE1_LIB_DIR);-DCMAKE_SHARED_LINKER_FLAGS=$(STAGE2_LDFLAGS_EXTRA) -L$(STAGE1_LIB_DIR);-DCMAKE_MODULE_LINKER_FLAGS=$(STAGE2_LDFLAGS_EXTRA) -L$(STAGE1_LIB_DIR);-DCMAKE_SYSTEM_NAME=Linux;-DCMAKE_BUILD_TYPE=RelWithDebInfo;-DCMAKE_C_FLAGS_RELWITHDEBINFO=$(opt_flags);-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=$(opt_flags);-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF" \
|
||||
-DBOOTSTRAP_BUILTINS_CMAKE_ARGS="-DCMAKE_C_FLAGS=$(STAGE2_CFLAGS_EXTRA);-DCMAKE_CXX_FLAGS=$(STAGE2_CXXFLAGS_EXTRA);-DCMAKE_EXE_LINKER_FLAGS=$(STAGE2_LDFLAGS_EXTRA);-DCMAKE_SHARED_LINKER_FLAGS=$(STAGE2_LDFLAGS_EXTRA);-DCMAKE_MODULE_LINKER_FLAGS=$(STAGE2_LDFLAGS_EXTRA);-DCMAKE_SYSTEM_NAME=Linux;-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=$(STAGE2_CFLAGS_EXTRA);-DCMAKE_CXX_FLAGS=$(STAGE2_CXXFLAGS_EXTRA);-DCMAKE_EXE_LINKER_FLAGS=$(STAGE2_LDFLAGS_EXTRA) -L$(STAGE1_LIB_DIR);-DCMAKE_SHARED_LINKER_FLAGS=$(STAGE2_LDFLAGS_EXTRA) -L$(STAGE1_LIB_DIR);-DCMAKE_MODULE_LINKER_FLAGS=$(STAGE2_LDFLAGS_EXTRA) -L$(STAGE1_LIB_DIR);-DCMAKE_SYSTEM_NAME=Linux;-DCMAKE_BUILD_TYPE=RelWithDebInfo;-DCMAKE_C_FLAGS_RELWITHDEBINFO=$(opt_flags);-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=$(opt_flags);-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF" \
|
||||
-DCLANG_BOOTSTRAP_PASSTHROUGH="CMAKE_INSTALL_PREFIX;CMAKE_SUPPRESS_REGENERATION;ENABLE_LINKER_BUILD_ID;LLVM_ENABLE_PIC;LLVM_ENABLE_RTTI;LLVM_INCLUDE_GO_TESTS;CLANG_DEFAULT_LINKER;CLANG_DEFAULT_CXX_STDLIB;CLANG_DEFAULT_RTLIB;COMPILER_RT_USE_LIBCXX;COMPILER_RT_USE_BUILTINS_LIBRARY;COMPILER_RT_INCLUDE_TESTS;LIBUNWIND_ENABLE_SHARED;LIBUNWIND_USE_COMPILER_RT;LIBCXXABI_ENABLE_SHARED;LIBCXXABI_ENABLE_EXCEPTIONS;LIBCXXABI_USE_COMPILER_RT;LIBCXX_USE_COMPILER_RT;LIBCXX_ENABLE_SHARED;LIBCXX_ENABLE_EXCEPTIONS;LIBCXX_ENABLE_STATIC_ABI_LIBRARY;LIBCXX_STATICALLY_LINK_ABI_IN_STATIC_LIBRARY;LIBCXX_STATICALLY_LINK_ABI_IN_SHARED_LIBRARY;LIBOMP_ENABLE_RTTI;PYTHON_EXECUTABLE"
|
||||
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 \
|
||||
@ -562,9 +574,7 @@ debian-full-build:
|
||||
debian-libfuzzer-build:
|
||||
ifeq (${LIBFUZZER_ENABLE},yes)
|
||||
cd $(TARGET_BUILD); \
|
||||
CFLAGS=$(STAGE2_CFLAGS_EXTRA); \
|
||||
CFLAGS="$$CFLAGS `dpkg-buildflags --get CFLAGS`"; \
|
||||
CFLAGS="$$CFLAGS `dpkg-buildflags --get CPPFLAGS`"; \
|
||||
CFLAGS="$(opt_flags) $(STAGE2_CFLAGS_EXTRA)"; \
|
||||
echo $$CFLAGS; \
|
||||
$(STAGE2_BIN_DIR)/clang++ -c $$CFLAGS -std=c++11 $(BASE_PATH)/compiler-rt/lib/fuzzer/*.cpp -IFuzzer; \
|
||||
ar ruv libFuzzer.a Fuzzer*.o
|
||||
@ -580,8 +590,8 @@ debian-libclc-build:
|
||||
-G $(GENERATOR) \
|
||||
-DCMAKE_C_COMPILER=$(STAGE2_BIN_DIR)/clang \
|
||||
-DCMAKE_CXX_COMPILER=$(STAGE2_BIN_DIR)/clang++ \
|
||||
-DCMAKE_C_FLAGS="$(STAGE2_CFLAGS_EXTRA)" \
|
||||
-DCMAKE_CXX_FLAGS="$(STAGE2_CXXFLAGS_EXTRA)" \
|
||||
-DCMAKE_C_FLAGS="$(opt_flags) $(STAGE2_CFLAGS_EXTRA)" \
|
||||
-DCMAKE_CXX_FLAGS="$(opt_flags) $(STAGE2_CXXFLAGS_EXTRA)" \
|
||||
-DCMAKE_SHARED_LINKER_FLAGS="$(STAGE2_LDFLAGS_EXTRA) -L$(STAGE2_LIB_DIR)" \
|
||||
-DCMAKE_MODULE_LINKER_FLAGS="$(STAGE2_LDFLAGS_EXTRA) -L$(STAGE2_LIB_DIR)" \
|
||||
-DCMAKE_EXE_LINKER_FLAGS="$(STAGE2_LDFLAGS_EXTRA) -L$(STAGE2_LIB_DIR)" \
|
||||
|
Loading…
Reference in New Issue
Block a user