x86_64: install unstripped copies of compat vdso on disk
This keeps an unstripped copy of the vDSO images built before they are stripped and embedded in the kernel. The unstripped copies get installed in $(MODLIB)/vdso/ by "make install" (or you can explicitly use the subtarget "make vdso_install"). These files can be useful when they contain source-level debugging information. [ tglx: arch/x86 adaptation ] Signed-off-by: Roland McGrath <roland@redhat.com> Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
8957ecab02
commit
af7e6a7464
2 changed files with 27 additions and 5 deletions
|
@ -18,18 +18,35 @@ $(obj)/syscall32_syscall.o: \
|
|||
$(foreach F,sysenter syscall,$(obj)/vsyscall-$F.so)
|
||||
|
||||
# Teach kbuild about targets
|
||||
targets := $(foreach F,sysenter syscall,vsyscall-$F.o vsyscall-$F.so)
|
||||
targets := $(foreach F,$(addprefix vsyscall-,sysenter syscall),\
|
||||
$F.o $F.so $F.so.dbg)
|
||||
|
||||
# The DSO images are built using a special linker script
|
||||
quiet_cmd_syscall = SYSCALL $@
|
||||
cmd_syscall = $(CC) -m32 -nostdlib -shared -s \
|
||||
cmd_syscall = $(CC) -m32 -nostdlib -shared \
|
||||
$(call ld-option, -Wl$(comma)--hash-style=sysv) \
|
||||
-Wl,-soname=linux-gate.so.1 -o $@ \
|
||||
-Wl,-T,$(filter-out FORCE,$^)
|
||||
|
||||
$(obj)/vsyscall-sysenter.so $(obj)/vsyscall-syscall.so: \
|
||||
$(obj)/vsyscall-%.so: $(src)/vsyscall.lds $(obj)/vsyscall-%.o FORCE
|
||||
$(obj)/%.so: OBJCOPYFLAGS := -S
|
||||
$(obj)/%.so: $(obj)/%.so.dbg FORCE
|
||||
$(call if_changed,objcopy)
|
||||
|
||||
$(obj)/vsyscall-sysenter.so.dbg $(obj)/vsyscall-syscall.so.dbg: \
|
||||
$(obj)/vsyscall-%.so.dbg: $(src)/vsyscall.lds $(obj)/vsyscall-%.o FORCE
|
||||
$(call if_changed,syscall)
|
||||
|
||||
AFLAGS_vsyscall-sysenter.o = -m32 -Wa,-32
|
||||
AFLAGS_vsyscall-syscall.o = -m32 -Wa,-32
|
||||
|
||||
vdsos := vdso32-sysenter.so vdso32-syscall.so
|
||||
|
||||
quiet_cmd_vdso_install = INSTALL $@
|
||||
cmd_vdso_install = cp $(@:vdso32-%.so=$(obj)/vsyscall-%.so.dbg) \
|
||||
$(MODLIB)/vdso/$@
|
||||
|
||||
$(vdsos):
|
||||
@mkdir -p $(MODLIB)/vdso
|
||||
$(call cmd,vdso_install)
|
||||
|
||||
vdso_install: $(vdsos)
|
||||
|
|
|
@ -110,9 +110,14 @@ bzdisk: vmlinux
|
|||
fdimage fdimage144 fdimage288 isoimage: vmlinux
|
||||
$(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(BOOTIMAGE) $@
|
||||
|
||||
install:
|
||||
install: vdso_install
|
||||
$(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(BOOTIMAGE) $@
|
||||
|
||||
vdso_install:
|
||||
ifeq ($(CONFIG_IA32_EMULATION),y)
|
||||
$(Q)$(MAKE) $(build)=arch/x86/ia32 $@
|
||||
endif
|
||||
|
||||
archclean:
|
||||
$(Q)rm -rf $(objtree)/arch/x86_64/boot
|
||||
$(Q)$(MAKE) $(clean)=$(boot)
|
||||
|
|
Loading…
Reference in a new issue