From 258477ed0ab69d334302225322ac81ac974b59fb Mon Sep 17 00:00:00 2001 From: Louis Dionne Date: Wed, 21 Sep 2022 09:50:53 -0400 Subject: [PATCH] [llvm] Remove libcxx, libcxxabi and libunwind from supported LLVM_ENABLE_PROJECTS This is a breaking change. If you were passing one of those three runtimes in LLVM_ENABLE_PROJECTS, you need to start passing them in LLVM_ENABLE_RUNTIMES instead. The runtimes in LLVM_ENABLE_RUNTIMES will start being built using the "bootstrapping build" instead, which means that they will be built using the just-built Clang. This is usually what you wanted anyway. If you were using LLVM_ENABLE_PROJECTS=all with the explicit goal of building these three runtimes, you can now use LLVM_ENABLE_RUNTIMES=all and these runtimes will be built using the bootstrapping build. NOTE: This is a re-application of 887b8bd733ea which had been reverted in 6b03a4fea0b4 because it broke the Sphinx documentation publishers. The Sphinx documentation publishers have now been moved to using the runtimes build, so this should not be an issue anymore. Differential Revision: https://reviews.llvm.org/D132480 --- libcxx/docs/ReleaseNotes.rst | 2 ++ libcxx/utils/ci/buildkite-pipeline.yml | 19 ------------------- libcxx/utils/ci/run-buildbot | 15 --------------- llvm/CMakeLists.txt | 10 ++-------- 4 files changed, 4 insertions(+), 42 deletions(-) diff --git a/libcxx/docs/ReleaseNotes.rst b/libcxx/docs/ReleaseNotes.rst index 7a5ab3265b5f55..7558fd2a9b7b6e 100644 --- a/libcxx/docs/ReleaseNotes.rst +++ b/libcxx/docs/ReleaseNotes.rst @@ -109,3 +109,5 @@ ABI Affecting Changes Build System Changes -------------------- +- Support for ``libcxx``, ``libcxxabi`` and ``libunwind`` in ``LLVM_ENABLE_PROJECTS`` has officially + been removed. Instead, please build according to :ref:`these instructions `. diff --git a/libcxx/utils/ci/buildkite-pipeline.yml b/libcxx/utils/ci/buildkite-pipeline.yml index f5475b9ee8857b..d94046ba22c837 100644 --- a/libcxx/utils/ci/buildkite-pipeline.yml +++ b/libcxx/utils/ci/buildkite-pipeline.yml @@ -364,25 +364,6 @@ steps: limit: 2 timeout_in_minutes: 120 - - group: "Legacy" - steps: - - label: "Legacy LLVM_ENABLE_PROJECTS build" - command: "libcxx/utils/ci/run-buildbot legacy-project-build" - artifact_paths: - - "**/test-results.xml" - - "**/*.abilist" - env: - CC: "clang-${LLVM_HEAD_VERSION}" - CXX: "clang++-${LLVM_HEAD_VERSION}" - agents: - queue: "libcxx-builders" - os: "linux" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - timeout_in_minutes: 120 - # Tests with various build configurations. - label: "Static libraries" command: "libcxx/utils/ci/run-buildbot generic-static" diff --git a/libcxx/utils/ci/run-buildbot b/libcxx/utils/ci/run-buildbot index ad09b328cd5b91..8a306801d7e02e 100755 --- a/libcxx/utils/ci/run-buildbot +++ b/libcxx/utils/ci/run-buildbot @@ -492,21 +492,6 @@ bootstrapping-build) echo "--- Installing libc++ and libc++abi to a fake location" ${NINJA} -C "${BUILD_DIR}" install-runtimes ;; -legacy-project-build) - clean - - echo "--- Generating CMake" - ${CMAKE} \ - -S "${MONOREPO_ROOT}/llvm" \ - -B "${BUILD_DIR}" \ - -DLLVM_ENABLE_PROJECTS="libcxx;libunwind;libcxxabi" \ - -GNinja -DCMAKE_MAKE_PROGRAM="${NINJA}" \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \ - -DLLVM_LIT_ARGS="-sv --show-unsupported --xunit-xml-output test-results.xml --timeout=1500" \ - -DLIBCXX_CXX_ABI=libcxxabi - check-runtimes -;; aarch64) clean generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/AArch64.cmake" diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt index d9987dca43de7d..4db8c458f923a5 100644 --- a/llvm/CMakeLists.txt +++ b/llvm/CMakeLists.txt @@ -123,7 +123,7 @@ endif() # LLVM_EXTERNAL_${project}_SOURCE_DIR using LLVM_ALL_PROJECTS # This allows an easy way of setting up a build directory for llvm and another # one for llvm+clang+... using the same sources. -set(LLVM_ALL_PROJECTS "bolt;clang;clang-tools-extra;compiler-rt;cross-project-tests;libc;libclc;libcxx;libcxxabi;libunwind;lld;lldb;mlir;openmp;polly;pstl") +set(LLVM_ALL_PROJECTS "bolt;clang;clang-tools-extra;compiler-rt;cross-project-tests;libc;libclc;lld;lldb;mlir;openmp;polly;pstl") # The flang project is not yet part of "all" projects (see C++ requirements) set(LLVM_EXTRA_PROJECTS "flang") # List of all known projects in the mono repo @@ -136,13 +136,7 @@ if( LLVM_ENABLE_PROJECTS STREQUAL "all" ) endif() foreach(proj ${LLVM_ENABLE_PROJECTS}) if (NOT proj STREQUAL "llvm" AND NOT "${proj}" IN_LIST LLVM_KNOWN_PROJECTS) - MESSAGE(FATAL_ERROR "${proj} isn't a known project: ${LLVM_KNOWN_PROJECTS}") - endif() -endforeach() -foreach(proj "libcxx" "libcxxabi" "libunwind") - if (${proj} IN_LIST LLVM_ENABLE_PROJECTS) - message(WARNING "Using LLVM_ENABLE_PROJECTS=${proj} is deprecated now, please use -DLLVM_ENABLE_RUNTIMES=${proj} or " - "see the instructions at https://libcxx.llvm.org/BuildingLibcxx.html for building the runtimes.") + MESSAGE(FATAL_ERROR "${proj} isn't a known project: ${LLVM_KNOWN_PROJECTS}. Did you mean to enable it as a runtime in LLVM_ENABLE_RUNTIMES?") endif() endforeach()