[libcxx-commits] [libcxx] 6f17768 - [runtimes] Remove support for standalone builds

Louis Dionne via libcxx-commits libcxx-commits at lists.llvm.org
Wed Feb 9 05:55:57 PST 2022


Author: Louis Dionne
Date: 2022-02-09T08:55:31-05:00
New Revision: 6f17768e11480063f4c2bcbeea559505fee3ea19

URL: https://github.com/llvm/llvm-project/commit/6f17768e11480063f4c2bcbeea559505fee3ea19
DIFF: https://github.com/llvm/llvm-project/commit/6f17768e11480063f4c2bcbeea559505fee3ea19.diff

LOG: [runtimes] Remove support for standalone builds

Standalone build have been deprecated for some time now, so this
commit removes support for those builds entirely from libc++, libc++abi
and libunwind.

This, along with the removal of other legacy ways to build, will allow
for major build system simplifications.

Differential Revision: https://reviews.llvm.org/D119255

Added: 
    

Modified: 
    libcxx/CMakeLists.txt
    libcxx/docs/ReleaseNotes.rst
    libcxx/utils/ci/buildkite-pipeline.yml
    libcxx/utils/ci/run-buildbot
    libcxxabi/CMakeLists.txt
    libcxxabi/www/index.html
    libunwind/CMakeLists.txt

Removed: 
    


################################################################################
diff  --git a/libcxx/CMakeLists.txt b/libcxx/CMakeLists.txt
index 390c149674d51..aabecc529d202 100644
--- a/libcxx/CMakeLists.txt
+++ b/libcxx/CMakeLists.txt
@@ -27,6 +27,9 @@ set(LIBCXX_BINARY_DIR  ${CMAKE_CURRENT_BINARY_DIR})
 set(LIBCXX_BINARY_INCLUDE_DIR "${LIBCXX_BINARY_DIR}/include/c++build")
 
 if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBCXX_STANDALONE_BUILD)
+  message(FATAL_ERROR "The Standalone build has been deprecated since LLVM 14, and it is not supported anymore. "
+                      "Please use one of the ways described at https://libcxx.llvm.org/BuildingLibcxx.html for "
+                      "building libc++.")
   project(libcxx CXX C)
 
   set(PACKAGE_NAME libcxx)

diff  --git a/libcxx/docs/ReleaseNotes.rst b/libcxx/docs/ReleaseNotes.rst
index 9bb06cf2aa6a7..0bf24b9821503 100644
--- a/libcxx/docs/ReleaseNotes.rst
+++ b/libcxx/docs/ReleaseNotes.rst
@@ -57,3 +57,7 @@ ABI Changes
 
 Build System Changes
 --------------------
+
+- Support for standalone builds have been entirely removed from libc++, libc++abi and
+  libunwind. Please use :ref:`these instructions <build instructions>` for building
+  libc++, libc++abi and/or libunwind.

diff  --git a/libcxx/utils/ci/buildkite-pipeline.yml b/libcxx/utils/ci/buildkite-pipeline.yml
index 0d8f6c8a964a8..ae4c07aa27a04 100644
--- a/libcxx/utils/ci/buildkite-pipeline.yml
+++ b/libcxx/utils/ci/buildkite-pipeline.yml
@@ -297,19 +297,6 @@ steps:
             limit: 2
       timeout_in_minutes: 120
 
-    - label: "Legacy standalone build"
-      command: "libcxx/utils/ci/run-buildbot legacy-standalone"
-      artifact_paths:
-        - "**/test-results.xml"
-      agents:
-        queue: "libcxx-builders"
-        os: "linux"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
     - label: "Legacy LLVM_ENABLE_PROJECTS build"
       command: "libcxx/utils/ci/run-buildbot legacy-project-build"
       artifact_paths:

diff  --git a/libcxx/utils/ci/run-buildbot b/libcxx/utils/ci/run-buildbot
index 080c9643d309a..b8bebe4daa163 100755
--- a/libcxx/utils/ci/run-buildbot
+++ b/libcxx/utils/ci/run-buildbot
@@ -516,48 +516,6 @@ legacy-project-build)
           -DLIBCXX_CXX_ABI=libcxxabi
     check-runtimes
 ;;
-legacy-standalone)
-    clean
-
-    echo "--- Generating CMake"
-    ${CMAKE} \
-          -S "${MONOREPO_ROOT}/libcxx" \
-          -B "${BUILD_DIR}/libcxx" \
-          -GNinja -DCMAKE_MAKE_PROGRAM="${NINJA}" \
-          -DCMAKE_BUILD_TYPE=RelWithDebInfo \
-          -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \
-          -DLLVM_PATH="${MONOREPO_ROOT}/llvm" \
-          -DLIBCXX_CXX_ABI=libcxxabi \
-          -DLIBCXX_INCLUDE_BENCHMARKS=OFF \
-          -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${MONOREPO_ROOT}/libcxxabi/include" \
-          -DLIBCXX_CXX_ABI_LIBRARY_PATH="${BUILD_DIR}/libcxxabi/lib"
-
-    ${CMAKE} \
-          -S "${MONOREPO_ROOT}/libcxxabi" \
-          -B "${BUILD_DIR}/libcxxabi" \
-          -GNinja -DCMAKE_MAKE_PROGRAM="${NINJA}" \
-          -DCMAKE_BUILD_TYPE=RelWithDebInfo \
-          -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \
-          -DLLVM_PATH="${MONOREPO_ROOT}/llvm" \
-          -DLIBCXXABI_LIBCXX_PATH="${MONOREPO_ROOT}/libcxx" \
-          -DLIBCXXABI_LIBCXX_INCLUDES="${BUILD_DIR}/libcxx/include/c++/v1" \
-          -DLIBCXXABI_LIBCXX_LIBRARY_PATH="${BUILD_DIR}/libcxx/lib"
-
-    echo "+++ Generating libc++ headers"
-    ${NINJA} -vC "${BUILD_DIR}/libcxx" generate-cxx-headers
-
-    echo "+++ Building libc++abi"
-    ${NINJA} -vC "${BUILD_DIR}/libcxxabi" cxxabi
-
-    echo "+++ Building libc++"
-    ${NINJA} -vC "${BUILD_DIR}/libcxx" cxx
-
-    echo "+++ Running the libc++ tests"
-    ${NINJA} -vC "${BUILD_DIR}/libcxx" check-cxx
-
-    echo "+++ Running the libc++abi tests"
-    ${NINJA} -vC "${BUILD_DIR}/libcxxabi" check-cxxabi
-;;
 aarch64)
     clean
     generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/AArch64.cmake" \

