[v2] doc: clang: Update and correct support notes
Heinrich Schuchardt
xypron.glpk at gmx.de
Tue Nov 21 17:35:25 CET 2023
On 11/21/23 16:41, Tom Rini wrote:
> At this point, clang can be used on both 32bit and 64bit targets without
> issue. Make note of logic we have that will inform clang of the
> architecture to build for.
>
> Signed-off-by: Tom Rini <trini at konsulko.com>
> ---
> Changes in v2:
> - Reword the segment about CROSS_COMPILE and -target per Heinrich's
> suggestion.
> ---
> doc/build/clang.rst | 22 ++++++++++------------
> 1 file changed, 10 insertions(+), 12 deletions(-)
>
> diff --git a/doc/build/clang.rst b/doc/build/clang.rst
> index cc265506c2fb..09bb988e9236 100644
> --- a/doc/build/clang.rst
> +++ b/doc/build/clang.rst
> @@ -11,14 +11,6 @@ The ARM backend can be instructed not to use the r9 and x18 registers using
> supported inline assembly is needed to get and set the r9 or x18 value. This
> leads to larger code then strictly necessary, but at least works.
>
> -**NOTE:** target compilation only work for _some_ ARM boards at the moment.
> -Also AArch64 is not supported currently due to a lack of private libgcc
> -support. Boards which reassign gd in c will also fail to compile, but there is
> -in no strict reason to do so in the ARM world, since crt0.S takes care of this.
> -These assignments can be avoided by changing the init calls but this is not in
> -mainline yet.
> -
> -
> Debian based
> ------------
>
> @@ -28,14 +20,20 @@ Required packages can be installed via apt, e.g.
>
> sudo apt-get install clang
>
> -Note that we still use binutils for some tools so we must continue to set
> -CROSS_COMPILE. To compile U-Boot with Clang on Linux without IAS use e.g.
> +We make use of the CROSS_COMPILE variable to derive the build target which is
> +passed as the --target parameter to clang.
> +
> +The CROSS_COMPILE variable further determines the paths to other build
> +tools. As assembler we use the binary pointed to by '$(CROSS_COMPILE)as'
> +instead of the LLVM integrated assembler (IAS).
> +
> +Here is an example demonstrating building U-Boot for the Raspberry Pi 2
> +using clang:
>
> .. code-block:: bash
>
> make HOSTCC=clang rpi_2_defconfig
> - make HOSTCC=clang CROSS_COMPILE=arm-linux-gnueabi- \
> - CC="clang -target arm-linux-gnueabi" -j8
> + make HOSTCC=clang CROSS_COMPILE=arm-linux-gnueabi- CC=clang -j8
>
> It can also be used to compile sandbox:
>
Reviewed-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
More information about the U-Boot
mailing list