allmodconfig builds failing to link on arm64

Will Deacon will at kernel.org
Fri Apr 8 09:13:44 PDT 2022


On Fri, Apr 08, 2022 at 04:06:39PM +0100, Mark Rutland wrote:
> On Fri, Apr 08, 2022 at 03:45:42PM +0100, Mark Rutland wrote:
> > On Fri, Apr 08, 2022 at 12:54:07PM +0100, Will Deacon wrote:
> > > Since -rc1 (although I haven't tried bisecting the merge window), I'm
> > > not able to link allmodconfig for arm64:
> > > 
> > > aarch64-linux-gnu-ld: .init.data has both ordered [`__patchable_function_entries' in init/main.o] and unordered [`.init_array.1' in virt/lib/irqbypass.o] sections
> > > aarch64-linux-gnu-ld: final link failed: bad value
> > > make: *** [Makefile:1158: vmlinux] Error 1
> > > 
> > > I'm using an Android clang based on 12.0.6 and LD claims to be
> > > 2.33.1.20191209.
> > 
> > I can reproduce that when using the llvm.org 12.0.0 binaries along with the
> > kernel.org crosstool 9.2.0 binaries (binutils 2.32) to build v5.18-rc1
> > allmodconfig.
> > 
> > I see the failure with (at least) the following combinations that I tested:
> > 
> > * LLVM 11.0.0 && binutils 2.34 (kernel.org 8.4.0 binaries)
> > * LLVM 12.0.0 && binutils 2.30 (kernel.org 8.1.0 binaries)
> > * LLVM 12.0.0 && binutils 2.32 (kernel.org 9.2.0 binaries)
> > * LLVM 12.0.0 && binutils 2.34 (kernel.org 8.4.0/9.3.0 binaries)
> > * LLVM 13.0.0 && binutils 2.34 (kernel.org 8.4.0 binaries)
> > * LLVM 14.0.0 && binutils 2.34 (kernel.org 8.4.0 binaries)
> > 
> > I *DO NOT* see the failure with the following combinations:
> > 
> > * LLVM 12.0.0 && binutils 2.36.1 (kernel.org 10.3.0/11.1.0 binaries)
> > * LLVM 13.0.0 && binutils 2.36.1 (kernel.org 10.3.0/11.1.0 binaries)
> > * LLVM 14.0.0 && binutils 2.36.1 (kernel.org 10.3.0/11.1.0 binaries)
> > 
> > So clearly something changed on the binutils side between 2.34 and
> > 2.36.1, but I don't know whether either behaviour is incorrect, or
> > whether LLVM implicitly depends upon a newer binutils version.
> > 
> > I don't know why this suddenly became a problem in v5.18-rc1; I'll have
> > a look.
> 
> I also see this with earlier kernel versions, including:
> 
> * v5.15 allmodconfig, LLVM 12.0.0, binutils 2.30 (kernel.org 8.1.0 binaries)
> * v5.16 allmodconfig, LLVM 12.0.0, binutils 2.30 (kernel.org 8.1.0 binaries)
> * v5.17 allmodconfig, LLVM 12.0.0, binutils 2.30 (kernel.org 8.1.0 binaries)
> 
> ... so it doesn't look like this is a (recent) regression.

Damn, sorry for the mis-diagnosis then. I only just started seeing it, but
thinking about it I _usually_ build with LLVM=1 which probably rules out
binutils entirely. For some reason, I ended up in the mixed case today
and ran into this.

In any case, it would be good to get it resolved and I'm happy to test out
any fixes.

Cheers,

Will



More information about the linux-arm-kernel mailing list