mirror of
https://git.proxmox.com/git/llvm-toolchain
synced 2025-08-13 16:42:12 +00:00
Replace make by ninja for the build process It is now more tested than make by upstream And it is supposed to be faster Removed openmp/bootstrap-with-openmp-version-export-missing.diff as it seems that the ninja move fixed it
This commit is contained in:
parent
0cf955e0aa
commit
066d9c791a
10
debian/changelog
vendored
10
debian/changelog
vendored
@ -1,3 +1,13 @@
|
||||
llvm-toolchain-12 (1:12.0.1-9) unstable; urgency=medium
|
||||
|
||||
* Replace make by ninja for the build process
|
||||
It is now more tested than make by upstream
|
||||
And it is supposed to be faster
|
||||
Removed openmp/bootstrap-with-openmp-version-export-missing.diff
|
||||
as it seems that the ninja move fixed it
|
||||
|
||||
-- Sylvestre Ledru <sylvestre@debian.org> Sat, 18 Sep 2021 11:03:29 +0200
|
||||
|
||||
llvm-toolchain-12 (1:12.0.1-8) unstable; urgency=medium
|
||||
|
||||
* Add back CMAKE_EXTRA to build LLVM gold (Closes: #993664)
|
||||
|
3
debian/control
vendored
3
debian/control
vendored
@ -4,7 +4,8 @@ Priority: optional
|
||||
Rules-Requires-Root: no
|
||||
Maintainer: LLVM Packaging Team <pkg-llvm-team@lists.alioth.debian.org>
|
||||
Uploaders: Sylvestre Ledru <sylvestre@debian.org>, Gianfranco Costamagna <locutusofborg@debian.org>
|
||||
Build-Depends: debhelper (>= 9.0), cmake, chrpath, texinfo, sharutils,
|
||||
Build-Depends: debhelper (>= 9.0), cmake, ninja-build,
|
||||
chrpath, texinfo, sharutils,
|
||||
libffi-dev,
|
||||
lsb-release, patchutils, diffstat, xz-utils, python3-dev,
|
||||
libedit-dev, libncurses5-dev, swig, python3-six, python3-sphinx (>= 1.3.6),
|
||||
|
@ -1,14 +0,0 @@
|
||||
Index: llvm-toolchain-12_12.0.0~++20210204121419+e8cdcaeae406/openmp/runtime/src/CMakeLists.txt
|
||||
===================================================================
|
||||
--- llvm-toolchain-12_12.0.0~++20210204121419+e8cdcaeae406.orig/openmp/runtime/src/CMakeLists.txt
|
||||
+++ llvm-toolchain-12_12.0.0~++20210204121419+e8cdcaeae406/openmp/runtime/src/CMakeLists.txt
|
||||
@@ -146,7 +146,8 @@ libomp_get_libflags(LIBOMP_CONFIGURED_LI
|
||||
if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMP_PROFILING))
|
||||
add_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES})
|
||||
# Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS
|
||||
- target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${CMAKE_DL_LIBS})
|
||||
+ target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${CMAKE_DL_LIBS}
|
||||
+ "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/exports_so.txt")
|
||||
else()
|
||||
add_llvm_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES} PARTIAL_SOURCES_INTENDED
|
||||
LINK_LIBS ${LIBOMP_CONFIGURED_LIBFLAGS} ${CMAKE_DL_LIBS}
|
1
debian/patches/series
vendored
1
debian/patches/series
vendored
@ -70,7 +70,6 @@ disable-error-xray.diff
|
||||
# OpenMP
|
||||
openmp/openmp-check-execstack.diff
|
||||
openmp/openmp-mips-affinity.patch
|
||||
openmp/bootstrap-with-openmp-version-export-missing.diff
|
||||
|
||||
# libcxx
|
||||
libcxx/libcxxabi-test-don-t-fail-extended-long-double.patch
|
||||
|
70
debian/rules
vendored
70
debian/rules
vendored
@ -317,6 +317,8 @@ ifeq ($(shell test -e /tmp/cmake/bin/cmake && echo -n yes),yes)
|
||||
export LD_LIBRARY_PATH=$$LD_LIBRARY_PATH:/tmp/cmake/bin/
|
||||
endif
|
||||
|
||||
GENERATOR=Ninja
|
||||
|
||||
%:
|
||||
dh $@ $(DH_OPTIONS)
|
||||
|
||||
@ -412,7 +414,11 @@ override_dh_auto_configure: preconfigure
|
||||
|
||||
echo "Running tests: $(RUN_TEST)"
|
||||
echo "Using cmake: $(CMAKE_BIN)"; \
|
||||
CFLAGS="$(CFLAGS_EXTRA)" \
|
||||
CXXFLAGS="$(CXXFLAGS_EXTRA)" \
|
||||
LDFLAGS="$(LDFLAGS_EXTRA)" \
|
||||
LD_LIBRARY_PATH=$$LD_LIBRARY_PATH $(PRE_PROCESS_CONF) $(CMAKE_BIN) -S llvm/ -B $(TARGET_BUILD) \
|
||||
-G $(GENERATOR) \
|
||||
-DLLVM_ENABLE_PROJECTS="$(PROJECTS_LIST)" \
|
||||
-DCMAKE_SUPPRESS_REGENERATION=ON \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr/lib/llvm-$(LLVM_VERSION) \
|
||||
@ -443,20 +449,24 @@ override_dh_auto_configure: preconfigure
|
||||
-DLLVM_POLLY_LINK_INTO_TOOLS=ON \
|
||||
-DBOOTSTRAP_CMAKE_CXX_FLAGS='$(BOOTSTRAP_CXXFLAGS_EXTRA)' \
|
||||
-DBOOTSTRAP_CMAKE_C_FLAGS='$(BOOTSTRAP_CFLAGS_EXTRA)' \
|
||||
-DCLANG_BOOTSTRAP_PASSTHROUGH="CMAKE_INSTALL_PREFIX;CMAKE_VERBOSE_MAKEFILE;CMAKE_BUILD_TYPE;CMAKE_CXX_FLAGS_RELWITHDEBINFO;LLVM_LINK_LLVM_DYLIB;LLVM_INSTALL_UTILS;LLVM_VERSION_SUFFIX;LLVM_ENABLE_SPHINX;SPHINX_WARNINGS_AS_ERRORS;LLVM_BUILD_LLVM_DYLIB;LLVM_ENABLE_RTTI;LLVM_ENABLE_FFI;LIBCLANG_LIBRARY_VERSION;ENABLE_LINKER_BUILD_ID;POLLY_BUNDLED_JSONCPP;LLVM_EXPERIMENTAL_TARGETS_TO_BUILD;LLVM_USE_PERF;LLVM_ENABLE_ASSERTIONS;LLVM_BINUTILS_INCDIR;LLVM_HOST_TRIPLE;LLVM_COMPILER_CHECKED;COMPILER_RT_BUILD_BUILTINS;LIBOMP_LIBFLAGS;CMAKE_SHARED_LINKER_FLAGS;PYTHON_EXECUTABLE;LLVM_ENABLE_Z3_SOLVER;LLVM_POLLY_LINK_INTO_TOOLS;CLANG_VENDOR;LIBUNWIND_USE_COMPILER_RT"
|
||||
-DCLANG_BOOTSTRAP_PASSTHROUGH="CMAKE_INSTALL_PREFIX;CMAKE_VERBOSE_MAKEFILE;CMAKE_BUILD_TYPE;CMAKE_CXX_FLAGS_RELWITHDEBINFO;LLVM_LINK_LLVM_DYLIB;LLVM_INSTALL_UTILS;LLVM_VERSION_SUFFIX;LLVM_ENABLE_SPHINX;SPHINX_WARNINGS_AS_ERRORS;LLVM_BUILD_LLVM_DYLIB;LLVM_ENABLE_RTTI;LLVM_ENABLE_FFI;LIBCLANG_LIBRARY_VERSION;ENABLE_LINKER_BUILD_ID;POLLY_BUNDLED_JSONCPP;LLVM_EXPERIMENTAL_TARGETS_TO_BUILD;LLVM_USE_PERF;LLVM_ENABLE_ASSERTIONS;LLVM_BINUTILS_INCDIR;LLVM_HOST_TRIPLE;LLVM_COMPILER_CHECKED;COMPILER_RT_BUILD_BUILTINS;LIBOMP_LIBFLAGS;CMAKE_SHARED_LINKER_FLAGS;PYTHON_EXECUTABLE;LLVM_ENABLE_Z3_SOLVER;LLVM_POLLY_LINK_INTO_TOOLS;CLANG_VENDOR;LIBUNWIND_USE_COMPILER_RT"; \
|
||||
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 \
|
||||
echo "mistmatch of version. Found: $$FOUND_VERSION / Expected: $(LLVM_VERSION_FULL)"; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
|
||||
ifeq (Ninja, $(GENERATOR))
|
||||
# ninja
|
||||
VERBOSE=-v
|
||||
else
|
||||
# make
|
||||
VERBOSE=VERBOSE=1
|
||||
# ninja
|
||||
#VERBOSE=-v
|
||||
endif
|
||||
|
||||
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 stage2
|
||||
$(PRE_PROCESS) ninja $(NJOBS) -C $(TARGET_BUILD) $(VERBOSE) stage2
|
||||
|
||||
# Check the stage 2 build worked
|
||||
if ! readelf --string-dump .comment $(TARGET_BUILD_STAGE2)/bin/clang 2>&1|grep -q "clang version"; then \
|
||||
@ -504,8 +514,10 @@ debian-libcxxabi-build:
|
||||
# Builds libcxxabi
|
||||
echo "Using cmake: $(CMAKE_BIN)"; \
|
||||
cd libcxxabi && \
|
||||
CXXFLAGS="$(CXXFLAGS_EXTRA)" LDFLAGS="$(LDFLAGS_EXTRA)" \
|
||||
$(PRE_PROCESS_CONF) $(CMAKE_BIN) \
|
||||
-S . -B build \
|
||||
-G $(GENERATOR) \
|
||||
$(LIBCXX_CMAKE_OPTIONS) \
|
||||
-DLIBCXXABI_LIBCXX_PATH=$(BASE_PATH)/libcxx \
|
||||
-DLIBCXXABI_LIBCXX_LIBRARY_PATH=$(BASE_PATH)/libcxx/build/lib \
|
||||
@ -513,8 +525,8 @@ debian-libcxxabi-build:
|
||||
-DLIBCXXABI_ENABLE_EXCEPTIONS=$(LIBCXX_EXCEPTIONS) \
|
||||
-DLIBCXXABI_USE_COMPILER_RT=ON \
|
||||
-DLLVM_ENABLE_RTTI=ON \
|
||||
$(CMAKE_LIBCXX_EXTRA) && cd build && \
|
||||
$(PRE_PROCESS_CONF) make $(NJOBS) $(VERBOSE) CXXFLAGS="$(CXXFLAGS_EXTRA)" LDFLAGS="$(LDFLAGS_EXTRA)"
|
||||
$(CMAKE_LIBCXX_EXTRA) && \
|
||||
$(PRE_PROCESS_CONF) ninja -C build/ $(VERBOSE)
|
||||
touch $@
|
||||
|
||||
# Fails with $<TARGET_LINKER_FILE:unwind_static>
|
||||
@ -533,7 +545,9 @@ debian-libcxx-build:
|
||||
echo "Using cmake: $(CMAKE_BIN)"; \
|
||||
cd libcxx && \
|
||||
$(PRE_PROCESS_CONF) $(CMAKE_BIN) \
|
||||
CXXFLAGS="$(CXXFLAGS_EXTRA)" LDFLAGS="$(LDFLAGS_EXTRA)" \
|
||||
-S . -B build \
|
||||
-G $(GENERATOR) \
|
||||
$(LIBCXX_CMAKE_OPTIONS) \
|
||||
-DLIBCXX_CXX_ABI=libcxxabi \
|
||||
-DLIBCXX_CXX_ABI_INCLUDE_PATHS=$(BASE_PATH)/libcxxabi/include \
|
||||
@ -544,8 +558,8 @@ debian-libcxx-build:
|
||||
-DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON \
|
||||
-DLIBCXX_STATICALLY_LINK_ABI_IN_STATIC_LIBRARY=ON \
|
||||
-DLIBCXX_STATICALLY_LINK_ABI_IN_SHARED_LIBRARY=OFF \
|
||||
$(CMAKE_LIBCXX_EXTRA) && cd build && \
|
||||
$(PRE_PROCESS_CONF) make $(NJOBS) $(VERBOSE) CXXFLAGS="$(CXXFLAGS_EXTRA)" LDFLAGS="$(LDFLAGS_EXTRA)"
|
||||
$(CMAKE_LIBCXX_EXTRA) && \
|
||||
$(PRE_PROCESS_CONF) ninja -C build/ $(VERBOSE)
|
||||
touch $@
|
||||
|
||||
|
||||
@ -561,12 +575,13 @@ debian-libclc-build:
|
||||
echo "Using cmake: $$CMAKE_BIN"; \
|
||||
cd libclc/build && \
|
||||
$$CMAKE_BIN ../ \
|
||||
-G $(GENERATOR) \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||
-DCMAKE_INSTALL_DATADIR=lib \
|
||||
-DCMAKE_INSTALL_INCLUDEDIR=include \
|
||||
-DLLVM_CONFIG=$(CURDIR)/$(TARGET_BUILD_STAGE2)/bin/llvm-config \
|
||||
-DLIBCLC_TARGETS_TO_BUILD=$(LIBCLC_TARGETS_TO_BUILD); \
|
||||
make $(NJOBS) $(VERBOSE)
|
||||
ninja $(VERBOSE)
|
||||
touch $@
|
||||
|
||||
override_dh_auto_build: debian-full-build debian-libfuzzer-build debian-libcxxabi-build debian-libcxx-build debian-libclc-build
|
||||
@ -578,13 +593,13 @@ build_doc:
|
||||
cd $(CURDIR)/llvm/docs && make -f Makefile.sphinx && make -f Makefile.sphinx man
|
||||
cd $(CURDIR)/clang/docs && make -f Makefile.sphinx && make -f Makefile.sphinx man
|
||||
-(if test "$(OCAML_ENABLE)" = yes; then \
|
||||
make $(NJOBS) -C "$(TARGET_BUILD_STAGE2)/docs" ocaml_doc; \
|
||||
ninja -C "$(TARGET_BUILD_STAGE2)" ocaml_doc; \
|
||||
fi)
|
||||
|
||||
make $(NJOBS) -C $(TARGET_BUILD_STAGE2) docs-llvm-html docs-clang-html docs-clang-tools-html docs-clang-tools-man docs-clang-man docs-llvm-man
|
||||
ninja -C $(TARGET_BUILD_STAGE2) docs-llvm-html docs-clang-html docs-clang-tools-html docs-clang-tools-man docs-clang-man docs-llvm-man
|
||||
|
||||
ifeq (${POLLY_ENABLE},yes)
|
||||
make $(NJOBS) -C $(TARGET_BUILD_STAGE2) docs-polly-html docs-polly-man
|
||||
ninja -C $(TARGET_BUILD_STAGE2) docs-polly-html docs-polly-man
|
||||
endif
|
||||
|
||||
# Rename manpages
|
||||
@ -627,7 +642,7 @@ override_dh_auto_install:
|
||||
# Clean up temporary files to make sure the install works
|
||||
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
|
||||
$(MAKE) -C $(TARGET_BUILD) $(VERBOSE) stage2-install DESTDIR=$(DEB_INST)/
|
||||
DESTDIR=$(DEB_INST)/ ninja -C $(TARGET_BUILD) $(VERBOSE) stage2-install
|
||||
|
||||
# Not used on Linux.
|
||||
rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/argdumper
|
||||
@ -702,10 +717,9 @@ 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)
|
||||
DESTDIR=$(DEB_INST) ninja -C libcxxabi/build install
|
||||
DESTDIR=$(DEB_INST) ninja -C libcxx/build install
|
||||
DESTDIR=$(DEB_INST) ninja -C libclc/build install
|
||||
|
||||
# Rename binaries
|
||||
mkdir -p $(DEB_INST)/usr/bin/
|
||||
@ -880,33 +894,33 @@ override_dh_auto_test:
|
||||
# LLVM tests
|
||||
ifneq (,$(findstring $(DEB_HOST_ARCH),$(ARCH_LLVM_TEST_OK)))
|
||||
# logs the output to check-llvm_build_log.txt for validation through autopkgtest
|
||||
$(MAKE) $(NJOBS) -C $(TARGET_BUILD) stage2-check-llvm | tee check-llvm_build_log.txt
|
||||
ninja -C $(TARGET_BUILD) stage2-check-llvm | tee check-llvm_build_log.txt
|
||||
else
|
||||
$(MAKE) $(NJOBS) -C $(TARGET_BUILD) stage2-check-llvm || true
|
||||
ninja -C $(TARGET_BUILD) stage2-check-llvm || true
|
||||
endif
|
||||
|
||||
# Clang tests
|
||||
$(MAKE) $(NJOBS) -C $(TARGET_BUILD) stage2-check-clang || true
|
||||
ninja -C $(TARGET_BUILD) stage2-check-clang || true
|
||||
|
||||
# Clang extra tests (ex: clang-tidy)
|
||||
$(MAKE) $(NJOBS) -C $(TARGET_BUILD_STAGE2) check-clang-tools || true
|
||||
ninja -C $(TARGET_BUILD_STAGE2) check-clang-tools || true
|
||||
|
||||
# LLD tests
|
||||
ifeq (${LLD_ENABLE},yes)
|
||||
$(MAKE) $(NJOBS) -C $(TARGET_BUILD_STAGE2) check-lld || true
|
||||
ninja -C $(TARGET_BUILD_STAGE2) check-lld || true
|
||||
endif
|
||||
|
||||
# Sanitizer
|
||||
$(MAKE) $(NJOBS) -C $(TARGET_BUILD_STAGE2) check-sanitizer || true
|
||||
ninja -C $(TARGET_BUILD_STAGE2) check-sanitizer || true
|
||||
|
||||
# Libcxx
|
||||
$(MAKE) $(NJOBS) -C libcxx/build check-libcxx || true
|
||||
ninja -C libcxx/build check-libcxx || true
|
||||
|
||||
# Libcxxabi
|
||||
$(MAKE) $(MAKE) -C libcxxabi/build check-libcxxabi || true
|
||||
ninja -C libcxxabi/build check-libcxxabi || true
|
||||
|
||||
# Libclc
|
||||
$(MAKE) $(MAKE) -C libclc/build test || true
|
||||
ninja -C libclc/build test || true
|
||||
|
||||
# LLDB tests
|
||||
ifeq (,$(filter $(DEB_HOST_ARCH), $(LLDB_DISABLE_ARCHS) armhf armel))
|
||||
@ -917,7 +931,7 @@ ifneq (,$(filter codecoverage,$(DEB_BUILD_OPTIONS)))
|
||||
ln -s lldb/_lldb.so; \
|
||||
fi
|
||||
if test "$(CODECOVERAGE)" = "no"; then \
|
||||
LD_LIBRARY_PATH=$$LD_LIBRARY_PATH:$(CURDIR)/$(TARGET_BUILD)/lib/ $(MAKE) $(NJOBS) -C $(TARGET_BUILD) check-lldb || true; \
|
||||
LD_LIBRARY_PATH=$$LD_LIBRARY_PATH:$(CURDIR)/$(TARGET_BUILD)/lib/ ninja -C $(TARGET_BUILD) check-lldb || true; \
|
||||
fi
|
||||
# remove the workaround
|
||||
rm $(CURDIR)/$(TARGET_BUILD)/lib/python*/*-packages/_lldb.so
|
||||
@ -926,7 +940,7 @@ endif
|
||||
|
||||
# Polly tests
|
||||
#ifeq (${POLLY_ENABLE},yes)
|
||||
# $(MAKE) $(NJOBS) -C $(TARGET_BUILD) check-polly || true
|
||||
# ninja -C $(TARGET_BUILD) check-polly || true
|
||||
#endif
|
||||
|
||||
# Managed by debian build system
|
||||
|
Loading…
Reference in New Issue
Block a user