dced7eec3c
This patch introduces the helper "gen-features" which allows to generate feature list definitions at compile time. Its flexibility is better and the error-proneness is lower when compared to static programming time added statements. The helper includes "target-s390x/cpu_features.h" to be able to use named facility bits instead of numbers. The generated defines will be used for the definition of CPU models. We generate feature lists for each HW generation and GA for EC models. BC models are always based on a EC version and have no separate definitions. Base features: Features we expect to be always available in sane setups. Migration safe - will never change. Can be seen as "minimum features required for a CPU model". Default features: Features we expect to be stable and around in latest setups (e.g. having KVM support) - not migration safe. Max features: All supported features that are theoretically allowed for a CPU model. Exceeding these features could otherwise produce problems with IBC (instruction blocking controls) in KVM. Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Michael Mueller <mimu@linux.vnet.ibm.com> Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com> [generate base, default and models. renaming and cleanup] Message-Id: <20160905085244.99980-6-dahi@linux.vnet.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
26 lines
947 B
Makefile
26 lines
947 B
Makefile
obj-y += translate.o helper.o cpu.o interrupt.o
|
|
obj-y += int_helper.o fpu_helper.o cc_helper.o mem_helper.o misc_helper.o
|
|
obj-y += gdbstub.o cpu_models.o cpu_features.o
|
|
obj-$(CONFIG_SOFTMMU) += machine.o ioinst.o arch_dump.o mmu_helper.o
|
|
obj-$(CONFIG_KVM) += kvm.o
|
|
|
|
# build and run feature list generator
|
|
feat-src = $(SRC_PATH)/target-$(TARGET_BASE_ARCH)/
|
|
feat-dst = $(BUILD_DIR)/$(TARGET_DIR)
|
|
ifneq ($(MAKECMDGOALS),clean)
|
|
GENERATED_HEADERS += $(feat-dst)gen-features.h
|
|
endif
|
|
|
|
$(feat-dst)gen-features.h: $(feat-dst)gen-features.h-timestamp
|
|
@cmp $< $@ >/dev/null 2>&1 || cp $< $@
|
|
$(feat-dst)gen-features.h-timestamp: $(feat-dst)gen-features
|
|
$(call quiet-command,$< >$@," GEN $(TARGET_DIR)gen-features.h")
|
|
|
|
$(feat-dst)gen-features: $(feat-src)gen-features.c
|
|
$(call quiet-command,$(HOST_CC) $(QEMU_INCLUDES) -o $@ $<," CC $(TARGET_DIR)gen-features")
|
|
|
|
clean-target:
|
|
rm -f gen-features.h-timestamp
|
|
rm -f gen-features.h
|
|
rm -f gen-features
|