| cstart.o = $(TEST_DIR)/cstart64.o |
| bits = 64 |
| ldarch = elf64-x86-64 |
| ifeq ($(CONFIG_EFI),y) |
| # Function calls must include the number of arguments passed to the functions |
| # More details: https://wiki.osdev.org/GNU-EFI |
| CFLAGS += -maccumulate-outgoing-args |
| |
| exe = efi |
| bin = so |
| FORMAT = efi-app-x86_64 |
| cstart.o = $(TEST_DIR)/efi/efistart64.o |
| arch_LDFLAGS = '' |
| else |
| exe = flat |
| bin = elf |
| arch_LDFLAGS = -m elf_x86_64 |
| endif |
| |
| fcf_protection_full := $(call cc-option, -fcf-protection=full,) |
| COMMON_CFLAGS += -mno-red-zone -mno-sse -mno-sse2 $(fcf_protection_full) |
| |
| cflatobjs += lib/x86/setjmp64.o |
| cflatobjs += lib/x86/intel-iommu.o |
| cflatobjs += lib/x86/usermode.o |
| |
| tests = $(TEST_DIR)/apic.$(exe) \ |
| $(TEST_DIR)/idt_test.$(exe) \ |
| $(TEST_DIR)/xsave.$(exe) $(TEST_DIR)/rmap_chain.$(exe) \ |
| $(TEST_DIR)/pcid.$(exe) $(TEST_DIR)/debug.$(exe) \ |
| $(TEST_DIR)/ioapic.$(exe) $(TEST_DIR)/memory.$(exe) \ |
| $(TEST_DIR)/pku.$(exe) $(TEST_DIR)/hyperv_clock.$(exe) |
| tests += $(TEST_DIR)/syscall.$(exe) |
| tests += $(TEST_DIR)/tscdeadline_latency.$(exe) |
| tests += $(TEST_DIR)/intel-iommu.$(exe) |
| tests += $(TEST_DIR)/vmware_backdoors.$(exe) |
| tests += $(TEST_DIR)/rdpru.$(exe) |
| tests += $(TEST_DIR)/pks.$(exe) |
| tests += $(TEST_DIR)/pmu_lbr.$(exe) |
| tests += $(TEST_DIR)/pmu_pebs.$(exe) |
| |
| ifeq ($(CONFIG_EFI),y) |
| tests += $(TEST_DIR)/amd_sev.$(exe) |
| endif |
| |
| # The following test cases are disabled when building EFI tests because they |
| # use absolute addresses in their inline assembly code, which cannot compile |
| # with the '-fPIC' flag |
| ifneq ($(CONFIG_EFI),y) |
| tests += $(TEST_DIR)/access_test.$(exe) |
| tests += $(TEST_DIR)/svm.$(exe) |
| tests += $(TEST_DIR)/svm_npt.$(exe) |
| tests += $(TEST_DIR)/vmx.$(exe) |
| endif |
| |
| ifneq ($(fcf_protection_full),) |
| tests += $(TEST_DIR)/cet.$(exe) |
| endif |
| |
| include $(SRCDIR)/$(TEST_DIR)/Makefile.common |
| |
| $(TEST_DIR)/hyperv_clock.$(bin): $(TEST_DIR)/hyperv_clock.o |
| |
| $(TEST_DIR)/vmx.$(bin): $(TEST_DIR)/vmx_tests.o |
| $(TEST_DIR)/svm.$(bin): $(TEST_DIR)/svm_tests.o |
| $(TEST_DIR)/svm_npt.$(bin): $(TEST_DIR)/svm_npt.o |