2 # Makefile for the ia32 kernel emulation subsystem.
5 obj-
$(CONFIG_IA32_EMULATION
) := ia32entry.o sys_ia32.o ia32_signal.o tls32.o \
6 ia32_binfmt.o fpu32.o ptrace32.o
8 sysv-
$(CONFIG_SYSVIPC
) := ipc32.o
9 obj-
$(CONFIG_IA32_EMULATION
) += $(sysv-y
)
11 obj-
$(CONFIG_IA32_AOUT
) += ia32_aout.o
13 audit-class-
$(CONFIG_AUDIT
) := audit.o
14 obj-
$(CONFIG_IA32_EMULATION
) += $(audit-class-y
)
16 $(obj
)/syscall32_syscall.o
: \
17 $(foreach F
,sysenter syscall
,$(obj
)/vsyscall-
$F.so
)
19 # Teach kbuild about targets
20 targets
:= $(foreach F
,$(addprefix vsyscall-
,sysenter syscall
),\
23 # The DSO images are built using a special linker script
24 quiet_cmd_syscall
= SYSCALL
$@
25 cmd_syscall
= $(CC
) -m32
-nostdlib
-shared \
26 $(call ld-option
, -Wl
$(comma
)--hash-style
=sysv
) \
27 -Wl
,-soname
=linux-gate.so
.1 -o
$@ \
28 -Wl
,-T
,$(filter-out FORCE
,$^
)
30 $(obj
)/%.so
: OBJCOPYFLAGS
:= -S
31 $(obj
)/%.so
: $(obj
)/%.so.dbg FORCE
32 $(call if_changed
,objcopy
)
34 $(obj
)/vsyscall-sysenter.so.dbg
$(obj
)/vsyscall-syscall.so.dbg
: \
35 $(obj
)/vsyscall-
%.so.dbg
: $(src
)/vsyscall.lds
$(obj
)/vsyscall-
%.o FORCE
36 $(call if_changed
,syscall
)
38 AFLAGS_vsyscall-sysenter.o
= -m32
-Wa
,-32
39 AFLAGS_vsyscall-syscall.o
= -m32
-Wa
,-32
41 vdsos
:= vdso32-sysenter.so vdso32-syscall.so
43 quiet_cmd_vdso_install
= INSTALL
$@
44 cmd_vdso_install
= cp
$(@
:vdso32-
%.so
=$(obj
)/vsyscall-
%.so.dbg
) \
48 @mkdir
-p
$(MODLIB
)/vdso
49 $(call cmd
,vdso_install
)
51 vdso_install
: $(vdsos
)