[PATCH 1/2] doc: Update our clang documentation to reflect current status

Paul Barker paul.barker.ct at bp.renesas.com
Fri Feb 16 11:06:03 CET 2024


On 15/02/2024 21:10, Tom Rini wrote:
> First, since this document was written the biggest challenges at the
> time are simply not applicable anymore. Second, we need to list the
> challenges which are preventing more platforms from being able to be
> built with Clang today.  Next, we update the general wording to be host
> distribution agnostic. Finally, the section about xenguest_arm64 issues
> is not present anymore.
> 
> Signed-off-by: Tom Rini <trini at konsulko.com>
> ---
> Cc: Mark Kettenis <kettenis at openbsd.org>
> This does leave the FreeBSD section unchanged and should likely be
> looked at again by someone with a BSD build machine available.
> ---
>  doc/build/clang.rst | 85 +++++++++++----------------------------------
>  1 file changed, 21 insertions(+), 64 deletions(-)
> 
> diff --git a/doc/build/clang.rst b/doc/build/clang.rst
> index 09bb988e9236..d8c554982567 100644
> --- a/doc/build/clang.rst
> +++ b/doc/build/clang.rst
> @@ -1,34 +1,27 @@
>  Building with Clang
>  ===================
>  
> -The biggest problem when trying to compile U-Boot with Clang is that almost all
> -archs rely on storing gd in a global register and the Clang 3.5 user manual
> -states: "Clang does not support global register variables; this is unlikely to
> -be implemented soon because it requires additional LLVM backend support."
> -
> -The ARM backend can be instructed not to use the r9 and x18 registers using
> --ffixed-r9 or -ffixed-x18 respectively. As global registers themselves are not
> -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.
> -
> -Debian based
> -------------
> -
> -Required packages can be installed via apt, e.g.
> -
> -.. code-block:: bash
> -
> -    sudo apt-get install clang
> -
> -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:
> +In general terms, U-Boot support building with Clang as the C compiler and

s/support/supports/

> +building and booting our "sandbox" target is part of CI.

Are you saying that building the sandbox target with Clang then booting
it is part of CI? I think this sentence needs re-wording to make it a
little clearer.

Thanks,

-- 
Paul Barker
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_0x27F4B3459F002257.asc
Type: application/pgp-keys
Size: 3520 bytes
Desc: OpenPGP public key
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20240216/b566fdf1/attachment.key>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 236 bytes
Desc: OpenPGP digital signature
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20240216/b566fdf1/attachment.sig>


More information about the U-Boot mailing list