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

Tom Rini trini at konsulko.com
Fri Feb 16 14:19:05 CET 2024


On Fri, Feb 16, 2024 at 10:06:03AM +0000, Paul Barker wrote:
> 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.

It is so I'll reword this a bit more then, thanks.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20240216/f41a99bf/attachment.sig>


More information about the U-Boot mailing list