Keep all function symbols in the vDSO .symtab for stack trace purposes. This enables a stack tracer, such as perf, to lookup these function symbols in addition to those already exported in vDSO .dynsym. Signed-off-by: Jens Remus --- Notes (jremus): Changes in RFC v2: - Use objcopy flag "-g" instead of "-S" with the cumbersome filter "-w -K "__arch_*" -K "__cvdso_*" -K "__s390_vdso_*" to keep the function symbols, as Josh did in "x86/vdso: Enable sframe generation in VDSO": https://lore.kernel.org/all/20250425024023.173709192@goodmis.org/ - Reword commit message. Note that unlike Josh I did not squash this into the subsequent patch "s390/vdso: Enable SFrame generation in vDSO", as this change is unrelated to enabling the use of SFrame. perf report/script do also benefit from this change when using perf record --call-graph dwarf. Note that this change does not cause the vDSO build-id to change. perf record may therefore not dump an updated copy of the vDSO to ~/.debug/[vdso]//vdso, so that perf report/script may use a stale copy without .symtab. Resolve by deleting ~/.debug/. arch/s390/kernel/vdso/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/s390/kernel/vdso/Makefile b/arch/s390/kernel/vdso/Makefile index 2fa12d4ac106..3a8bde5716f4 100644 --- a/arch/s390/kernel/vdso/Makefile +++ b/arch/s390/kernel/vdso/Makefile @@ -50,7 +50,7 @@ $(obj)/vdso.so.dbg: $(obj)/vdso.lds $(obj-vdso) $(obj-cvdso) FORCE $(call if_changed,vdso_and_check) # strip rule for the .so file -$(obj)/%.so: OBJCOPYFLAGS := -S +$(obj)/%.so: OBJCOPYFLAGS := -g $(obj)/%.so: $(obj)/%.so.dbg FORCE $(call if_changed,objcopy) -- 2.51.0