diff  --git a/libcxxabi/CMakeLists.txt b/libcxxabi/CMakeLists.txt
index ecbc7091864e7..f40ee883080a1 100644
--- a/libcxxabi/CMakeLists.txt
+++ b/libcxxabi/CMakeLists.txt
@@ -28,6 +28,10 @@ set(LIBCXXABI_LIBCXX_PATH "${CMAKE_CURRENT_LIST_DIR}/../libcxx" CACHE PATH
         "Specify path to libc++ source.")
 
 if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBCXXABI_STANDALONE_BUILD)
+  message(FATAL_ERROR "The Standalone build has been deprecated since LLVM 14, and it is not supported anymore. "
+                      "Please use one of the ways described at https://libcxx.llvm.org/BuildingLibcxx.html for "
+                      "building libc++abi.")
+
   project(libcxxabi CXX C)
 
   set(PACKAGE_NAME libcxxabi)

diff  --git a/libcxxabi/www/index.html b/libcxxabi/www/index.html
index b6275e61da938..88035047dd391 100644
--- a/libcxxabi/www/index.html
+++ b/libcxxabi/www/index.html
@@ -73,52 +73,14 @@ <h2 id="dir-structure">Current Status</h2>
   <h2>Get it and get involved!</h2>
   <!--=====================================================================-->
 
-  <p>To check out the code (including llvm and others), use:</p>
-
-  <ul>
-  <li><code>git clone https://github.com/llvm/llvm-project.git</code></li>
-  </ul>
-
-  <p>To build:</p>
-  <ul>
-  <li><code>cd llvm-project</code></li>
-  <li><code>mkdir build && cd build</code></li>
-  <li><code>cmake -DLLVM_ENABLE_PROJECTS=libcxxabi ../llvm # on linux you may need to specify -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++</code></li>
-  <li><code>make</code></li>
-  </ul>
-
-  <p>To do a standalone build:</p>
-  <ul>
-  <li>
-    Check out the source tree. This includes the other subprojects, but you'll only use the libcxxabi part.
-  </li>
-  <li><code>cd llvm-project</code></li>
-  <li><code>mkdir build-libcxxabi && cd build-libcxxabi</code></li>
-  <li><code>cmake ../libcxxabi # on linux you may need -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++</code></li>
-  <li><code>make</code></li>
-  </ul>
-  <p> By default CMake uses <code>llvm-config</code> to locate the required
-      LLVM sources. If CMake cannot find <code>llvm-config</code> then you must
-      configure CMake using either of the following options.
+  <p>For building libc++abi, please see the libc++ documentation on
+     <a href="https://libcxx.llvm.org/BuildingLibcxx.html">building the runtimes</a>.
   </p>
-  <ul>
-  <li><code>-DLLVM_CONFIG_PATH=path/to/llvm-config</code></li>
-  <li><code>-DLLVM_PATH=path/to/llvm-source-root</code></li>
-  </ul>
 
+  <p>For getting involved with libc++abi, please see the libc++ documentation on
+      <a href="https://libcxx.llvm.org/Contributing.html">getting involved</a>.
   </p>
 
-  <p>To run the tests:</p>
-  <ul>
-  <li><code>make check-cxxabi</code></li>
-  </ul>
-  <p>Note: in a standalone build, the system's libc++ will be used for tests. If
-  the system's libc++ was statically linked against libc++abi (or linked against
-  a 
diff erent ABI library), this may interfere with test results.</p>
-
-  <p>Send discussions to the
-  (<a href="https://lists.llvm.org/mailman/listinfo/libcxx-dev">libcxx-dev mailing list</a>).</p>
-
   <!--=====================================================================-->
   <h2>Frequently asked questions</h2>
   <!--=====================================================================-->

diff  --git a/libunwind/CMakeLists.txt b/libunwind/CMakeLists.txt
index b098e22c420ff..6e39bdedc0c2e 100644
--- a/libunwind/CMakeLists.txt
+++ b/libunwind/CMakeLists.txt
@@ -24,6 +24,10 @@ set(LIBUNWIND_LIBCXX_PATH "${CMAKE_CURRENT_LIST_DIR}/../libcxx" CACHE PATH
         "Specify path to libc++ source.")
 
 if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBUNWIND_STANDALONE_BUILD)
+  message(FATAL_ERROR "The Standalone build has been deprecated since LLVM 14, and it is not supported anymore. "
+                      "Please use one of the ways described at https://libcxx.llvm.org/BuildingLibcxx.html for "
+                      "building libunwind.")
+
   # We may have an incomplete toolchain - do language support tests without
   # linking.
   include(EnableLanguageNolink)


        


More information about the libcxx-commits mailing list