lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240903012354.GA422360@thelio-3990X>
Date: Mon, 2 Sep 2024 18:23:54 -0700
From: Nathan Chancellor <nathan@...nel.org>
To: Arnd Bergmann <arnd@...db.de>
Cc: "Jason A . Donenfeld" <Jason@...c4.com>, linux-kernel@...r.kernel.org
Subject: Re: odd endianness toolchains for crosstool

On Thu, Aug 29, 2024 at 10:25:32PM +0200, Arnd Bergmann wrote:
> On Thu, Aug 29, 2024, at 17:51, Jason A. Donenfeld wrote:
> > On Mon, Apr 25, 2022 at 03:39:27AM +0200, Jason A. Donenfeld wrote:
> >
> >
> > I decided to give it another look, seeing if I could replace my musl.cc
> > compilers with your crosstool ones.
> >
> > The actual changes required weren't so bad:
> >
> >     https://git.zx2c4.com/wireguard-linux/commit/?h=update-toolchain
> >
> > But there's not universal success:
> >
> >     x86_64 - good
> >     i386 - good
> >     arm - good
> >     armeb - MISSING
> >     aarch64 - good
> >     aarch64_be - MISSING
> >     mips - BROKEN (doesn't like -EB)
> >     mipsel - MISSING
> >     mips64 - BROKEN (doesn't like -EB)
> >     mips64el - MISSING
> >     powerpc64 - BROKEN (wrong powerpc ABI)
> >     powerpc64le - MISSING
> >     powerpc - BROKEN (builds but some binaries segfault)
> >     m68k - good
> >     riscv64 - good
> >     riscv32 - good
> >     s390 - BROKEN (should be called "s390x" instead)
> >     um - kinda broken (but not crosstool's problem)
> >
> > To try these, I've been running:
> >
> >     ARCH=aarch64 make -C tools/testing/selftests/wireguard/qemu -j$(nproc)
> >
> > or similar, against this tree:
> >
> >     $ git clone -b update-toolchain https://git.zx2c4.com/wireguard-linux/
> >
> > So it looks like it's not quite there, but not bad either. Just FYI in
> > case you're interested.
> 
> I wonder if the ones you list as missing all work with Nathan's clang
> builds from https://mirrors.edge.kernel.org/pub/tools/llvm/ instead.
> 
> As far as I can tell, the main missing bit here is libgcc, which
> is not always built along with gcc for all possible targets.
> The llvm replacement for libgcc is https://compiler-rt.llvm.org/,
> and you may have to build that in addition to musl when you try it.
> 
> I don't know if compiler-rt also works with gcc, but if it does,
> that should fix most of the ones that you report as failing above.
> The only one that won't work at all is um because the x86 toolchain
> is already unable to build a kernel for that.

I doubt my toolchains would fix this issue. As far as I am aware, only
the native compiler runtime is included, not any of the cross ones, as
the kernel itself does not use them. However, I suspect it would not be
too difficult to cross build compiler-rt standalone and stitch it into
my builds separately if desired.

FWIW, I have used your toolchains to build UML but maybe that is
environment dependent?

Cheers,
Nathan

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