[compiler-rt] [libunwind] [llvm] [cmake] Remove obsolete files, docs and CMake variables related to the standalone build (PR #112741)
via cfe-commits
cfe-commits at lists.llvm.org
Thu Oct 17 09:28:13 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-libunwind
Author: Louis Dionne (ldionne)
<details>
<summary>Changes</summary>
The runtimes used to support a build mode called the "Standalone build", which isn't supported anymore (and hasn't been for a few years). However, various places in the code still contained stuff whose only purpose was to support that build mode, and some outdated documentation. This patch cleans that up (although I probably missed some).
- Remove HandleOutOfTreeLLVM.cmake which isn't referenced anymore
- Remove the LLVM_PATH CMake variable which isn't used anymore
- Update some outdated documentation referencing standalone builds
---
Full diff: https://github.com/llvm/llvm-project/pull/112741.diff
5 Files Affected:
- (removed) cmake/Modules/HandleOutOfTreeLLVM.cmake (-80)
- (modified) compiler-rt/cmake/Modules/AddCompilerRT.cmake (-1)
- (modified) libunwind/docs/BuildingLibunwind.rst (+1-18)
- (modified) llvm/docs/HowToBuildWindowsItaniumPrograms.rst (+5-13)
- (modified) runtimes/CMakeLists.txt (-3)
``````````diff
diff --git a/cmake/Modules/HandleOutOfTreeLLVM.cmake b/cmake/Modules/HandleOutOfTreeLLVM.cmake
deleted file mode 100644
index edffe572e091e3..00000000000000
--- a/cmake/Modules/HandleOutOfTreeLLVM.cmake
+++ /dev/null
@@ -1,80 +0,0 @@
-if (NOT DEFINED LLVM_PATH)
- set(LLVM_PATH ${CMAKE_CURRENT_LIST_DIR}/../../llvm CACHE PATH "" FORCE)
-endif()
-
-if(NOT IS_DIRECTORY ${LLVM_PATH})
- message(FATAL_ERROR
- "The provided LLVM_PATH (${LLVM_PATH}) is not a valid directory. Note that "
- "building libc++ outside of the monorepo is not supported anymore. Please "
- "use a Standalone build against the monorepo, a Runtimes build or a classic "
- "monorepo build.")
-endif()
-
-set(LLVM_INCLUDE_DIR ${LLVM_PATH}/include CACHE PATH "Path to llvm/include")
-set(LLVM_PATH ${LLVM_PATH} CACHE PATH "Path to LLVM source tree")
-set(LLVM_MAIN_SRC_DIR ${LLVM_PATH})
-set(LLVM_CMAKE_DIR "${LLVM_PATH}/cmake/modules")
-set(LLVM_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
-set(LLVM_LIBRARY_OUTPUT_INTDIR "${CMAKE_CURRENT_BINARY_DIR}/lib")
-
-if (EXISTS "${LLVM_CMAKE_DIR}")
- list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_DIR}")
-elseif (EXISTS "${LLVM_MAIN_SRC_DIR}/cmake/modules")
- list(APPEND CMAKE_MODULE_PATH "${LLVM_MAIN_SRC_DIR}/cmake/modules")
-else()
- message(FATAL_ERROR "Neither ${LLVM_CMAKE_DIR} nor ${LLVM_MAIN_SRC_DIR}/cmake/modules found. "
- "This is not a supported configuration.")
-endif()
-
-message(STATUS "Configuring for standalone build.")
-
-# By default, we target the host, but this can be overridden at CMake invocation time.
-include(GetHostTriple)
-get_host_triple(LLVM_INFERRED_HOST_TRIPLE)
-set(LLVM_HOST_TRIPLE "${LLVM_INFERRED_HOST_TRIPLE}" CACHE STRING "Host on which LLVM binaries will run")
-set(LLVM_DEFAULT_TARGET_TRIPLE "${LLVM_HOST_TRIPLE}" CACHE STRING "Target triple used by default.")
-
-# Add LLVM Functions --------------------------------------------------------
-if (WIN32)
- set(LLVM_ON_UNIX 0)
- set(LLVM_ON_WIN32 1)
-else()
- set(LLVM_ON_UNIX 1)
- set(LLVM_ON_WIN32 0)
-endif()
-
-include(AddLLVM OPTIONAL)
-
-# LLVM Options --------------------------------------------------------------
-if (NOT DEFINED LLVM_INCLUDE_TESTS)
- set(LLVM_INCLUDE_TESTS ON)
-endif()
-if (NOT DEFINED LLVM_INCLUDE_DOCS)
- set(LLVM_INCLUDE_DOCS ON)
-endif()
-if (NOT DEFINED LLVM_ENABLE_SPHINX)
- set(LLVM_ENABLE_SPHINX OFF)
-endif()
-
-if (LLVM_INCLUDE_TESTS)
- # Required LIT Configuration ------------------------------------------------
- # Define the default arguments to use with 'lit', and an option for the user
- # to override.
- set(LLVM_DEFAULT_EXTERNAL_LIT "${LLVM_MAIN_SRC_DIR}/utils/lit/lit.py")
- set(LIT_ARGS_DEFAULT "-sv --show-xfail --show-unsupported")
- if (MSVC OR XCODE)
- set(LIT_ARGS_DEFAULT "${LIT_ARGS_DEFAULT} --no-progress-bar")
- endif()
- set(LLVM_LIT_ARGS "${LIT_ARGS_DEFAULT}" CACHE STRING "Default options for lit")
-endif()
-
-# Required doc configuration
-if (LLVM_ENABLE_SPHINX)
- find_package(Sphinx REQUIRED)
-endif()
-
-if (LLVM_ON_UNIX AND NOT APPLE)
- set(LLVM_HAVE_LINK_VERSION_SCRIPT 1)
-else()
- set(LLVM_HAVE_LINK_VERSION_SCRIPT 0)
-endif()
diff --git a/compiler-rt/cmake/Modules/AddCompilerRT.cmake b/compiler-rt/cmake/Modules/AddCompilerRT.cmake
index e3d81d241b1054..bfa1834229baab 100644
--- a/compiler-rt/cmake/Modules/AddCompilerRT.cmake
+++ b/compiler-rt/cmake/Modules/AddCompilerRT.cmake
@@ -690,7 +690,6 @@ macro(add_custom_libcxx name prefix)
-DCMAKE_CXX_FLAGS=${LIBCXX_CXX_FLAGS}
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY
- -DLLVM_PATH=${LLVM_MAIN_SRC_DIR}
-DLLVM_ENABLE_RUNTIMES=libcxx|libcxxabi
-DLIBCXXABI_USE_LLVM_UNWINDER=OFF
-DLIBCXXABI_ENABLE_SHARED=OFF
diff --git a/libunwind/docs/BuildingLibunwind.rst b/libunwind/docs/BuildingLibunwind.rst
index 79166b4769c617..8b4f1207d4ba99 100644
--- a/libunwind/docs/BuildingLibunwind.rst
+++ b/libunwind/docs/BuildingLibunwind.rst
@@ -16,7 +16,7 @@ On Mac OS, the easiest way to get this library is to link with -lSystem.
However if you want to build tip-of-trunk from here (getting the bleeding
edge), read on.
-The basic steps needed to build libc++ are:
+The basic steps needed to build libunwind are:
#. Checkout LLVM, libunwind, and related projects:
@@ -50,23 +50,6 @@ The basic steps needed to build libc++ are:
* ``make install-unwind`` --- Will install the libraries and the headers
-It is sometimes beneficial to build outside of the LLVM tree. An out-of-tree
-build would look like this:
-
-.. code-block:: bash
-
- $ cd where-you-want-libunwind-to-live
- $ # Check out llvm, and libunwind
- $ ``svn co https://llvm.org/svn/llvm-project/llvm/trunk llvm``
- $ ``svn co https://llvm.org/svn/llvm-project/libunwind/trunk libunwind``
- $ cd where-you-want-to-build
- $ mkdir build && cd build
- $ export CC=clang CXX=clang++
- $ cmake -DLLVM_PATH=path/to/llvm \
- path/to/libunwind
- $ make
-
-
.. _CMake Options:
CMake Options
diff --git a/llvm/docs/HowToBuildWindowsItaniumPrograms.rst b/llvm/docs/HowToBuildWindowsItaniumPrograms.rst
index 883c1868b753a1..48ca7b25b11ef8 100644
--- a/llvm/docs/HowToBuildWindowsItaniumPrograms.rst
+++ b/llvm/docs/HowToBuildWindowsItaniumPrograms.rst
@@ -73,19 +73,11 @@ The procedure is:
It is also possible to cross-compile from Linux.
-One method of building the libraries in step 2. is to build them "stand-alone".
-A stand-alone build doesn't involve the rest of the LLVM tree. The steps are:
-
-* ``cd build-dir``
-* ``cmake -DLLVM_PATH=<path to llvm checkout e.g. /llvm-project/> -DCMAKE_INSTALL_PREFIX=<install path> <other options> <path to project e.g. /llvm-project/libcxxabi>``
-* ``<make program e.g. ninja>``
-* ``<make program> install``
-
-More information on standalone builds can be found in the build documentation for
-the respective libraries. The next section discuss the salient options and modifications
-required for building and installing the libraries using standalone builds. This assumes
-that we are building libunwind and ibc++ as DLLs and statically linking libc++abi into
-libc++. Other build configurations are possible, but they are not discussed here.
+To build the libraries in step 2, refer to the `libc++ documentation <https://libcxx.llvm.org/VendorDocumentation.html#the-default-build>`_.
+
+The next section discuss the salient options and modifications required for building and installing the
+libraries. This assumes that we are building libunwind and libc++ as DLLs and statically linking libc++abi
+into libc++. Other build configurations are possible, but they are not discussed here.
Common CMake configuration options:
-----------------------------------
diff --git a/runtimes/CMakeLists.txt b/runtimes/CMakeLists.txt
index 830165c799c2ab..832a7d0c193592 100644
--- a/runtimes/CMakeLists.txt
+++ b/runtimes/CMakeLists.txt
@@ -75,9 +75,6 @@ set(LLVM_RUNTIME_OUTPUT_INTDIR ${LLVM_TOOLS_BINARY_DIR})
set(LLVM_MAIN_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../llvm)
set(LLVM_CMAKE_DIR ${LLVM_MAIN_SRC_DIR}/cmake/modules)
-# This variable is used by individual runtimes to locate LLVM files.
-set(LLVM_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../llvm)
-
include(CheckLibraryExists)
include(LLVMCheckCompilerLinkerFlag)
include(CheckCCompilerFlag)
``````````
</details>
https://github.com/llvm/llvm-project/pull/112741
More information about the cfe-commits
mailing list