| # |
| # Xtensa softmmu tests |
| # |
| |
| CORE=dc232b |
| ifneq ($(shell $(QEMU) -cpu help | grep -w $(CORE)),) |
| |
| XTENSA_SRC = $(SRC_PATH)/tests/tcg/xtensa |
| XTENSA_ALL = $(filter-out $(XTENSA_SRC)/linker.ld.S,$(wildcard $(XTENSA_SRC)/*.S)) |
| XTENSA_TESTS = $(patsubst $(XTENSA_SRC)/%.S, %, $(XTENSA_ALL)) |
| # Filter out common blobs and broken tests |
| XTENSA_BROKEN_TESTS = crt vectors |
| XTENSA_USABLE_TESTS = $(filter-out $(XTENSA_BROKEN_TESTS), $(XTENSA_TESTS)) |
| |
| # add to the list of tests |
| TESTS += $(XTENSA_USABLE_TESTS) |
| VPATH += $(XTENSA_SRC) |
| |
| QEMU_OPTS+=-M sim -cpu $(CORE) -nographic -semihosting -icount 6 $(EXTFLAGS) -kernel |
| |
| INCLUDE_DIRS = $(SRC_PATH)/target/xtensa/core-$(CORE) |
| XTENSA_INC = $(addprefix -I,$(INCLUDE_DIRS)) |
| |
| vectors_ASFLAGS = -mtext-section-literals |
| ASFLAGS = -Wa,--no-absolute-literals |
| LDFLAGS = -Tlinker.ld -nostartfiles -nostdlib |
| |
| CRT = crt.o vectors.o |
| CLEANFILES += linker.ld |
| |
| linker.ld: linker.ld.S |
| $(CC) $(XTENSA_INC) -E -P $< -o $@ |
| |
| $(XTENSA_USABLE_TESTS): linker.ld macros.inc $(CRT) Makefile.softmmu-target |
| |
| # special rule for common blobs |
| %.o: %.S |
| $(CC) $(XTENSA_INC) $($*_ASFLAGS) $(ASFLAGS) $(EXTRA_CFLAGS) -c $< -o $@ |
| |
| %: %.S |
| $(CC) $(XTENSA_INC) $(ASFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS) $(NOSTDFLAGS) $(CRT) |
| |
| endif |