140d6ee94SAlex Bennée#
240d6ee94SAlex Bennée# x86 system tests
340d6ee94SAlex Bennée#
440d6ee94SAlex Bennée# This currently builds only for i386. The common C code is built
540d6ee94SAlex Bennée# with standard compiler flags however so we can support both by
640d6ee94SAlex Bennée# adding additional boot files for x86_64.
740d6ee94SAlex Bennée#
840d6ee94SAlex Bennée
940d6ee94SAlex BennéeI386_SYSTEM_SRC=$(SRC_PATH)/tests/tcg/i386/system
1040d6ee94SAlex BennéeX64_SYSTEM_SRC=$(SRC_PATH)/tests/tcg/x86_64/system
1140d6ee94SAlex Bennée
1240d6ee94SAlex Bennée# These objects provide the basic boot code and helper functions for all tests
1340d6ee94SAlex BennéeCRT_OBJS=boot.o
1440d6ee94SAlex Bennée
1540d6ee94SAlex Bennéeifeq ($(TARGET_X86_64), y)
1640d6ee94SAlex BennéeCRT_PATH=$(X64_SYSTEM_SRC)
17db61edadSAlex BennéeCFLAGS=-march=x86-64
1840d6ee94SAlex BennéeLINK_SCRIPT=$(X64_SYSTEM_SRC)/kernel.ld
1940d6ee94SAlex BennéeLDFLAGS=-Wl,-T$(LINK_SCRIPT) -Wl,-melf_x86_64
2040d6ee94SAlex Bennéeelse
2140d6ee94SAlex BennéeCRT_PATH=$(I386_SYSTEM_SRC)
2240d6ee94SAlex BennéeCFLAGS+=-m32
2340d6ee94SAlex BennéeLINK_SCRIPT=$(I386_SYSTEM_SRC)/kernel.ld
2440d6ee94SAlex BennéeLDFLAGS=-Wl,-T$(LINK_SCRIPT) -Wl,-melf_i386
2540d6ee94SAlex Bennéeendif
2640d6ee94SAlex BennéeCFLAGS+=-nostdlib -ggdb -O0 $(MINILIB_INC)
2740d6ee94SAlex BennéeLDFLAGS+=-static -nostdlib $(CRT_OBJS) $(MINILIB_OBJS) -lgcc
2840d6ee94SAlex Bennée
292736b5cbSAlex BennéeTESTS+=$(MULTIARCH_TESTS)
302736b5cbSAlex Bennée
3140d6ee94SAlex Bennée# building head blobs
3240d6ee94SAlex Bennée.PRECIOUS: $(CRT_OBJS)
3340d6ee94SAlex Bennée
3440d6ee94SAlex Bennée%.o: $(CRT_PATH)/%.S
35*6a9e0ef3SPaolo Bonzini	$(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c $< -o $@
3640d6ee94SAlex Bennée
3740d6ee94SAlex Bennée# Build and link the tests
3840d6ee94SAlex Bennée%: %.c $(LINK_SCRIPT) $(CRT_OBJS) $(MINILIB_OBJS)
39*6a9e0ef3SPaolo Bonzini	$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS)
4040d6ee94SAlex Bennée
417ac283e9SAlex Bennéememory: CFLAGS+=-DCHECK_UNALIGNED=1
427ac283e9SAlex Bennée
4340d6ee94SAlex Bennée# Running
4440d6ee94SAlex BennéeQEMU_OPTS+=-device isa-debugcon,chardev=output -device isa-debug-exit,iobase=0xf4,iosize=0x4 -kernel
45