All of lore.kernel.org
 help / color / mirror / Atom feed
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


  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.