[docs] Prefer setting LLVM_HOST_TRIPLE instead of LLVM_DEFAULT_TARGET_TRIPLE and...
authorMartin Storsjö <martin@martin.st>
Mon, 23 Jan 2023 12:13:40 +0000 (14:13 +0200)
committerMartin Storsjö <martin@martin.st>
Fri, 3 Feb 2023 08:54:29 +0000 (10:54 +0200)
Setting LLVM_HOST_TRIPLE propagates the information to a few more
places than if only setting LLVM_TARGET_ARCH and
LLVM_DEFAULT_TARGET_TRIPLE, while both of those settings get their
defaults implied from LLVM_HOST_TRIPLE if they're not overridden.

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

llvm/docs/HowToCrossCompileLLVM.rst

index 258d3a2..1e6f74b 100644 (file)
@@ -43,12 +43,16 @@ The CMake options you need to add are:
  * ``-DCMAKE_SYSTEM_NAME=<target-system>``
  * ``-DCMAKE_INSTALL_PREFIX=<install-dir>``
  * ``-DLLVM_NATIVE_TOOL_DIR=<path-to-host-bin>``
- * ``-DLLVM_DEFAULT_TARGET_TRIPLE=arm-linux-gnueabihf``
- * ``-DLLVM_TARGET_ARCH=ARM``
+ * ``-DLLVM_HOST_TRIPLE=arm-linux-gnueabihf``
  * ``-DLLVM_TARGETS_TO_BUILD=ARM``
 
 Note: ``CMAKE_CROSSCOMPILING`` is always set automatically when ``CMAKE_SYSTEM_NAME`` is set. Don't put ``-DCMAKE_CROSSCOMPILING=TRUE`` in your options.
 
+Also note that ``LLVM_HOST_TRIPLE`` specifies the triple of the system
+that the cross built LLVM is going to run on - the flag is named based
+on the autoconf build/host/target nomenclature. (This flag implicitly sets
+other defaults, such as ``LLVM_DEFAULT_TARGET_TRIPLE``.)
+
 If you're compiling with GCC, you can use architecture options for your target,
 and the compiler driver will detect everything that it needs: