aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
authorRoland McGrath <roland@redhat.com>2007-10-17 12:04:32 -0400
committerThomas Gleixner <tglx@inhelltoy.tec.linutronix.de>2007-10-17 14:15:20 -0400
commitf79eb83b3af419c4e079c8312b3c70fb6391117a (patch)
tree3b4484a7191eaff65b600bda491a32ccc67aa31a /arch/x86
parentaf7e6a7464249251efb2c4f67124e4d022985994 (diff)
x86: Install unstripped copy of 64bit vdso to disk
This keeps an unstripped copy of the 64bit 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>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/vdso/Makefile17
1 files changed, 16 insertions, 1 deletions
diff --git a/arch/x86/vdso/Makefile b/arch/x86/vdso/Makefile
index dcd6bb9e0bb3..7a2ba4583939 100644
--- a/arch/x86/vdso/Makefile
+++ b/arch/x86/vdso/Makefile
@@ -13,7 +13,7 @@ vobjs := $(foreach F,$(vobjs-y),$(obj)/$F)
13 13
14$(obj)/vdso.o: $(obj)/vdso.so 14$(obj)/vdso.o: $(obj)/vdso.so
15 15
16targets += vdso.so vdso.lds $(vobjs-y) vdso-syms.o 16targets += vdso.so vdso.so.dbg vdso.lds $(vobjs-y) vdso-syms.o
17 17
18# The DSO images are built using a special linker script. 18# The DSO images are built using a special linker script.
19quiet_cmd_syscall = SYSCALL $@ 19quiet_cmd_syscall = SYSCALL $@
@@ -26,12 +26,19 @@ vdso-flags = -fPIC -shared -Wl,-soname=linux-vdso.so.1 \
26 $(call ld-option, -Wl$(comma)--hash-style=sysv) \ 26 $(call ld-option, -Wl$(comma)--hash-style=sysv) \
27 -Wl,-z,max-page-size=4096 -Wl,-z,common-page-size=4096 27 -Wl,-z,max-page-size=4096 -Wl,-z,common-page-size=4096
28SYSCFLAGS_vdso.so = $(vdso-flags) 28SYSCFLAGS_vdso.so = $(vdso-flags)
29SYSCFLAGS_vdso.so.dbg = $(vdso-flags)
29 30
30$(obj)/vdso.o: $(src)/vdso.S $(obj)/vdso.so 31$(obj)/vdso.o: $(src)/vdso.S $(obj)/vdso.so
31 32
32$(obj)/vdso.so: $(src)/vdso.lds $(vobjs) FORCE 33$(obj)/vdso.so: $(src)/vdso.lds $(vobjs) FORCE
34
35$(obj)/vdso.so.dbg: $(src)/vdso.lds $(vobjs) FORCE
33 $(call if_changed,syscall) 36 $(call if_changed,syscall)
34 37
38$(obj)/%.so: OBJCOPYFLAGS := -S
39$(obj)/%.so: $(obj)/%.so.dbg FORCE
40 $(call if_changed,objcopy)
41
35CFL := $(PROFILING) -mcmodel=small -fPIC -g0 -O2 -fasynchronous-unwind-tables -m64 42CFL := $(PROFILING) -mcmodel=small -fPIC -g0 -O2 -fasynchronous-unwind-tables -m64
36 43
37$(obj)/vclock_gettime.o: KBUILD_CFLAGS = $(CFL) 44$(obj)/vclock_gettime.o: KBUILD_CFLAGS = $(CFL)
@@ -47,3 +54,11 @@ $(obj)/built-in.o: ld_flags += -R $(obj)/vdso-syms.o
47SYSCFLAGS_vdso-syms.o = -r -d 54SYSCFLAGS_vdso-syms.o = -r -d
48$(obj)/vdso-syms.o: $(src)/vdso.lds $(vobjs) FORCE 55$(obj)/vdso-syms.o: $(src)/vdso.lds $(vobjs) FORCE
49 $(call if_changed,syscall) 56 $(call if_changed,syscall)
57
58quiet_cmd_vdso_install = INSTALL $@
59 cmd_vdso_install = cp $(obj)/$@.dbg $(MODLIB)/vdso/$@
60vdso.so:
61 @mkdir -p $(MODLIB)/vdso
62 $(call cmd,vdso_install)
63
64vdso_install: vdso.so