On Sun, Apr 19, 2020 at 11:04:45AM -0700, Nathan Chancellor wrote: > Currently, when linking with ld.lld, this warning pops up: > > arch/mips/vdso/Makefile:70: MIPS VDSO requires binutils >= 2.25 > > ld-ifversion calls ld-version, which calls scripts/ld-version.sh, which > is specific to GNU ld. 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 above this block so it should not be subjected > to this check. > > 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 > > Link: https://github.com/ClangBuiltLinux/linux/issues/785 > Link: https://github.com/llvm/llvm-project/commit/e364e2e9ce50c12eb2bf093560e1a1a8544d455a > Reported-by: Dmitry Golovin <dima@xxxxxxxxxx> > Signed-off-by: Nathan Chancellor <natechancellor@xxxxxxxxx> > --- > arch/mips/vdso/Makefile | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/arch/mips/vdso/Makefile b/arch/mips/vdso/Makefile > index d7fe8408603e..f99e583d14a1 100644 > --- a/arch/mips/vdso/Makefile > +++ b/arch/mips/vdso/Makefile > @@ -65,9 +65,11 @@ DISABLE_VDSO := n > # the comments on that file. > # > ifndef CONFIG_CPU_MIPSR6 > - ifeq ($(call ld-ifversion, -lt, 225000000, y),y) > - $(warning MIPS VDSO requires binutils >= 2.25) > - DISABLE_VDSO := y > + ifndef CONFIG_LD_IS_LLD > + ifeq ($(call ld-ifversion, -lt, 225000000, y),y) > + $(warning MIPS VDSO requires binutils >= 2.25) > + DISABLE_VDSO := y > + endif > endif > endif > > -- > 2.26.1 > Hmmm, I still see this warning when first runing make <config>... I assume because this Makefile gets parsed before Kconfig runs. Perhaps it would be better to check if ld-version is 0 (since that means we are not using GNU ld): ifneq ($(call ld-ifversion, -eq, 0, y),y) I am open to suggestions though. Cheers, Nathan