When CONFIG_COMPAT=y the vdso_install target fails: $ make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- vdso_install INSTALL vdso.so make[1]: *** No rule to make target 'vdso_install'. Stop. make: *** [arch/riscv/Makefile:112: vdso_install] Error 2 The problem is that arch/riscv/kernel/compat_vdso/Makefile doesn't have a vdso_install target, but instead calls it compat_vdso_install.
Unified · Split
| @@ -111,7 +111,7 @@ PHONY += vdso_install · 110 unmodified lines | ||
| 111 | 111 | vdso_install: |
| 112 | 112 | $(Q)$(MAKE) $(build)=arch/riscv/kernel/vdso $@ |
| 113 | 113 | $(if $(CONFIG_COMPAT),$(Q)$(MAKE) \ |
| 114 | − $(build)=arch/riscv/kernel/compat_vdso $@) | |
| 114 | + $(build)=arch/riscv/kernel/compat_vdso compat_$@) | |
| 115 | 115 | |
| 116 | 116 | ifeq ($(KBUILD_EXTMOD),) |
| 117 | 117 | ifeq ($(CONFIG_MMU),y) |