|
@@ -60,8 +60,71 @@ They can be enabled individually. The full list of the parameters: ::
|
|
|
OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump READELF=llvm-readelf \
|
|
|
HOSTCC=clang HOSTCXX=clang++ HOSTAR=llvm-ar HOSTLD=ld.lld
|
|
|
|
|
|
-Currently, the integrated assembler is disabled by default. You can pass
|
|
|
-``LLVM_IAS=1`` to enable it.
|
|
|
+The integrated assembler is enabled by default. You can pass ``LLVM_IAS=0`` to
|
|
|
+disable it.
|
|
|
+
|
|
|
+Omitting CROSS_COMPILE
|
|
|
+----------------------
|
|
|
+
|
|
|
+As explained above, ``CROSS_COMPILE`` is used to set ``--target=<triple>``.
|
|
|
+
|
|
|
+If ``CROSS_COMPILE`` is not specified, the ``--target=<triple>`` is inferred
|
|
|
+from ``ARCH``.
|
|
|
+
|
|
|
+That means if you use only LLVM tools, ``CROSS_COMPILE`` becomes unnecessary.
|
|
|
+
|
|
|
+For example, to cross-compile the arm64 kernel::
|
|
|
+
|
|
|
+ make ARCH=arm64 LLVM=1
|
|
|
+
|
|
|
+If ``LLVM_IAS=0`` is specified, ``CROSS_COMPILE`` is also used to derive
|
|
|
+``--prefix=<path>`` to search for the GNU assembler and linker. ::
|
|
|
+
|
|
|
+ make ARCH=arm64 LLVM=1 LLVM_IAS=0 CROSS_COMPILE=aarch64-linux-gnu-
|
|
|
+
|
|
|
+Supported Architectures
|
|
|
+-----------------------
|
|
|
+
|
|
|
+LLVM does not target all of the architectures that Linux supports and
|
|
|
+just because a target is supported in LLVM does not mean that the kernel
|
|
|
+will build or work without any issues. Below is a general summary of
|
|
|
+architectures that currently work with ``CC=clang`` or ``LLVM=1``. Level
|
|
|
+of support corresponds to "S" values in the MAINTAINERS files. If an
|
|
|
+architecture is not present, it either means that LLVM does not target
|
|
|
+it or there are known issues. Using the latest stable version of LLVM or
|
|
|
+even the development tree will generally yield the best results.
|
|
|
+An architecture's ``defconfig`` is generally expected to work well,
|
|
|
+certain configurations may have problems that have not been uncovered
|
|
|
+yet. Bug reports are always welcome at the issue tracker below!
|
|
|
+
|
|
|
+.. list-table::
|
|
|
+ :widths: 10 10 10
|
|
|
+ :header-rows: 1
|
|
|
+
|
|
|
+ * - Architecture
|
|
|
+ - Level of support
|
|
|
+ - ``make`` command
|
|
|
+ * - arm
|
|
|
+ - Supported
|
|
|
+ - ``LLVM=1``
|
|
|
+ * - arm64
|
|
|
+ - Supported
|
|
|
+ - ``LLVM=1``
|
|
|
+ * - mips
|
|
|
+ - Maintained
|
|
|
+ - ``CC=clang``
|
|
|
+ * - powerpc
|
|
|
+ - Maintained
|
|
|
+ - ``CC=clang``
|
|
|
+ * - riscv
|
|
|
+ - Maintained
|
|
|
+ - ``CC=clang``
|
|
|
+ * - s390
|
|
|
+ - Maintained
|
|
|
+ - ``CC=clang``
|
|
|
+ * - x86
|
|
|
+ - Supported
|
|
|
+ - ``LLVM=1``
|
|
|
|
|
|
Getting Help
|
|
|
------------
|