RE: how can we test the hexagon port in mainline

From: Brian Cain
Date: Wed Jun 23 2021 - 11:15:41 EST


> -----Original Message-----
> From: Arnd Bergmann <arnd@xxxxxxxx>
> Sent: Wednesday, June 23, 2021 9:54 AM
> To: Brian Cain <bcain@xxxxxxxxxxxxxx>
> Cc: Christoph Hellwig <hch@xxxxxx>; Linus Torvalds <torvalds@linux-
> foundation.org>; Sid Manning <sidneym@xxxxxxxxxxxxxx>; open
> list:QUALCOMM HEXAGON... <linux-hexagon@xxxxxxxxxxxxxxx>; Linux Kernel
> Mailing List <linux-kernel@xxxxxxxxxxxxxxx>
> Subject: Re: how can we test the hexagon port in mainline
>
> On Wed, Jun 23, 2021 at 4:39 PM Brian Cain <bcain@xxxxxxxxxxxxxx> wrote:
> >
> > > -----Original Message-----
> > > From: Christoph Hellwig <hch@xxxxxx>
> > ...
> > >
> > > Hi all,
> > >
> > > the oldest supported gcc version in mainline is gcc 4.9. But the only
> > > hexagon crosscompiler I can find is the one Arnds website points to here:
> > >
> > > https://mirrors.edge.kernel.org/pub/tools/crosstool/
> > >
> > > which is a non-upstream gcc 4.6.1 port. How are we supposed to even
> > > build test hexagon code?
> >
> > We have provided a clang-12-based toolchain here:
> >
> > https://codelinaro.jfrog.io/artifactory/codelinaro-qemu/2021-05-
> 12/clang+llv
> > m-12.0.0-cross-hexagon-unknown-linux-musl.tar.xz
>
> How close is this to the mainline clang builds from https://apt.llvm.org/?

This is built from llvm-project 12.0.0 but also contains userspace toolchain features like musl and qemu-linux-user for hexagon. I suppose for the purposes of kernel builds they're equivalent.

> The last time we talked, there were still a couple of bugs that prevented
> me from building an unmodified kernel with an unmodified clang toolchain,
> but I think you planned to address those. Are any changes left that did
> not make it into the 12.0 release?

I think those were identified building with clang 12.0.0 or post-12.0.0, so I don't think they'll be addressed. Let me review and follow up on the status of those items. I recall one workaround was to use the integrated assembler to avoid one of the toolchain bugs.

> > Could we update https://mirrors.edge.kernel.org/pub/tools/crosstool/ to
> > point here?
>
> I'm happy to edit the index page on
> https://mirrors.edge.kernel.org/pub/tools/crosstool,
> but could you provide a stable URL that will keep pointing to the latest
> version
> in the future so I don't have to update it for each new build?

I don't know how to do that with the mechanisms we have so far. But I will see about getting one created and then hopefully you could use that.

-Brian