allmodconfig builds failing to link on arm64

Mark Rutland mark.rutland at arm.com
Fri Apr 8 08:06:39 PDT 2022


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:
> > Hi folks,
> 
> Hi Will,
> 
> > 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.

Thanks,
Mark.



More information about the linux-arm-kernel mailing list