Files
linux/scripts/Makefile.vdsoinst
Jens Remus fc2f5f10f9 s390/vdso: Create .build-id links for unstripped vdso files
Citing Andy Lutomirski from commit dda1e95cee ("x86/vdso: Create
.build-id links for unstripped vdso files"):

"With this change, doing 'make vdso_install' and telling gdb:

set debug-file-directory /lib/modules/KVER/vdso

will enable vdso debugging with symbols.  This is useful for
testing, but kernel RPM builds will probably want to manually delete
these symlinks or otherwise do something sensible when they strip
the vdso/*.so files."

Fixes: 4bff8cb545 ("s390: convert to GENERIC_VDSO")
Signed-off-by: Jens Remus <jremus@linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
2024-05-14 13:37:06 +02:00

46 lines
1.2 KiB
Makefile

# SPDX-License-Identifier: GPL-2.0-only
# ==========================================================================
# Install unstripped copies of vDSO
# ==========================================================================
PHONY := __default
__default:
@:
include $(srctree)/scripts/Kbuild.include
install-dir := $(MODLIB)/vdso
define gen_install_rules
src := $$(firstword $$(subst :,$(space),$(1)))
dest := $(install-dir)/$$(or $$(word 2,$$(subst :,$(space),$(1))),$$(patsubst %.dbg,%,$$(notdir $(1))))
__default: $$(dest)
$$(dest): $$(src) FORCE
$$(call cmd,install)
# Some architectures create .build-id symlinks
ifneq ($(filter arm s390 sparc x86, $(SRCARCH)),)
link := $(install-dir)/.build-id/$$(shell $(READELF) -n $$(src) | sed -n 's@^.*Build ID: \(..\)\(.*\)@\1/\2@p').debug
__default: $$(link)
$$(link): $$(dest) FORCE
$$(call cmd,symlink)
endif
endef
$(foreach x, $(sort $(INSTALL_FILES)), $(eval $(call gen_install_rules,$(x))))
quiet_cmd_install = INSTALL $@
cmd_install = mkdir -p $(dir $@); cp $< $@
quiet_cmd_symlink = SYMLINK $@
cmd_symlink = mkdir -p $(dir $@); ln -sf --relative $< $@
PHONY += FORCE
FORCE:
.PHONY: $(PHONY)