RE: how can we test the hexagon port in mainline
From: Brian Cain
Date: Thu Jul 08 2021 - 14:36:36 EST
> -----Original Message-----
> From: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>
> Sent: Thursday, July 8, 2021 12:54 PM
> To: Christoph Hellwig <hch@xxxxxx>
> Cc: Nathan Chancellor <nathan@xxxxxxxxxx>; Brian Cain
> <bcain@xxxxxxxxxxxxxx>; Sid Manning <sidneym@xxxxxxxxxxxxxx>; Arnd
> Bergmann <arnd@xxxxxxxx>; linux-hexagon@xxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx; clang-built-linux@xxxxxxxxxxxxxxxx
> Subject: Re: how can we test the hexagon port in mainline
>
> On Wed, Jul 7, 2021 at 10:27 PM Christoph Hellwig <hch@xxxxxx> wrote:
> >
> > On Wed, Jul 07, 2021 at 10:42:27AM -0700, Nathan Chancellor wrote:
> > >> hch@brick:~/work/linux$ make -j4 ARCH=hexagon
> > >> CROSS_COMPILE=hexagon-unknown-linux-musl LLVM=1 LLVM_IAS=1
> defconfig all
> > >> HOSTCC scripts/basic/fixdep
> > >> clang: error while loading shared libraries: libtinfo.so.5: cannot open
> shared object file: No such file or directory
> > >
> > > Hmmm, is that with libtinfo5 installed (or whatever the ncurses-compat
> > > equivalent is on your distribution installed)? I had that problem on Debian
> > > until I insta
> >
> > I did install libtinfo5, which just gets me to the next error:
> >
> > hch@brick:~/work/linux$ export PATH=/opt/clang+llvm-12.0.0-cross-
> hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/:$PATH
> > hch@brick:~/work/linux$ make -j4 ARCH=hexagon
> CROSS_COMPILE=hexagon-unknown-linux-musl LLVM=1 LLVM_IAS=1 defconfig
> all
> > HOSTCC scripts/basic/fixdep
> > clang: error while loading shared libraries: libc++.so.1: cannot open shared
> object file: No such file or directory
>
> ^ Nathan did mention earlier in the thread that he "had to install
> libtinfo5 and libc++1-7 on Debian Buster." Emphasis on the _and
> libc++_ part.
>
> I'm not sure if that binary distribution came with a libc++.so.1; if
> so, that path needs to be specified via LD_LIBRARY_PATH so that the
> runtime loader can find it. Perhaps rpath wasn't set when the clang
> binary was built.
The only libc++ builds in this distribution are the target hexagon ones. I did not include a host x86_64 libc++.so library, but it does seem like it would be more convenient if we did.
Nathan suggested disabling the terminfo dependency, I will include that change for the next release that we produce. Also, the upcoming clang-13 release from releases.llvm.org should contain all the necessary fixes (discussed recently) to build kernel code for hexagon.
> We're looking into statically linked images of clang to prevent these
> kinds of games.
Statically linking against libc++/libc++abi at least seems like a good idea. Let me know if we can help.
-Brian