Re: [PATCH v6 057/103] tests/tcg/loongarch64: system tests
Song Gao <[email protected]> Wed, 5 Aug 2026 17:15:00 +0800
| Newsgroups | gmane.comp.emulators.qemu |
|---|---|
| Message-ID | <[email protected]> |
在 2026/7/28 下午12:42, Pierrick Bouvier 写道: > Signed-off-by: Pierrick Bouvier <[email protected]> > --- > tests/tcg/loongarch64/Makefile.softmmu-target | 33 ------------- > tests/tcg/loongarch64/meson.build | 2 + > tests/tcg/loongarch64/system/meson.build | 47 +++++++++++++++++++ > 3 files changed, 49 insertions(+), 33 deletions(-) > delete mode 100644 tests/tcg/loongarch64/Makefile.softmmu-target > create mode 100644 tests/tcg/loongarch64/system/meson.build Reviewed-by: Song Gao <[email protected]> Thanks. Song Gao > diff --git a/tests/tcg/loongarch64/Makefile.softmmu-target b/tests/tcg/loongarch64/Makefile.softmmu-target > deleted file mode 100644 > index 6d4a20fde73..00000000000 > --- a/tests/tcg/loongarch64/Makefile.softmmu-target > +++ /dev/null > @@ -1,33 +0,0 @@ > -# > -# Loongarch64 system tests > -# > - > -LOONGARCH64_SYSTEM_SRC=$(SRC_PATH)/tests/tcg/loongarch64/system > -VPATH+=$(LOONGARCH64_SYSTEM_SRC) > - > -# These objects provide the basic boot code and helper functions for all tests > -CRT_OBJS=boot.o > - > -LOONGARCH64_TEST_SRCS=$(wildcard $(LOONGARCH64_SYSTEM_SRC)/*.c) > -LOONGARCH64_TESTS = $(patsubst $(LOONGARCH64_SYSTEM_SRC)/%.c, %, $(LOONGARCH64_TEST_SRCS)) > - > -CRT_PATH=$(LOONGARCH64_SYSTEM_SRC) > -LINK_SCRIPT=$(LOONGARCH64_SYSTEM_SRC)/kernel.ld > -LDFLAGS=-Wl,-T$(LINK_SCRIPT) > -TESTS+=$(LOONGARCH64_TESTS) $(MULTIARCH_TESTS) > -CFLAGS+=-nostdlib -g -O1 -march=loongarch64 -mabi=lp64d $(MINILIB_INC) > -LDFLAGS+=-static -nostdlib $(CRT_OBJS) $(MINILIB_OBJS) -lgcc -Wl,--no-warn-rwx-segments > - > -# building head blobs > -.PRECIOUS: $(CRT_OBJS) > - > -%.o: $(CRT_PATH)/%.S > - $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -x assembler-with-cpp -Wa,--noexecstack -c $< -o $@ > - > -# Build and link the tests > -%: %.c $(LINK_SCRIPT) $(CRT_OBJS) $(MINILIB_OBJS) > - $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS) > - > -memory: CFLAGS+=-DCHECK_UNALIGNED=0 > -# Running > -QEMU_OPTS+=-serial chardev:output -kernel > diff --git a/tests/tcg/loongarch64/meson.build b/tests/tcg/loongarch64/meson.build > index 209179fd96c..1d62de64ed6 100644 > --- a/tests/tcg/loongarch64/meson.build > +++ b/tests/tcg/loongarch64/meson.build > @@ -2,6 +2,8 @@ cc = 'loongarch64-unknown-linux-gnu-gcc' > cc_dockerfile = 'debian-loongarch-cross' > cc_docker_host_arch = ['x86_64'] > > +subdir('system') > + > tests = [] > > tests += tcg_tests['multiarch-linux-user']['tests'] > diff --git a/tests/tcg/loongarch64/system/meson.build b/tests/tcg/loongarch64/system/meson.build > new file mode 100644 > index 00000000000..b46d2234032 > --- /dev/null > +++ b/tests/tcg/loongarch64/system/meson.build > @@ -0,0 +1,47 @@ > +tests = [] > + > +minilib_dir = meson.current_source_dir() / '..' / '..' / 'minilib' > +minilib_printf = files(minilib_dir / 'printf.c')[0] > +link_script = files('kernel.ld')[0] > +boot = files('boot.S')[0] > +cflags = ['-nostdlib', > + '-Wa,--noexecstack', > + '-I', minilib_dir, minilib_printf, boot, > + '-Wl,-T', link_script, > + '-march=loongarch64', > + '-mabi=lp64d', > + '-Wl,--no-warn-rwx-segments', > + '-lgcc'] > +qemu_def_args = ['-display', 'none', > + '-serial', 'stdio', > + '-kernel'] > + > +# Multi arch tests > +multi_src = [] > +foreach t: tcg_tests['multiarch-softmmu']['tests'] > + foreach src, setup: t > + new_cflags = cflags > + if fs.stem(src) == 'memory' > + new_cflags += '-DCHECK_UNALIGNED=0' > + endif > + if src not in multi_src > + setup += {'cflags': [new_cflags]} > + multi_src += src > + endif > + tests += {src: setup + {'qemu_args': qemu_def_args}} > + endforeach > +endforeach > + > +if 'qemu-system-loongarch64' in emulators > + tcg_tests += { > + 'loongarch64-softmmu': { > + 'cc': cc, > + 'cc_dockerfile': cc_dockerfile, > + 'cc_docker_host_arch': cc_docker_host_arch, > + 'folder': 'loongarch64/system', > + 'gdb_arch': 'loongarch64', > + 'qemu': emulators['qemu-system-loongarch64'], > + 'tests': tests, > + } > + } > +endif