On Mon, Jan 13, 2025 at 07:48:15PM +0000, Conor Dooley wrote: > On Fri, Jan 10, 2025 at 04:23:48PM +0100, Thomas Weißschuh wrote: > > The generic storage implementation provides the same features as the > > custom one. However it can be shared between architectures, making > > maintenance easier. > > > > Co-developed-by: Nam Cao <namcao@xxxxxxxxxxxxx> > > Signed-off-by: Nam Cao <namcao@xxxxxxxxxxxxx> > > Signed-off-by: Thomas Weißschuh <thomas.weissschuh@xxxxxxxxxxxxx> > > For rv64, nommu: > LD vmlinux > ld.lld: error: undefined symbol: vmf_insert_pfn > >>> referenced by datastore.c > >>> lib/vdso/datastore.o:(vvar_fault) in archive vmlinux.a > > ld.lld: error: undefined symbol: _install_special_mapping > >>> referenced by datastore.c > >>> lib/vdso/datastore.o:(vdso_install_vvar_mapping) in archive vmlinux.a > > Later patches in the series don't make it build again. > rv32 builds now though, so thanks for fixing that. Thanks for the report. Can you try to diff below? I'm adding rv64 and arm nommu configs to my test matrix and doublechecking all kconfig dependencies. diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index 335cbbd4dddb..583c55910612 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -52,7 +52,7 @@ config RISCV select ARCH_HAS_SYSCALL_WRAPPER select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST select ARCH_HAS_UBSAN - select ARCH_HAS_VDSO_ARCH_DATA + select ARCH_HAS_VDSO_ARCH_DATA if GENERIC_VDSO_DATA_STORE select ARCH_KEEP_MEMBLOCK if ACPI select ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE if 64BIT && MMU select ARCH_OPTIONAL_KERNEL_RWX if ARCH_HAS_STRICT_KERNEL_RWX @@ -115,7 +115,7 @@ config RISCV select GENERIC_SCHED_CLOCK select GENERIC_SMP_IDLE_THREAD select GENERIC_TIME_VSYSCALL if MMU && 64BIT - select GENERIC_VDSO_DATA_STORE + select GENERIC_VDSO_DATA_STORE if MMU select GENERIC_VDSO_TIME_NS if HAVE_GENERIC_VDSO select HARDIRQS_SW_RESEND select HAS_IOPORT if MMU