diff --git a/libcxx/CMakeLists.txt b/libcxx/CMakeLists.txt --- a/libcxx/CMakeLists.txt +++ b/libcxx/CMakeLists.txt @@ -27,6 +27,8 @@ 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(WARNING "The Standalone build is deprecated in this release. 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 --- a/libcxx/docs/ReleaseNotes.rst +++ b/libcxx/docs/ReleaseNotes.rst @@ -189,14 +189,14 @@ Consider using a Bootstrapping build to build libc++ with a fresh Clang if you can't use the system compiler to build libc++ anymore. -- Historically, there have been numerous ways of building libc++ and libc++abi. This has - led to at least 5 different ways to build the runtimes, which was impossible to - maintain with a good level of support. Starting with this release, libc++ and libc++abi support - exactly two ways of being built, which should cater to all use-cases. Furthermore, - these builds are as lightweight as possible and will work consistently even when targeting - embedded platforms, which used not to be the case. :doc:`BuildingLibcxx` describes - those two ways of building. Please migrate over to the appropriate build instructions - as soon as possible. +- Historically, there have been numerous ways of building libc++, libc++abi, and libunwind. + This has led to at least 5 different ways to build the runtimes, which was impossible to + maintain with a good level of support. Starting with this release, libc++, libc++abi, and + libunwind support exactly two ways of being built, which should cater to all use-cases. + Furthermore, these builds are as lightweight as possible and will work consistently even + when targeting embedded platforms, which used not to be the case. :doc:`BuildingLibcxx` + describes those two ways of building. Please migrate over to the appropriate build + instructions as soon as possible. All other ways to build are deprecated and will not be supported in the next release. We understand that making these changes can be daunting. For that reason, here's a @@ -206,8 +206,8 @@ (which was the previously advertised way to build the runtimes), please simply root your CMake invocation at ``/runtimes`` and pass ``-DLLVM_ENABLE_RUNTIMES=<...>``. - - If you were doing two CMake invocations, one rooted at ``/libcxx`` and one rooted at - ``/libcxxabi`` (this used to be called a "Standalone build"), please move them to a + - If you were doing multiple CMake invocations, e.g. one rooted at ``/libcxx`` and one rooted + at ``/libcxxabi`` (this used to be called a "Standalone build"), please move them to a single invocation like so: .. code-block:: bash diff --git a/libcxxabi/CMakeLists.txt b/libcxxabi/CMakeLists.txt --- a/libcxxabi/CMakeLists.txt +++ b/libcxxabi/CMakeLists.txt @@ -28,6 +28,9 @@ "Specify path to libc++ source.") if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBCXXABI_STANDALONE_BUILD) + message(WARNING "The Standalone build is deprecated in this release. 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 --- a/libcxxabi/www/index.html +++ b/libcxxabi/www/index.html @@ -73,52 +73,14 @@

Get it and get involved!

-

To check out the code (including llvm and others), use:

- -
    -
  • git clone https://github.com/llvm/llvm-project.git
  • -
- -

To build:

-
    -
  • cd llvm-project
  • -
  • mkdir build && cd build
  • -
  • cmake -DLLVM_ENABLE_PROJECTS=libcxxabi ../llvm # on linux you may need to specify -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
  • -
  • make
  • -
- -

To do a standalone build:

-
    -
  • - Check out the source tree. This includes the other subprojects, but you'll only use the libcxxabi part. -
  • -
  • cd llvm-project
  • -
  • mkdir build-libcxxabi && cd build-libcxxabi
  • -
  • cmake ../libcxxabi # on linux you may need -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
  • -
  • make
  • -
-

By default CMake uses llvm-config to locate the required - LLVM sources. If CMake cannot find llvm-config then you must - configure CMake using either of the following options. +

For building libc++abi, please see the libc++ documentation on + building the runtimes.

-
    -
  • -DLLVM_CONFIG_PATH=path/to/llvm-config
  • -
  • -DLLVM_PATH=path/to/llvm-source-root
  • -
+

For getting involved with libc++abi, please see the libc++ documentation on + getting involved.

-

To run the tests:

-
    -
  • make check-cxxabi
  • -
-

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 different ABI library), this may interfere with test results.

- -

Send discussions to the - (libcxx-dev mailing list).

-

Frequently asked questions

diff --git a/libunwind/CMakeLists.txt b/libunwind/CMakeLists.txt --- a/libunwind/CMakeLists.txt +++ b/libunwind/CMakeLists.txt @@ -24,6 +24,9 @@ "Specify path to libc++ source.") if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBUNWIND_STANDALONE_BUILD) + message(WARNING "The Standalone build is deprecated in this release. 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)