MIPS: VDSO: Allow ld.lld to link the VDSO
authorNathan Chancellor <natechancellor@gmail.com>
Tue, 28 Apr 2020 22:14:19 +0000 (15:14 -0700)
committerThomas Bogendoerfer <tsbogend@alpha.franken.de>
Tue, 12 May 2020 08:02:11 +0000 (10:02 +0200)
commit22235ef34a9745c4964c5aa11d57d5ce0b0117de
treed0e90cbcef13c899fb35f25400fe0d42b43bcc99
parent2ff906994b6c2b949c5bf65330a8abb5dde9c8e5
MIPS: VDSO: Allow ld.lld to link the VDSO

Currently, when linking with ld.lld, this warning pops up:

    arch/mips/vdso/Makefile:70: MIPS VDSO requires binutils >= 2.25

CONFIG_LD_VERSION is set with scripts/ld-version.sh, which is specific
to GNU ld. It returns 0 for ld.lld so CONFIG_MIPS_LD_CAN_LINK_VDSO does
not set.

ld.lld has a completely different versioning scheme (as it follows
LLVM's versioning) and it does not have the issue mentioned in the
comment block so it should be allowed to link the VDSO.

With this patch, the VDSO successfully links and shows P_MIPS_PC32 in
vgettimeofday.o.

$ llvm-objdump -Dr arch/mips/vdso/vgettimeofday.o | grep R_MIPS_PC32
00000024:  R_MIPS_PC32 _start
000000b0:  R_MIPS_PC32 _start
000002bc:  R_MIPS_PC32 _start
0000036c:  R_MIPS_PC32 _start
00000468:  R_MIPS_PC32 _start

Reported-by: Dmitry Golovin <dima@golovin.in>
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
Link: https://github.com/ClangBuiltLinux/linux/issues/785
Link: https://github.com/llvm/llvm-project/commit/e364e2e9ce50c12eb2bf093560e1a1a8544d455a
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
arch/mips/vdso/Kconfig