[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