mirror of
https://git.proxmox.com/git/llvm-toolchain
synced 2025-11-01 11:12:08 +00:00
try to used runtimes and others refactors
This commit is contained in:
parent
ebb113ddd7
commit
fd6502bedd
10
debian/changelog
vendored
10
debian/changelog
vendored
@ -139,6 +139,16 @@ llvm-toolchain-12 (1:12.0.1-7) UNRELEASED; urgency=medium
|
||||
|
||||
[ Gianfranco Costamagna ]
|
||||
* Add a patch to fix omp build on riscv64
|
||||
* cmake: use ON instead of YES for consistency
|
||||
* Add LIBCXXABI_ENABLE_STATIC_UNWINDER=ON
|
||||
LIBCXXABI_STATICALLY_LINK_UNWINDER_IN_SHARED_LIBRARY=OFF
|
||||
LIBCXXABI_STATICALLY_LINK_UNWINDER_IN_STATIC_LIBRARY=ON
|
||||
to libc++ when libunwind is built
|
||||
Matches what is done on brew:
|
||||
https://bit.ly/3kDNpC9
|
||||
|
||||
[ Gianfranco Costamagna ]
|
||||
* Add a patch to fix omp build on riscv64
|
||||
|
||||
-- Sylvestre Ledru <sylvestre@debian.org> Sun, 29 Aug 2021 15:15:18 +0200
|
||||
|
||||
|
||||
119
debian/rules
vendored
119
debian/rules
vendored
@ -1,7 +1,8 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
# polly, openmp & lldb aren't enabled for every platform
|
||||
PROJECTS = clang;clang-tools-extra;libcxx;libcxxabi;compiler-rt;lld;debuginfo-tests
|
||||
PROJECTS = clang;clang-tools-extra;lld;debuginfo-tests
|
||||
RUNTIMES = compiler-rt;libcxx;libcxxabi
|
||||
|
||||
TARGET_BUILD := build-llvm
|
||||
TARGET_BUILD_STAGE2 := $(TARGET_BUILD)/tools/clang/stage2-bins
|
||||
@ -107,7 +108,7 @@ ifneq (,$(findstring $(DEB_HOST_ARCH),armel))
|
||||
# See http://lists.llvm.org/pipermail/llvm-dev/2016-May/099761.html
|
||||
CMAKE_EXTRA += -DCOMPILER_RT_BUILD_BUILTINS=OFF
|
||||
# Check for ancient libstdc++ fails due to atomics usage
|
||||
CMAKE_EXTRA_LIBCXX += -DLLVM_COMPILER_CHECKED=ON
|
||||
CMAKE_LIBCXX_EXTRA += -DLLVM_COMPILER_CHECKED=ON
|
||||
# Prevent clang from getting a > v4t default
|
||||
# See bug #868779
|
||||
CMAKE_EXTRA += -DLLVM_HOST_TRIPLE=arm-linux-gnueabi
|
||||
@ -203,8 +204,7 @@ OPENMP_ENABLE=yes
|
||||
ifneq (,$(filter $(DEB_HOST_ARCH), m68k mips mipsel powerpc powerpcspe sparc64 s390x x32))
|
||||
OPENMP_ENABLE=no
|
||||
else
|
||||
PROJECTS+=;openmp
|
||||
# CMAKE_EXTRA += -DLIBOMPTARGET_BUILD_NVPTX_BCLIB=ON -DLLVM_ENABLE_RUNTIMES=openmp
|
||||
RUNTIMES+=;openmp
|
||||
endif
|
||||
|
||||
# Enable libunwind (or not)
|
||||
@ -212,11 +212,12 @@ LIBUNWIND_ENABLE=yes
|
||||
ifneq (,$(filter $(DEB_HOST_ARCH), s390x armel m68k mipsel hurd-i386 powerpc sparc64 x32))
|
||||
LIBUNWIND_ENABLE=no
|
||||
else
|
||||
PROJECTS+=;libunwind
|
||||
RUNTIMES += ;libunwind
|
||||
CMAKE_LIBCXX_EXTRA += -DLIBCXXABI_USE_LLVM_UNWINDER=ON \
|
||||
-DDLIBCXXABI_ENABLE_STATIC_UNWINDER=ON \
|
||||
-DLIBCXXABI_STATICALLY_LINK_UNWINDER_IN_SHARED_LIBRARY=OFF \
|
||||
-DLIBCXXABI_STATICALLY_LINK_UNWINDER_IN_STATIC_LIBRARY=ON
|
||||
-DLIBCXXABI_STATICALLY_LINK_UNWINDER_IN_STATIC_LIBRARY=ON \
|
||||
-DLIBUNWIND_USE_COMPILER_RT=ON
|
||||
endif
|
||||
|
||||
RUN_TEST=yes
|
||||
@ -336,6 +337,7 @@ endif
|
||||
|
||||
# For some reasons, some spaces are added, removing them
|
||||
PROJECTS_LIST := $(shell echo "$(PROJECTS)"|sed -e "s| ||g")
|
||||
RUNTIMES_LIST := $(shell echo "$(RUNTIMES)"|sed -e "s| ||g")
|
||||
|
||||
preconfigure:
|
||||
|
||||
@ -352,6 +354,7 @@ preconfigure:
|
||||
@echo "DISTRO=$(DISTRO)"
|
||||
@echo "GCC_VERSION=$(GCC_VERSION)"
|
||||
@echo "PROJECTS=$(PROJECTS_LIST)"
|
||||
@echo "RUNTIMES=$(RUNTIMES_LIST)"
|
||||
@echo "LLVM_VERSION=$(LLVM_VERSION)"
|
||||
@echo "LLVM_VERSION_FULL=$(LLVM_VERSION_FULL)"
|
||||
@echo "LLVM_VERSION_SNAPSHOT=$(LLVM_VERSION_SNAPSHOT)"
|
||||
@ -379,6 +382,25 @@ preconfigure:
|
||||
sed -i -e "s|#spv\ ||g" debian/libclc-$(LLVM_VERSION).install; \
|
||||
fi
|
||||
|
||||
# The various options to build libc++ and libc++abi
|
||||
|
||||
LIBCXX_CMAKE_OPTIONS := \
|
||||
-DLIBCXX_USE_COMPILER_RT=ON \
|
||||
-DLIBCXXABI_USE_COMPILER_RT=ON \
|
||||
-DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON \
|
||||
-DLIBCXX_STATICALLY_LINK_ABI_IN_STATIC_LIBRARY=ON \
|
||||
-DLIBCXX_STATICALLY_LINK_ABI_IN_SHARED_LIBRARY=OFF \
|
||||
-DLIBCXX_CXX_ABI=libcxxabi \
|
||||
-DLIBCXX_CXX_ABI_INCLUDE_PATHS=$(BASE_PATH)/libcxxabi/include \
|
||||
-DLIBCXX_CXX_ABI_LIBRARY_PATH=$(BASE_PATH)/libcxxabi/build/lib \
|
||||
-DLIBCXX_ENABLE_EXCEPTIONS=$(LIBCXX_EXCEPTIONS) \
|
||||
-DLIBCXX_INSTALL_EXPERIMENTAL_LIBRARY=ON \
|
||||
-DLIBCXXABI_LIBCXX_PATH=$(BASE_PATH)/libcxx \
|
||||
-DLIBCXXABI_LIBCXX_LIBRARY_PATH=$(BASE_PATH)/libcxx/build/lib \
|
||||
-DLIBCXXABI_LIBCXX_INCLUDES=$(BASE_PATH)/libcxx/include \
|
||||
-DLIBCXXABI_ENABLE_EXCEPTIONS=$(LIBCXX_EXCEPTIONS) \
|
||||
$(CMAKE_LIBCXX_EXTRA)
|
||||
|
||||
# Override this two targets. They are trying to manage the .in conversion for me
|
||||
override_dh_ocamlinit:
|
||||
override_dh_ocamlclean:
|
||||
@ -414,14 +436,15 @@ override_dh_auto_configure: preconfigure
|
||||
|
||||
echo "Running tests: $(RUN_TEST)"
|
||||
echo "Using cmake: $(CMAKE_BIN)"; \
|
||||
cd $(TARGET_BUILD) && \
|
||||
LD_LIBRARY_PATH=$$LD_LIBRARY_PATH $(PRE_PROCESS_CONF) $(CMAKE_BIN) ../llvm/ \
|
||||
LD_LIBRARY_PATH=$$LD_LIBRARY_PATH $(PRE_PROCESS_CONF) $(CMAKE_BIN) -S llvm/ -B $(TARGET_BUILD) \
|
||||
-DLLVM_ENABLE_PROJECTS="$(PROJECTS_LIST)" \
|
||||
-DLLVM_ENABLE_RUNTIMES="$(RUNTIMES_LIST)" \
|
||||
-DCMAKE_SUPPRESS_REGENERATION=ON \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr/lib/llvm-$(LLVM_VERSION) \
|
||||
-DCMAKE_VERBOSE_MAKEFILE=ON \
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$(opt_flags)" \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DLLVM_LINK_LLVM_DYLIB=ON \
|
||||
-DLLVM_INSTALL_UTILS=ON \
|
||||
-DLLVM_VERSION_SUFFIX= \
|
||||
@ -431,11 +454,11 @@ override_dh_auto_configure: preconfigure
|
||||
-DLLVM_ENABLE_FFI=ON \
|
||||
-DLLVM_ENABLE_DUMP=ON \
|
||||
$(CMAKE_EXTRA) \
|
||||
$(LIBCXX_CMAKE_OPTIONS) \
|
||||
-DLIBCLANG_LIBRARY_VERSION=$(SONAME_EXT) \
|
||||
-DCLANG_LINK_CLANG_DYLIB=ON \
|
||||
-DENABLE_LINKER_BUILD_ID=ON \
|
||||
-DCOMPILER_RT_USE_LIBCXX=NO \
|
||||
-DLIBUNWIND_USE_COMPILER_RT=ON \
|
||||
$(Z3_FLAG) \
|
||||
-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="AVR;M68k" \
|
||||
-DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON \
|
||||
@ -458,7 +481,7 @@ VERBOSE=VERBOSE=1
|
||||
#VERBOSE=-v
|
||||
|
||||
debian-full-build:
|
||||
$(PRE_PROCESS) make $(NJOBS) -C $(TARGET_BUILD) $(VERBOSE) CFLAGS="$(CFLAGS_EXTRA)" CXXFLAGS="$(CXXFLAGS_EXTRA)" LDFLAGS="$(LDFLAGS_EXTRA)" REQUIRES_RTTI=1 DEBUGMAKE=1 $(BUILD_METHOD)
|
||||
$(PRE_PROCESS) make $(NJOBS) -C $(TARGET_BUILD) $(VERBOSE) CFLAGS="$(CFLAGS_EXTRA)" CXXFLAGS="$(CXXFLAGS_EXTRA)" LDFLAGS="$(LDFLAGS_EXTRA)" REQUIRES_RTTI=1 DEBUGMAKE=1 stage2 compiler-rt runtimes
|
||||
|
||||
# Check the stage 2 build worked
|
||||
if test "$(BUILD_METHOD)" = "stage2"; then \
|
||||
@ -471,6 +494,8 @@ debian-full-build:
|
||||
echo "libclang-$(LLVM_VERSION).so.1 depends on libclang-cpp. Should not be the case"; \
|
||||
exit 2; \
|
||||
fi
|
||||
# $(PRE_PROCESS) make $(NJOBS) -C $(TARGET_BUILD) $(VERBOSE) CFLAGS="$(CFLAGS_EXTRA)" CXXFLAGS="$(CXXFLAGS_EXTRA)" LDFLAGS="$(LDFLAGS_EXTRA)" REQUIRES_RTTI=1 DEBUGMAKE=1 runtimes
|
||||
|
||||
touch $@
|
||||
|
||||
debian-libfuzzer-build:
|
||||
@ -484,66 +509,6 @@ ifeq (${LIBFUZZER_ENABLE},yes)
|
||||
endif
|
||||
touch $@
|
||||
|
||||
|
||||
LIBCXX_CMAKE_OPTIONS := \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr/lib/llvm-$(LLVM_VERSION) \
|
||||
-DLLVM_CONFIG_PATH=$(CURDIR)/$(TARGET_BUILD_STAGE2)/bin/llvm-config \
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||
-DCMAKE_CXX_COMPILER=$(CURDIR)/$(TARGET_BUILD_STAGE2)/bin/clang++ \
|
||||
-DCMAKE_C_COMPILER=$(CURDIR)/$(TARGET_BUILD_STAGE2)/bin/clang \
|
||||
-DCMAKE_CXX_FLAGS="$(LIBCXXFLAGS)" \
|
||||
-DCMAKE_EXE_LINKER_FLAGS="" \
|
||||
-DCMAKE_SHARED_LINKER_FLAGS="" \
|
||||
-DCMAKE_MODULE_LINKER_FLAGS="" \
|
||||
-DCMAKE_AR=$(CURDIR)/$(TARGET_BUILD_STAGE2)/bin/llvm-ar \
|
||||
-DCMAKE_RANLIB=$(CURDIR)/$(TARGET_BUILD_STAGE2)/bin/llvm-ranlib \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DLLVM_EXTERNAL_LIT=$(BASE_PATH)/llvm/utils/lit/lit.py \
|
||||
-DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON \
|
||||
-DLIBCXX_USE_COMPILER_RT=ON \
|
||||
-DLIBCXXABI_USE_COMPILER_RT=ON \
|
||||
-DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON \
|
||||
-DLIBCXX_STATICALLY_LINK_ABI_IN_STATIC_LIBRARY=ON \
|
||||
-DLIBCXX_STATICALLY_LINK_ABI_IN_SHARED_LIBRARY=OFF \
|
||||
$(CMAKE_EXTRA) \
|
||||
$(CMAKE_EXTRA_LIBCXX)
|
||||
|
||||
debian-libcxx-build:
|
||||
# Builds libcxx
|
||||
|
||||
mkdir -p libcxx/build
|
||||
mkdir -p libcxxabi/build
|
||||
echo "Using cmake: $(CMAKE_BIN)"; \
|
||||
cd libcxxabi/build && \
|
||||
$(PRE_PROCESS_CONF) $(CMAKE_BIN) ../ \
|
||||
$(LIBCXX_CMAKE_OPTIONS) \
|
||||
-DLIBCXXABI_LIBCXX_PATH=$(BASE_PATH)/libcxx \
|
||||
-DLIBCXXABI_LIBCXX_LIBRARY_PATH=$(BASE_PATH)/libcxx/build/lib \
|
||||
-DLIBCXXABI_LIBCXX_INCLUDES=$(BASE_PATH)/$(TARGET_BUILD_STAGE2)/include/c++/v1/ \
|
||||
-DLIBCXXABI_ENABLE_EXCEPTIONS=$(LIBCXX_EXCEPTIONS) \
|
||||
-DLLVM_ENABLE_RTTI=ON \
|
||||
$(CMAKE_LIBCXX_EXTRA) && \
|
||||
$(PRE_PROCESS_CONF) make $(NJOBS) $(VERBOSE) CXXFLAGS="$(CXXFLAGS_EXTRA)" LDFLAGS="$(LDFLAGS_EXTRA)"
|
||||
touch $@
|
||||
|
||||
debian-libcxxabi-build:
|
||||
# Builds libcxxabi
|
||||
|
||||
mkdir -p libcxxabi/build
|
||||
|
||||
echo "Using cmake: $(CMAKE_BIN)"; \
|
||||
cd libcxx/build && \
|
||||
$(PRE_PROCESS_CONF) $(CMAKE_BIN) ../ \
|
||||
$(LIBCXX_CMAKE_OPTIONS) \
|
||||
-DLIBCXX_CXX_ABI=libcxxabi \
|
||||
-DLIBCXX_CXX_ABI_INCLUDE_PATHS=$(BASE_PATH)/libcxxabi/include \
|
||||
-DLIBCXX_CXX_ABI_LIBRARY_PATH=$(BASE_PATH)/libcxxabi/build/lib \
|
||||
-DLIBCXX_ENABLE_EXCEPTIONS=$(LIBCXX_EXCEPTIONS) \
|
||||
-DLIBCXX_INSTALL_EXPERIMENTAL_LIBRARY=ON \
|
||||
$(CMAKE_LIBCXX_EXTRA) && \
|
||||
$(PRE_PROCESS_CONF) make $(NJOBS) $(VERBOSE) CXXFLAGS="$(CXXFLAGS_EXTRA)" LDFLAGS="$(LDFLAGS_EXTRA)"
|
||||
touch $@
|
||||
|
||||
debian-libclc-build:
|
||||
# Builds libclc
|
||||
|
||||
@ -564,7 +529,7 @@ debian-libclc-build:
|
||||
make $(NJOBS) $(VERBOSE)
|
||||
touch $@
|
||||
|
||||
override_dh_auto_build: debian-full-build debian-libfuzzer-build debian-libcxx-build debian-libcxxabi-build debian-libclc-build
|
||||
override_dh_auto_build: debian-full-build debian-libfuzzer-build debian-libclc-build
|
||||
|
||||
override_dh_prep: build_doc
|
||||
dh_prep
|
||||
@ -623,7 +588,7 @@ override_dh_auto_install:
|
||||
rm -rf $(find $(TARGET_BUILD) -wholename '*CMakeFiles*' -not -name CMakeLists.txt -a -name "*.dir" -type d)
|
||||
# install/fast enables a make install without recompiling temporary files
|
||||
if test "$(BUILD_METHOD)" = "stage2"; then \
|
||||
$(MAKE) -C $(TARGET_BUILD) $(VERBOSE) stage2-install DESTDIR=$(DEB_INST)/; \
|
||||
$(MAKE) -C $(TARGET_BUILD) $(VERBOSE) stage2-install install-runtimes DESTDIR=$(DEB_INST)/; \
|
||||
else \
|
||||
$(MAKE) -C $(TARGET_BUILD) $(VERBOSE) install DESTDIR=$(DEB_INST)/; \
|
||||
fi
|
||||
@ -701,9 +666,6 @@ endif
|
||||
rm -rf $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/build/utils/lit/lit/__pycache__/ \
|
||||
$(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/build/utils/lit/lit/*/__pycache__/
|
||||
|
||||
|
||||
$(MAKE) -C libcxxabi/build install DESTDIR=$(DEB_INST)
|
||||
$(MAKE) -C libcxx/build install DESTDIR=$(DEB_INST)
|
||||
$(MAKE) -C libclc/build install DESTDIR=$(DEB_INST)
|
||||
|
||||
# Rename binaries
|
||||
@ -898,11 +860,8 @@ endif
|
||||
# Sanitizer
|
||||
$(MAKE) $(NJOBS) -C $(TARGET_BUILD_STAGE2) check-sanitizer || true
|
||||
|
||||
# Libcxx
|
||||
$(MAKE) $(NJOBS) -C libcxx/build check-libcxx || true
|
||||
|
||||
# Libcxxabi
|
||||
$(MAKE) $(MAKE) -C libcxxabi/build check-libcxxabi || true
|
||||
# Libcxx & libcxxabi
|
||||
$(MAKE) $(NJOBS) -C $(TARGET_BUILD_STAGE2) check-runtimes || true
|
||||
|
||||
# Libclc
|
||||
$(MAKE) $(MAKE) -C libclc/build test || true
|
||||
|
||||
Loading…
Reference in New Issue
Block a user