forked from Minki/linux
25c437b01f
The GVMM module is position independent since it is relocated to the guest
address space.
Commit ea696f9cf
("ia64 kvm fixes for O=... builds") broke this by linking
GVMM with non-PIC objects.
Fix by creating two files: memset.S and memcpy.S which just include the files
under arch/ia64/lib/{memset.S, memcpy.S} respectively.
[akpm: don't delete files which we need]
Signed-off-by: Xiantao Zhang <xiantao.zhang@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Avi Kivity <avi@qumranet.com>
58 lines
1.6 KiB
Makefile
58 lines
1.6 KiB
Makefile
#This Make file is to generate asm-offsets.h and build source.
|
|
#
|
|
|
|
#Generate asm-offsets.h for vmm module build
|
|
offsets-file := asm-offsets.h
|
|
|
|
always := $(offsets-file)
|
|
targets := $(offsets-file)
|
|
targets += arch/ia64/kvm/asm-offsets.s
|
|
|
|
# Default sed regexp - multiline due to syntax constraints
|
|
define sed-y
|
|
"/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}"
|
|
endef
|
|
|
|
quiet_cmd_offsets = GEN $@
|
|
define cmd_offsets
|
|
(set -e; \
|
|
echo "#ifndef __ASM_KVM_OFFSETS_H__"; \
|
|
echo "#define __ASM_KVM_OFFSETS_H__"; \
|
|
echo "/*"; \
|
|
echo " * DO NOT MODIFY."; \
|
|
echo " *"; \
|
|
echo " * This file was generated by Makefile"; \
|
|
echo " *"; \
|
|
echo " */"; \
|
|
echo ""; \
|
|
sed -ne $(sed-y) $<; \
|
|
echo ""; \
|
|
echo "#endif" ) > $@
|
|
endef
|
|
# We use internal rules to avoid the "is up to date" message from make
|
|
arch/ia64/kvm/asm-offsets.s: arch/ia64/kvm/asm-offsets.c
|
|
$(call if_changed_dep,cc_s_c)
|
|
|
|
$(obj)/$(offsets-file): arch/ia64/kvm/asm-offsets.s
|
|
$(call cmd,offsets)
|
|
|
|
#
|
|
# Makefile for Kernel-based Virtual Machine module
|
|
#
|
|
|
|
EXTRA_CFLAGS += -Ivirt/kvm -Iarch/ia64/kvm/
|
|
EXTRA_AFLAGS += -Ivirt/kvm -Iarch/ia64/kvm/
|
|
|
|
common-objs = $(addprefix ../../../virt/kvm/, kvm_main.o ioapic.o)
|
|
|
|
kvm-objs := $(common-objs) kvm-ia64.o kvm_fw.o
|
|
obj-$(CONFIG_KVM) += kvm.o
|
|
|
|
FORCE : $(obj)/$(offsets-file)
|
|
EXTRA_CFLAGS_vcpu.o += -mfixed-range=f2-f5,f12-f127
|
|
kvm-intel-objs = vmm.o vmm_ivt.o trampoline.o vcpu.o optvfault.o mmio.o \
|
|
vtlb.o process.o
|
|
#Add link memcpy and memset to avoid possible structure assignment error
|
|
kvm-intel-objs += memcpy.o memset.o
|
|
obj-$(CONFIG_KVM_INTEL) += kvm-intel.o
|