1# 2# x86_64 system tests 3# 4 5X64_SYSTEM_SRC=$(SRC_PATH)/tests/tcg/x86_64/system 6X64_SYSTEM_TESTS=$(patsubst $(X64_SYSTEM_SRC)/%.c, %, $(wildcard $(X64_SYSTEM_SRC)/*.c)) 7 8VPATH+=$(X64_SYSTEM_SRC) 9 10# These objects provide the basic boot code and helper functions for all tests 11CRT_OBJS=boot.o 12 13CRT_PATH=$(X64_SYSTEM_SRC) 14LINK_SCRIPT=$(X64_SYSTEM_SRC)/kernel.ld 15LDFLAGS=-Wl,-T$(LINK_SCRIPT) -Wl,-melf_x86_64 16CFLAGS+=-nostdlib -ggdb -O0 $(MINILIB_INC) 17LDFLAGS+=-static -nostdlib $(CRT_OBJS) $(MINILIB_OBJS) -lgcc 18 19TESTS+=$(MULTIARCH_TESTS) $(X64_SYSTEM_TESTS) 20EXTRA_RUNS+=$(MULTIARCH_RUNS) 21 22# building head blobs 23.PRECIOUS: $(CRT_OBJS) 24 25%.o: $(CRT_PATH)/%.S 26 $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -Wa,--noexecstack -c $< -o $@ 27 28# Build and link the tests 29%: %.c $(LINK_SCRIPT) $(CRT_OBJS) $(MINILIB_OBJS) 30 $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS) 31 32memory: CFLAGS+=-DCHECK_UNALIGNED=1 33 34# Running 35QEMU_OPTS+=-device isa-debugcon,chardev=output -device isa-debug-exit,iobase=0xf4,iosize=0x4 -kernel 36 37ifeq ($(CONFIG_PLUGIN),y) 38run-plugin-patch-target-with-libpatch.so: \ 39 PLUGIN_ARGS=$(COMMA)target=ffc0$(COMMA)patch=9090$(COMMA)use_hwaddr=true 40run-plugin-patch-target-with-libpatch.so: \ 41 CHECK_PLUGIN_OUTPUT_COMMAND=$(X64_SYSTEM_SRC)/validate-patch.py $@.out 42run-plugin-patch-target-with-libpatch.so: patch-target libpatch.so 43EXTRA_RUNS_WITH_PLUGIN+=run-plugin-patch-target-with-libpatch.so 44endif 45