Skip to content

Commit

Permalink
[cmake] Remove obsolete files, docs and CMake variables related to th…
Browse files Browse the repository at this point in the history
…e standalone build (#112741)

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
  • Loading branch information
ldionne authored Nov 4, 2024
1 parent 97b7474 commit 6127724
Show file tree
Hide file tree
Showing 5 changed files with 6 additions and 115 deletions.
80 changes: 0 additions & 80 deletions cmake/Modules/HandleOutOfTreeLLVM.cmake

This file was deleted.

1 change: 0 additions & 1 deletion compiler-rt/cmake/Modules/AddCompilerRT.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
19 changes: 1 addition & 18 deletions libunwind/docs/BuildingLibunwind.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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:

Expand Down Expand Up @@ -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
Expand Down
18 changes: 5 additions & 13 deletions llvm/docs/HowToBuildWindowsItaniumPrograms.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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:
-----------------------------------
Expand Down
3 changes: 0 additions & 3 deletions runtimes/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down

0 comments on commit 6127724

Please sign in to comment.