Keep all function symbols in the vDSO .symtab for stack trace purposes.
This enables perf to lookup these function symbols in addition to those
already exported in vDSO .dynsym.

Signed-off-by: Jens Remus <jre...@linux.ibm.com>
---

Notes (jremus):
    Alternatively use objcopy option -g instead of -S (and the -w -K
    filters), as Josh did in "x86/vdso: Enable sframe generation in VDSO":
    https://lore.kernel.org/all/20250425024023.173709...@goodmis.org/
    
    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]/<build-id>/vdso, so that perf script may use a
    stale copy without .symtab. Resolve by deleting ~/.debug/.

 arch/s390/kernel/vdso64/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/s390/kernel/vdso64/Makefile b/arch/s390/kernel/vdso64/Makefile
index e96156b9c4df..067753352697 100644
--- a/arch/s390/kernel/vdso64/Makefile
+++ b/arch/s390/kernel/vdso64/Makefile
@@ -58,7 +58,7 @@ $(obj)/vdso64.so.dbg: $(obj)/vdso64.lds $(obj-vdso64) 
$(obj-cvdso64) FORCE
        $(call if_changed,vdso_and_check)
 
 # strip rule for the .so file
-$(obj)/%.so: OBJCOPYFLAGS := -S
+$(obj)/%.so: OBJCOPYFLAGS := -S -w -K "__arch_*" -K "__cvdso_*" -K 
"__s390_vdso_*"
 $(obj)/%.so: $(obj)/%.so.dbg FORCE
        $(call if_changed,objcopy)
 
-- 
2.48.1


Reply via email to