allmodconfig builds failing to link on arm64

Mark Rutland mark.rutland at arm.com
Fri Apr 8 07:45:42 PDT 2022


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.

Thanks,
Mark.



More information about the linux-arm-kernel mailing list