On Sat, Jul 31, 2021 at 8:12 AM Fangrui Song <maskray@xxxxxxxxxx> wrote: > > On 2021-07-30, Nick Desaulniers wrote: > >As noted by Masahiro, document how we can generally infer CROSS_COMPILE > >(and the more specific details about --target and --prefix) based on > >ARCH. > > > >Suggested-by: Masahiro Yamada <masahiroy@xxxxxxxxxx> > >Signed-off-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx> > >--- > > Documentation/kbuild/llvm.rst | 17 +++++++++++++++++ > > 1 file changed, 17 insertions(+) > > > >diff --git a/Documentation/kbuild/llvm.rst b/Documentation/kbuild/llvm.rst > >index b18401d2ba82..4292f0686316 100644 > >--- a/Documentation/kbuild/llvm.rst > >+++ b/Documentation/kbuild/llvm.rst > >@@ -63,6 +63,23 @@ They can be enabled individually. The full list of the parameters: :: > > Currently, the integrated assembler is disabled by default. You can pass > > ``LLVM_IAS=1`` to enable it. > > > >+Omitting CROSS_COMPILE > >+---------------------- > >+ > >+As explained above, ``CROSS_COMPILE`` is used to set ``--target=<triple>``. > >+ > >+Unless ``LLVM_IAS=1`` is specified, ``CROSS_COMPILE`` is also used to derive > >+``--prefix=<path>`` to search for the GNU assembler. > > and the GNU linker. > > Reviewed-by: Fangrui Song <maskray@xxxxxxxxxx> > > >+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:: > >+ > >+ ARCH=arm64 make LLVM=1 LLVM_IAS=1 > > Is ARCH=arm64 make LLVM=1 LLVM_IAS=1 > > preferred over > > make ARCH=arm64 LLVM=1 LLVM_IAS=1 > > ? I do not think so. For consistency, make ARCH=arm64 LLVM=1 LLVM_IAS=1 or ARCH=arm64 LLVM=1 LLVM_IAS=1 make might be preferred. But, in the same doc, I see an example, which mixes up the env variables and a make variable. ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make CC=clang -- Best Regards Masahiro Yamada