Re: [REGRESSION] Build failure with CONFIG_NFS_LOCALIO=y on Linux 6.12-rc1

From: Thorsten Leemhuis
Date: Thu Oct 10 2024 - 06:46:35 EST


Hi, Thorsten here, the Linux kernel's regression tracker.

On 06.10.24 18:00, Maximilian Bosch wrote:
>
> I haven't found an existing report for this problem, but I observed
> that Linux 6.12-rc1 fails to build like this on aarch64-linux with
> CONFIG_NFS_LOCALIO=y:

Thx for the report. FWIW, there is another report with similar symptoms
that looks to be the same issue:
https://bugzilla.kernel.org/show_bug.cgi?id=219370

That reporter bisected the problem to fa4983862e506d ("nfsd: add LOCALIO
support") [v6.12-rc1]. CCing the involved developers.

Ciao, Thorsten

> /nix/store/f3k0rdhcd2cx57phx755c2xixgifw5m5-binutils-2.42/bin/ld: warning: -z relro ignored
> /nix/store/f3k0rdhcd2cx57phx755c2xixgifw5m5-binutils-2.42/bin/ld: Unexpected GOT/PLT entries detected!
> /nix/store/f3k0rdhcd2cx57phx755c2xixgifw5m5-binutils-2.42/bin/ld: Unexpected run-time procedure linkages detected!
> /nix/store/f3k0rdhcd2cx57phx755c2xixgifw5m5-binutils-2.42/bin/ld: fs/nfs/localio.o: in function `nfs_local_iocb_alloc':
> /build/source/build/../fs/nfs/localio.c:290:(.text+0x324): undefined reference to `nfs_to'
> /nix/store/f3k0rdhcd2cx57phx755c2xixgifw5m5-binutils-2.42/bin/ld: fs/nfs/localio.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `nfs_to' which may bind externally can not be used when making a shared object; recompile with -fPIC
> /build/source/build/../fs/nfs/localio.c:290:(.text+0x324): dangerous relocation: unsupported relocation
> /nix/store/f3k0rdhcd2cx57phx755c2xixgifw5m5-binutils-2.42/bin/ld: /build/source/build/../fs/nfs/localio.c:290:(.text+0x330): undefined reference to `nfs_to'
> /nix/store/f3k0rdhcd2cx57phx755c2xixgifw5m5-binutils-2.42/bin/ld: fs/nfs/localio.o: in function `nfs_local_pgio_release':
> /build/source/build/../fs/nfs/localio.c:344:(.text+0x47c): undefined reference to `nfs_to'
> /nix/store/f3k0rdhcd2cx57phx755c2xixgifw5m5-binutils-2.42/bin/ld: fs/nfs/localio.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `nfs_to' which may bind externally can not be used when making a shared object; recompile with -fPIC
> /build/source/build/../fs/nfs/localio.c:344:(.text+0x47c): dangerous relocation: unsupported relocation
> /nix/store/f3k0rdhcd2cx57phx755c2xixgifw5m5-binutils-2.42/bin/ld: /build/source/build/../fs/nfs/localio.c:344:(.text+0x488): undefined reference to `nfs_to'
> /nix/store/f3k0rdhcd2cx57phx755c2xixgifw5m5-binutils-2.42/bin/ld: fs/nfs/localio.o: in function `nfs_local_fsync_work':
> /build/source/build/../fs/nfs/localio.c:725:(.text+0x838): undefined reference to `nfs_to'
> /nix/store/f3k0rdhcd2cx57phx755c2xixgifw5m5-binutils-2.42/bin/ld: fs/nfs/localio.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `nfs_to' which may bind externally can not be used when making a shared object; recompile with -fPIC
> /build/source/build/../fs/nfs/localio.c:725:(.text+0x838): dangerous relocation: unsupported relocation
> /nix/store/f3k0rdhcd2cx57phx755c2xixgifw5m5-binutils-2.42/bin/ld: fs/nfs/localio.o:/build/source/build/../fs/nfs/localio.c:725: more undefined references to `nfs_to' follow
> /nix/store/f3k0rdhcd2cx57phx755c2xixgifw5m5-binutils-2.42/bin/ld: fs/nfs/localio.o: in function `nfs_local_disable':
> /build/source/build/../fs/nfs/localio.c:140:(.text+0xeb4): undefined reference to `nfs_uuid_invalidate_one_client'
> /nix/store/f3k0rdhcd2cx57phx755c2xixgifw5m5-binutils-2.42/bin/ld: fs/nfs/localio.o: in function `nfs_local_probe':
> /build/source/build/../fs/nfs/localio.c:209:(.text+0xfac): undefined reference to `nfs_uuid_begin'
> /nix/store/f3k0rdhcd2cx57phx755c2xixgifw5m5-binutils-2.42/bin/ld: /build/source/build/../fs/nfs/localio.c:212:(.text+0x1074): undefined reference to `nfs_uuid_end'
> /nix/store/f3k0rdhcd2cx57phx755c2xixgifw5m5-binutils-2.42/bin/ld: fs/nfs/localio.o: in function `nfs_local_open_fh':
> /build/source/build/../fs/nfs/localio.c:233:(.text+0x12cc): undefined reference to `nfs_open_local_fh'
> /nix/store/f3k0rdhcd2cx57phx755c2xixgifw5m5-binutils-2.42/bin/ld: fs/nfs/localio.o: in function `nfs_local_doio':
> /build/source/build/../fs/nfs/localio.c:600:(.text+0x13c8): undefined reference to `nfs_to'
> /nix/store/f3k0rdhcd2cx57phx755c2xixgifw5m5-binutils-2.42/bin/ld: fs/nfs/localio.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `nfs_to' which may bind externally can not be used when making a shared object; recompile with -fPIC
> /build/source/build/../fs/nfs/localio.c:600:(.text+0x13c8): dangerous relocation: unsupported relocation
> /nix/store/f3k0rdhcd2cx57phx755c2xixgifw5m5-binutils-2.42/bin/ld: /build/source/build/../fs/nfs/localio.c:600:(.text+0x13d8): undefined reference to `nfs_to'
> /nix/store/f3k0rdhcd2cx57phx755c2xixgifw5m5-binutils-2.42/bin/ld: /build/source/build/../fs/nfs/localio.c:625:(.text+0x150c): undefined reference to `nfs_to'
> /nix/store/f3k0rdhcd2cx57phx755c2xixgifw5m5-binutils-2.42/bin/ld: fs/nfs/localio.o: in function `nfs_local_release_commit_data':
> /build/source/build/../fs/nfs/localio.c:676:(.text+0x18dc): undefined reference to `nfs_to'
> /nix/store/f3k0rdhcd2cx57phx755c2xixgifw5m5-binutils-2.42/bin/ld: fs/nfs/localio.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `nfs_to' which may bind externally can not be used when making a shared object; recompile with -fPIC
> /build/source/build/../fs/nfs/localio.c:676:(.text+0x18dc): dangerous relocation: unsupported relocation
> /nix/store/f3k0rdhcd2cx57phx755c2xixgifw5m5-binutils-2.42/bin/ld: /build/source/build/../fs/nfs/localio.c:676:(.text+0x18ec): undefined reference to `nfs_to'
> make[2]: *** [../scripts/Makefile.vmlinux:34: vmlinux] Error 1
> make[1]: *** [/build/source/Makefile:1166: vmlinux] Error 2
> make: *** [../Makefile:224: __sub-make] Error 2
>
> On x86_64-linux the problem doesn't exist.
>
> For the build are binutils 2.42 & GCC 13.3 used.
>
> The workaround was to turn off CONFIG_NFS_LOCALIO.
>
> With best regards
>
> Ma27


#regzbot ^introduced: fa4983862e506d
#regzbot dup: https://bugzilla.kernel.org/show_bug.cgi?id=219370