0163ce3179
Made argument "inline" not positional, this has two benefits. First is that we adhere to how QEMU passes args generally, by taking the last value of an argument and drop the others. And the second is that this sets up a framework for potentially adding new args easily. Signed-off-by: Mahmoud Mandour <ma.mandourr@gmail.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20210730135817.17816-11-ma.mandourr@gmail.com> [AJB: fix check-tcg tests calling arg=inline] Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
48 lines
1.4 KiB
Makefile
48 lines
1.4 KiB
Makefile
#
|
|
# x86 system tests
|
|
#
|
|
# This currently builds only for i386. The common C code is built
|
|
# with standard compiler flags however so we can support both by
|
|
# adding additional boot files for x86_64.
|
|
#
|
|
|
|
I386_SYSTEM_SRC=$(SRC_PATH)/tests/tcg/i386/system
|
|
X64_SYSTEM_SRC=$(SRC_PATH)/tests/tcg/x86_64/system
|
|
|
|
# These objects provide the basic boot code and helper functions for all tests
|
|
CRT_OBJS=boot.o
|
|
|
|
CRT_PATH=$(X64_SYSTEM_SRC)
|
|
LINK_SCRIPT=$(X64_SYSTEM_SRC)/kernel.ld
|
|
LDFLAGS=-Wl,-T$(LINK_SCRIPT) -Wl,-melf_x86_64
|
|
CFLAGS+=-nostdlib -ggdb -O0 $(MINILIB_INC)
|
|
LDFLAGS+=-static -nostdlib $(CRT_OBJS) $(MINILIB_OBJS) -lgcc
|
|
|
|
TESTS+=$(MULTIARCH_TESTS)
|
|
EXTRA_RUNS+=$(MULTIARCH_RUNS)
|
|
|
|
# building head blobs
|
|
.PRECIOUS: $(CRT_OBJS)
|
|
|
|
%.o: $(CRT_PATH)/%.S
|
|
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c $< -o $@
|
|
|
|
# Build and link the tests
|
|
%: %.c $(LINK_SCRIPT) $(CRT_OBJS) $(MINILIB_OBJS)
|
|
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS)
|
|
|
|
memory: CFLAGS+=-DCHECK_UNALIGNED=1
|
|
|
|
# non-inline runs will trigger the duplicate instruction heuristics in libinsn.so
|
|
run-plugin-%-with-libinsn.so:
|
|
$(call run-test, $@, \
|
|
$(QEMU) -monitor none -display none \
|
|
-chardev file$(COMMA)path=$@.out$(COMMA)id=output \
|
|
-plugin ../../plugin/libinsn.so$(COMMA)inline=on \
|
|
-d plugin -D $*-with-libinsn.so.pout \
|
|
$(QEMU_OPTS) $*, \
|
|
"$* on $(TARGET_NAME)")
|
|
|
|
# Running
|
|
QEMU_OPTS+=-device isa-debugcon,chardev=output -device isa-debug-exit,iobase=0xf4,iosize=0x4 -kernel
|