| From 161a7013e7eea1fbaea40c8e3ac832d4ce73431f Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 15 Apr 2020 17:29:58 +0300 |
| Subject: riscv: fix vdso build with lld |
| |
| From: Ilie Halip <ilie.halip@gmail.com> |
| |
| [ Upstream commit 3c1918c8f54166598195d938564072664a8275b1 ] |
| |
| When building with the LLVM linker this error occurrs: |
| LD arch/riscv/kernel/vdso/vdso-syms.o |
| ld.lld: error: no input files |
| |
| This happens because the lld treats -R as an alias to -rpath, as opposed |
| to ld where -R means --just-symbols. |
| |
| Use the long option name for compatibility between the two. |
| |
| Link: https://github.com/ClangBuiltLinux/linux/issues/805 |
| Reported-by: Dmitry Golovin <dima@golovin.in> |
| Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> |
| Signed-off-by: Ilie Halip <ilie.halip@gmail.com> |
| Reviewed-by: Fangrui Song <maskray@google.com> |
| Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| arch/riscv/kernel/vdso/Makefile | 6 +++--- |
| 1 file changed, 3 insertions(+), 3 deletions(-) |
| |
| diff --git a/arch/riscv/kernel/vdso/Makefile b/arch/riscv/kernel/vdso/Makefile |
| index 33b16f4212f7a..a4ee3a0e7d20d 100644 |
| --- a/arch/riscv/kernel/vdso/Makefile |
| +++ b/arch/riscv/kernel/vdso/Makefile |
| @@ -33,15 +33,15 @@ $(obj)/vdso.so.dbg: $(src)/vdso.lds $(obj-vdso) FORCE |
| $(call if_changed,vdsold) |
| |
| # We also create a special relocatable object that should mirror the symbol |
| -# table and layout of the linked DSO. With ld -R we can then refer to |
| -# these symbols in the kernel code rather than hand-coded addresses. |
| +# table and layout of the linked DSO. With ld --just-symbols we can then |
| +# refer to these symbols in the kernel code rather than hand-coded addresses. |
| |
| SYSCFLAGS_vdso.so.dbg = -shared -s -Wl,-soname=linux-vdso.so.1 \ |
| -Wl,--build-id -Wl,--hash-style=both |
| $(obj)/vdso-dummy.o: $(src)/vdso.lds $(obj)/rt_sigreturn.o FORCE |
| $(call if_changed,vdsold) |
| |
| -LDFLAGS_vdso-syms.o := -r -R |
| +LDFLAGS_vdso-syms.o := -r --just-symbols |
| $(obj)/vdso-syms.o: $(obj)/vdso-dummy.o FORCE |
| $(call if_changed,ld) |
| |
| -- |
| 2.20.1 |
| |