From: "Alex Bennée" <alex.bennee@linaro.org>
To: Warner Losh <imp@bsdimp.com>
Cc: fam@euphon.net, "Daniel P. Berrange" <berrange@redhat.com>,
"Eduardo Habkost" <ehabkost@redhat.com>,
"Richard Henderson" <richard.henderson@linaro.org>,
"QEMU Developers" <qemu-devel@nongnu.org>,
"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
"Stefan Hajnoczi" <stefanha@redhat.com>,
"Cleber Rosa" <crosa@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Aurelien Jarno" <aurelien@aurel32.net>
Subject: Re: [RFC PATCH 3/3] tests/tcg: commit Makefile atrocities in the name of portability
Date: Fri, 17 Sep 2021 15:34:42 +0100 [thread overview]
Message-ID: <8735q3tgfo.fsf@linaro.org> (raw)
In-Reply-To: <CANCZdfo=96hcsaRuWoH0X8LHoRioYfP3OyQjPRQzjbCfCW+7wA@mail.gmail.com>
Warner Losh <imp@bsdimp.com> writes:
> On Tue, Aug 3, 2021 at 5:02 AM Alex Bennée <alex.bennee@linaro.org> wrote:
>
> Not all of the multiarch tests are pure POSIX so elide over those
> tests on a non-Linux system. This allows for at least some of the
> tests to be nominally usable by *BSD user builds.
>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> Cc: Warner Losh <imp@bsdimp.com>
> ---
> tests/tcg/multiarch/Makefile.target | 6 +++++-
> tests/tcg/x86_64/Makefile.target | 4 ++++
> 2 files changed, 9 insertions(+), 1 deletion(-)
>
> Acked-by: Warner Losh <imp@bsdimp.com>
>
> To do this with gcc10, however, I had to add -Wno-error=overflow
> otherwise I got a lot of warnings about constants being truncated to
> 0.
>
> It also fails the sha1 test, but when I run it by hand it works. It turns
> out that I have a sha1 in my path, and at least in the bsd-user edition
> of qemu-i386 tries to run that and fails.
>
> Also, the hello world program needed tweaking
>
> So with this applied and the following patch
>
> diff --git a/tests/tcg/Makefile.target b/tests/tcg/Makefile.target
> index 63cf1b2573..39420631a8 100644
> --- a/tests/tcg/Makefile.target
> +++ b/tests/tcg/Makefile.target
> @@ -155,7 +155,7 @@ RUN_TESTS+=$(EXTRA_RUNS)
>
> ifdef CONFIG_USER_ONLY
> run-%: %
> - $(call run-test, $<, $(QEMU) $(QEMU_OPTS) $<, "$< on $(TARGET_NAME)")
> + $(call run-test, $<, $(QEMU) $(QEMU_OPTS) ./$<, "$< on $(TARGET_NAME)")
>
> run-plugin-%:
> $(call run-test, $@, $(QEMU) $(QEMU_OPTS) \
> @@ -168,7 +168,7 @@ run-%: %
> $(call run-test, $<, \
> $(QEMU) -monitor none -display none \
> -chardev file$(COMMA)path=$<.out$(COMMA)id=output \
> - $(QEMU_OPTS) $<, \
> + $(QEMU_OPTS) ./$<, \
> "$< on $(TARGET_NAME)")
That's weird. I'm not super keen to merge this because it's incomplete
(we have a large number of manual run-FOO stanzas). AFAICT neither of
the loaders attempt to enumerate and search path so I wonder if this is
a function of the shell?
>
> run-plugin-%:
> diff --git a/tests/tcg/i386/Makefile.target b/tests/tcg/i386/Makefile.target
> index a053ca3f15..ae258c47f0 100644
> --- a/tests/tcg/i386/Makefile.target
> +++ b/tests/tcg/i386/Makefile.target
> @@ -21,6 +21,7 @@ run-plugin-test-i386-pcmpistri-%: QEMU_OPTS += -cpu max
> run-test-i386-bmi2: QEMU_OPTS += -cpu max
> run-plugin-test-i386-bmi2-%: QEMU_OPTS += -cpu max
>
> +CFLAGS += -Wno-error=overflow
I'd apply this direct to the test in question rather than a global change.
> #
> # hello-i386 is a barebones app
> #
> diff --git a/tests/tcg/i386/hello-i386.c b/tests/tcg/i386/hello-i386.c
> index 59196dd0b7..4a5a25211c 100644
> --- a/tests/tcg/i386/hello-i386.c
> +++ b/tests/tcg/i386/hello-i386.c
> @@ -1,4 +1,10 @@
> +#ifdef __FreeBSD__
> +#include <sys/syscall.h>
> +#define __NR_exit SYS_exit
> +#define __NR_write SYS_write
> +#else
> #include <asm/unistd.h>
> +#endif
>
> static inline void exit(int status)
> {
>
> I get down to a failure i the mmap test.... and that's all I have time to plumb the depths
> of this morning... Investigating the mmap test failure will have to wait for another day.
>
> Warner
>
> diff --git a/tests/tcg/multiarch/Makefile.target b/tests/tcg/multiarch/Makefile.target
> index 85a6fb7a2e..38ee0f1dec 100644
> --- a/tests/tcg/multiarch/Makefile.target
> +++ b/tests/tcg/multiarch/Makefile.target
> @@ -10,7 +10,11 @@ MULTIARCH_SRC=$(SRC_PATH)/tests/tcg/multiarch
> # Set search path for all sources
> VPATH += $(MULTIARCH_SRC)
> MULTIARCH_SRCS =$(notdir $(wildcard $(MULTIARCH_SRC)/*.c))
> -MULTIARCH_TESTS =$(filter-out float_helpers, $(MULTIARCH_SRCS:.c=))
> +MULTIARCH_SKIP=float_helpers
> +ifeq ($(CONFIG_LINUX),)
> +MULTIARCH_SKIP+=linux-test
> +endif
> +MULTIARCH_TESTS =$(filter-out $(MULTIARCH_SKIP),$(MULTIARCH_SRCS:.c=))
>
> #
> # The following are any additional rules needed to build things
> diff --git a/tests/tcg/x86_64/Makefile.target b/tests/tcg/x86_64/Makefile.target
> index 2151ea6302..d7a7385583 100644
> --- a/tests/tcg/x86_64/Makefile.target
> +++ b/tests/tcg/x86_64/Makefile.target
> @@ -8,8 +8,12 @@
>
> include $(SRC_PATH)/tests/tcg/i386/Makefile.target
>
> +ifneq ($(CONFIG_LINUX),)
> X86_64_TESTS += vsyscall
> TESTS=$(MULTIARCH_TESTS) $(X86_64_TESTS) test-x86_64
> +else
> +TESTS=$(MULTIARCH_TESTS)
> +endif
> QEMU_OPTS += -cpu max
>
> test-x86_64: LDFLAGS+=-lm -lc
> --
> 2.30.2
--
Alex Bennée
next prev parent reply other threads:[~2021-09-17 14:55 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-03 11:02 [RFC PATCH 0/3] check-tcg hacks for BSD Alex Bennée
2021-08-03 11:02 ` [RFC PATCH 1/3] configure: don't override the selected host test compiler if defined Alex Bennée
2021-08-03 11:02 ` [RFC PATCH 2/3] tests/tcg/sha1: remove endian include Alex Bennée
2021-08-03 13:55 ` Warner Losh
2021-08-03 14:20 ` Warner Losh
2021-08-03 11:02 ` [RFC PATCH 3/3] tests/tcg: commit Makefile atrocities in the name of portability Alex Bennée
2021-09-14 16:03 ` Warner Losh
2021-09-17 14:34 ` Alex Bennée [this message]
2021-09-17 15:08 ` Warner Losh
2021-09-17 16:41 ` Alex Bennée
2021-09-17 17:23 ` Warner Losh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8735q3tgfo.fsf@linaro.org \
--to=alex.bennee@linaro.org \
--cc=aurelien@aurel32.net \
--cc=berrange@redhat.com \
--cc=crosa@redhat.com \
--cc=ehabkost@redhat.com \
--cc=f4bug@amsat.org \
--cc=fam@euphon.net \
--cc=imp@bsdimp.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).