Message ID | 20180424152405.10304-24-alex.bennee@linaro.org |
---|---|
State | New |
Headers | show |
Series | fix building of tests/tcg | expand |
On 04/24/2018 12:23 PM, Alex Bennée wrote: > The sources for x86_64 are shared in the i386 directory which will be > included thanks to TARGET_BASE_ARCH. However not all sources build so > we need to filter out the ones we can't build in the 64 bit world. > > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > --- > tests/tcg/i386/Makefile.target | 2 +- > tests/tcg/x86_64/Makefile.target | 15 +++++++++++++++ > 2 files changed, 16 insertions(+), 1 deletion(-) > create mode 100644 tests/tcg/x86_64/Makefile.target > > diff --git a/tests/tcg/i386/Makefile.target b/tests/tcg/i386/Makefile.target > index 80ccad3d7b..27086c3f2b 100644 > --- a/tests/tcg/i386/Makefile.target > +++ b/tests/tcg/i386/Makefile.target > @@ -7,7 +7,7 @@ VPATH += $(I386_SRC) > > I386_SRCS=$(notdir $(wildcard $(I386_SRC)/*.c)) > I386_TESTS=$(I386_SRCS:.c=) > - > +I386_ONLY_TESTS=$(filter-out test-i386-ssse3, $(I386_TESTS)) > # Update TESTS > TESTS+=$(I386_ONLY_TESTS) > > diff --git a/tests/tcg/x86_64/Makefile.target b/tests/tcg/x86_64/Makefile.target > new file mode 100644 > index 0000000000..74f170b9ed > --- /dev/null > +++ b/tests/tcg/x86_64/Makefile.target > @@ -0,0 +1,15 @@ > +# -*- Mode: makefile -*- > +# > +# x86_64 tests - included from tests/tcg/Makefile.target > +# > +# Currently we only build test-x86_64 and test-i386-ssse3 from > +# $(SRC)/tests/tcg/i386/ > +# > + > +X86_64_TESTS=$(filter-out $(I386_ONLY_TESTS), $(TESTS)) > +X86_64_TESTS+=test-x86_64 The linux-test is taking looooong... I canceled it after ~15min on a i7 2GHz. Maybe it also belongs to the "BROKEN TEST" series on x86_64? Currently it is only skipped if $(TARGET_NAME) == i386. Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > +TESTS:=$(X86_64_TESTS) > + > +test-x86_64: LDFLAGS+=-lm -lc > +test-x86_64: test-i386.c test-i386.h test-i386-shift.h test-i386-muldiv.h > + $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) > $ make run-tcg-tests-x86_64-linux-user RUN-TESTS for x86_64 TEST test-mmap (default) on x86_64 TEST test-mmap (8k pages) on x86_64 ASAN:DEADLYSIGNAL ================================================================= ==5717==ERROR: AddressSanitizer: SEGV on unknown address 0x7fcba47fc000 (pc 0x7fcba8a3bf4d bp 0x7ffd19d74700 sp 0x7ffd19d73e88 T0) ==5717==The signal is caused by a WRITE memory access. #0 0x7fcba8a3bf4c (/lib/x86_64-linux-gnu/libc.so.6+0x159f4c) #1 0x7fcbab33f891 (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x5c891) #2 0x55dd3ae4a7e0 in mmap_frag /source/qemu/linux-user/mmap.c:189 #3 0x55dd3ae4bbce in target_mmap /source/qemu/linux-user/mmap.c:533 #4 0x55dd3ae4b8cb in target_mmap /source/qemu/linux-user/mmap.c:501 #5 0x55dd3ae3895c in do_syscall /source/qemu/linux-user/syscall.c:9448 #6 0x55dd3adfaa57 in cpu_loop /source/qemu/linux-user/main.c:258 #7 0x55dd3ae005f5 in main /source/qemu/linux-user/main.c:5147 #8 0x7fcba8903a86 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21a86) #9 0x55dd3ad34a89 in _start (/source/qemu/build/full/x86_64-linux-user/qemu-x86_64+0x350a89) AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: SEGV (/lib/x86_64-linux-gnu/libc.so.6+0x159f4c) ==5717==ABORTING make[2]: *** [/home/phil/source/qemu/tests/tcg/multiarch/Makefile.target:27: run-test-mmap] Error 1 Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Philippe Mathieu-Daudé <f4bug@amsat.org> writes: > On 04/24/2018 12:23 PM, Alex Bennée wrote: >> The sources for x86_64 are shared in the i386 directory which will be >> included thanks to TARGET_BASE_ARCH. However not all sources build so >> we need to filter out the ones we can't build in the 64 bit world. >> >> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> >> --- >> tests/tcg/i386/Makefile.target | 2 +- >> tests/tcg/x86_64/Makefile.target | 15 +++++++++++++++ >> 2 files changed, 16 insertions(+), 1 deletion(-) >> create mode 100644 tests/tcg/x86_64/Makefile.target >> >> diff --git a/tests/tcg/i386/Makefile.target b/tests/tcg/i386/Makefile.target >> index 80ccad3d7b..27086c3f2b 100644 >> --- a/tests/tcg/i386/Makefile.target >> +++ b/tests/tcg/i386/Makefile.target >> @@ -7,7 +7,7 @@ VPATH += $(I386_SRC) >> >> I386_SRCS=$(notdir $(wildcard $(I386_SRC)/*.c)) >> I386_TESTS=$(I386_SRCS:.c=) >> - >> +I386_ONLY_TESTS=$(filter-out test-i386-ssse3, $(I386_TESTS)) >> # Update TESTS >> TESTS+=$(I386_ONLY_TESTS) >> >> diff --git a/tests/tcg/x86_64/Makefile.target b/tests/tcg/x86_64/Makefile.target >> new file mode 100644 >> index 0000000000..74f170b9ed >> --- /dev/null >> +++ b/tests/tcg/x86_64/Makefile.target >> @@ -0,0 +1,15 @@ >> +# -*- Mode: makefile -*- >> +# >> +# x86_64 tests - included from tests/tcg/Makefile.target >> +# >> +# Currently we only build test-x86_64 and test-i386-ssse3 from >> +# $(SRC)/tests/tcg/i386/ >> +# >> + >> +X86_64_TESTS=$(filter-out $(I386_ONLY_TESTS), $(TESTS)) >> +X86_64_TESTS+=test-x86_64 > > The linux-test is taking looooong... I canceled it after ~15min on a i7 > 2GHz. Maybe it also belongs to the "BROKEN TEST" series on x86_64? > Currently it is only skipped if $(TARGET_NAME) == i386. Hmm it runs pretty quickly for me: time ./qemu-x86_64 ./tests/linux-test 0.02user 0.03system 0:00.08elapsed 72%CPU (0avgtext+0avgdata 7384maxresident)k 0inputs+0outputs (0major+1207minor)pagefaults 0swaps I wonder if the failure mode you are seeing is the same as the others which basically hang, which is why I added them to the broken test patch. > > Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > >> +TESTS:=$(X86_64_TESTS) >> + >> +test-x86_64: LDFLAGS+=-lm -lc >> +test-x86_64: test-i386.c test-i386.h test-i386-shift.h test-i386-muldiv.h >> + $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) >> > > $ make run-tcg-tests-x86_64-linux-user > RUN-TESTS for x86_64 > TEST test-mmap (default) on x86_64 > TEST test-mmap (8k pages) on x86_64 > ASAN:DEADLYSIGNAL > ================================================================= > ==5717==ERROR: AddressSanitizer: SEGV on unknown address 0x7fcba47fc000 > (pc 0x7fcba8a3bf4d bp 0x7ffd19d74700 sp 0x7ffd19d73e88 T0) > ==5717==The signal is caused by a WRITE memory access. > #0 0x7fcba8a3bf4c (/lib/x86_64-linux-gnu/libc.so.6+0x159f4c) > #1 0x7fcbab33f891 (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x5c891) > #2 0x55dd3ae4a7e0 in mmap_frag /source/qemu/linux-user/mmap.c:189 > #3 0x55dd3ae4bbce in target_mmap /source/qemu/linux-user/mmap.c:533 > #4 0x55dd3ae4b8cb in target_mmap /source/qemu/linux-user/mmap.c:501 > #5 0x55dd3ae3895c in do_syscall /source/qemu/linux-user/syscall.c:9448 > #6 0x55dd3adfaa57 in cpu_loop /source/qemu/linux-user/main.c:258 > #7 0x55dd3ae005f5 in main /source/qemu/linux-user/main.c:5147 > #8 0x7fcba8903a86 in __libc_start_main > (/lib/x86_64-linux-gnu/libc.so.6+0x21a86) > #9 0x55dd3ad34a89 in _start > (/source/qemu/build/full/x86_64-linux-user/qemu-x86_64+0x350a89) > AddressSanitizer can not provide additional info. > SUMMARY: AddressSanitizer: SEGV (/lib/x86_64-linux-gnu/libc.so.6+0x159f4c) > ==5717==ABORTING > make[2]: *** > [/home/phil/source/qemu/tests/tcg/multiarch/Makefile.target:27: > run-test-mmap] Error 1 > > Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org> This is only with ASAN enabled right? -- Alex Bennée
On 04/25/2018 05:43 AM, Alex Bennée wrote: > > Philippe Mathieu-Daudé <f4bug@amsat.org> writes: > >> On 04/24/2018 12:23 PM, Alex Bennée wrote: >>> The sources for x86_64 are shared in the i386 directory which will be >>> included thanks to TARGET_BASE_ARCH. However not all sources build so >>> we need to filter out the ones we can't build in the 64 bit world. >>> >>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> >>> --- >>> tests/tcg/i386/Makefile.target | 2 +- >>> tests/tcg/x86_64/Makefile.target | 15 +++++++++++++++ >>> 2 files changed, 16 insertions(+), 1 deletion(-) >>> create mode 100644 tests/tcg/x86_64/Makefile.target >>> >>> diff --git a/tests/tcg/i386/Makefile.target b/tests/tcg/i386/Makefile.target >>> index 80ccad3d7b..27086c3f2b 100644 >>> --- a/tests/tcg/i386/Makefile.target >>> +++ b/tests/tcg/i386/Makefile.target >>> @@ -7,7 +7,7 @@ VPATH += $(I386_SRC) >>> >>> I386_SRCS=$(notdir $(wildcard $(I386_SRC)/*.c)) >>> I386_TESTS=$(I386_SRCS:.c=) >>> - >>> +I386_ONLY_TESTS=$(filter-out test-i386-ssse3, $(I386_TESTS)) >>> # Update TESTS >>> TESTS+=$(I386_ONLY_TESTS) >>> >>> diff --git a/tests/tcg/x86_64/Makefile.target b/tests/tcg/x86_64/Makefile.target >>> new file mode 100644 >>> index 0000000000..74f170b9ed >>> --- /dev/null >>> +++ b/tests/tcg/x86_64/Makefile.target >>> @@ -0,0 +1,15 @@ >>> +# -*- Mode: makefile -*- >>> +# >>> +# x86_64 tests - included from tests/tcg/Makefile.target >>> +# >>> +# Currently we only build test-x86_64 and test-i386-ssse3 from >>> +# $(SRC)/tests/tcg/i386/ >>> +# >>> + >>> +X86_64_TESTS=$(filter-out $(I386_ONLY_TESTS), $(TESTS)) >>> +X86_64_TESTS+=test-x86_64 >> >> The linux-test is taking looooong... I canceled it after ~15min on a i7 >> 2GHz. Maybe it also belongs to the "BROKEN TEST" series on x86_64? >> Currently it is only skipped if $(TARGET_NAME) == i386. > > Hmm it runs pretty quickly for me: > > time ./qemu-x86_64 ./tests/linux-test > 0.02user 0.03system 0:00.08elapsed 72%CPU (0avgtext+0avgdata 7384maxresident)k > 0inputs+0outputs (0major+1207minor)pagefaults 0swaps > > I wonder if the failure mode you are seeing is the same as the others > which basically hang, which is why I added them to the broken test patch. The test_clone() hangs here: while (waitpid(pid1, &status1, 0) != pid1); 32107 wait4(32109, 0x7ffdd2814a50, 0, NULL) = -1 ECHILD (No child processes) 32107 wait4(32109, <unfinished ...> 32109 nanosleep({tv_sec=0, tv_nsec=10000000}, <unfinished ...> 32107 <... wait4 resumed> 0x7ffdd2814a50, 0, NULL) = -1 ECHILD (No child processes) 32107 wait4(32109, 0x7ffdd2814a50, 0, NULL) = -1 ECHILD (No child processes) > >> >> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> >> >>> +TESTS:=$(X86_64_TESTS) >>> + >>> +test-x86_64: LDFLAGS+=-lm -lc >>> +test-x86_64: test-i386.c test-i386.h test-i386-shift.h test-i386-muldiv.h >>> + $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) >>> >> >> $ make run-tcg-tests-x86_64-linux-user >> RUN-TESTS for x86_64 >> TEST test-mmap (default) on x86_64 >> TEST test-mmap (8k pages) on x86_64 >> ASAN:DEADLYSIGNAL >> ================================================================= >> ==5717==ERROR: AddressSanitizer: SEGV on unknown address 0x7fcba47fc000 >> (pc 0x7fcba8a3bf4d bp 0x7ffd19d74700 sp 0x7ffd19d73e88 T0) >> ==5717==The signal is caused by a WRITE memory access. >> #0 0x7fcba8a3bf4c (/lib/x86_64-linux-gnu/libc.so.6+0x159f4c) >> #1 0x7fcbab33f891 (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x5c891) >> #2 0x55dd3ae4a7e0 in mmap_frag /source/qemu/linux-user/mmap.c:189 >> #3 0x55dd3ae4bbce in target_mmap /source/qemu/linux-user/mmap.c:533 >> #4 0x55dd3ae4b8cb in target_mmap /source/qemu/linux-user/mmap.c:501 >> #5 0x55dd3ae3895c in do_syscall /source/qemu/linux-user/syscall.c:9448 >> #6 0x55dd3adfaa57 in cpu_loop /source/qemu/linux-user/main.c:258 >> #7 0x55dd3ae005f5 in main /source/qemu/linux-user/main.c:5147 >> #8 0x7fcba8903a86 in __libc_start_main >> (/lib/x86_64-linux-gnu/libc.so.6+0x21a86) >> #9 0x55dd3ad34a89 in _start >> (/source/qemu/build/full/x86_64-linux-user/qemu-x86_64+0x350a89) >> AddressSanitizer can not provide additional info. >> SUMMARY: AddressSanitizer: SEGV (/lib/x86_64-linux-gnu/libc.so.6+0x159f4c) >> ==5717==ABORTING >> make[2]: *** >> [/home/phil/source/qemu/tests/tcg/multiarch/Makefile.target:27: >> run-test-mmap] Error 1 >> >> Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > > This is only with ASAN enabled right? Yes, but even without ASan test_clone() hangs. Commenting test_clone(): $ make -j1 run-tcg-tests-x86_64-linux-user CROSS-BUILD x86_64 guest-tests with gcc-7 CROSS-BUILD x86_64 guest-tests with gcc-7 RUN-TESTS for x86_64 TEST test-mmap (default) on x86_64 TEST test-mmap (8k pages) on x86_64 TEST test-mmap (16k pages) on x86_64 TEST test-mmap (32k pages) on x86_64 TEST sha1 on x86_64 TEST linux-test on x86_64 TEST testthread on x86_64 TEST test-x86_64 on x86_64 $
diff --git a/tests/tcg/i386/Makefile.target b/tests/tcg/i386/Makefile.target index 80ccad3d7b..27086c3f2b 100644 --- a/tests/tcg/i386/Makefile.target +++ b/tests/tcg/i386/Makefile.target @@ -7,7 +7,7 @@ VPATH += $(I386_SRC) I386_SRCS=$(notdir $(wildcard $(I386_SRC)/*.c)) I386_TESTS=$(I386_SRCS:.c=) - +I386_ONLY_TESTS=$(filter-out test-i386-ssse3, $(I386_TESTS)) # Update TESTS TESTS+=$(I386_ONLY_TESTS) diff --git a/tests/tcg/x86_64/Makefile.target b/tests/tcg/x86_64/Makefile.target new file mode 100644 index 0000000000..74f170b9ed --- /dev/null +++ b/tests/tcg/x86_64/Makefile.target @@ -0,0 +1,15 @@ +# -*- Mode: makefile -*- +# +# x86_64 tests - included from tests/tcg/Makefile.target +# +# Currently we only build test-x86_64 and test-i386-ssse3 from +# $(SRC)/tests/tcg/i386/ +# + +X86_64_TESTS=$(filter-out $(I386_ONLY_TESTS), $(TESTS)) +X86_64_TESTS+=test-x86_64 +TESTS:=$(X86_64_TESTS) + +test-x86_64: LDFLAGS+=-lm -lc +test-x86_64: test-i386.c test-i386.h test-i386-shift.h test-i386-muldiv.h + $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS)
The sources for x86_64 are shared in the i386 directory which will be included thanks to TARGET_BASE_ARCH. However not all sources build so we need to filter out the ones we can't build in the 64 bit world. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> --- tests/tcg/i386/Makefile.target | 2 +- tests/tcg/x86_64/Makefile.target | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 tests/tcg/x86_64/Makefile.target -- 2.17.0