[PATCH] tests/tcg: use CONFIG_LINUX_USER, not CONFIG_LINUX

Paolo Bonzini posted 1 patch 4 years, 2 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20211210084836.25202-1-pbonzini@redhat.com
Maintainers: Richard Henderson <richard.henderson@linaro.org>, Eduardo Habkost <eduardo@habkost.net>, Paolo Bonzini <pbonzini@redhat.com>, "Alex Bennée" <alex.bennee@linaro.org>
tests/tcg/configure.sh              | 8 +++++++-
tests/tcg/multiarch/Makefile.target | 2 +-
tests/tcg/x86_64/Makefile.target    | 2 +-
3 files changed, 9 insertions(+), 3 deletions(-)
[PATCH] tests/tcg: use CONFIG_LINUX_USER, not CONFIG_LINUX
Posted by Paolo Bonzini 4 years, 2 months ago
The two more or less overlap, because CONFIG_LINUX is a requirement for Linux
user-mode emulation.  However, CONFIG_LINUX is technically a host symbol
that applies even to system emulation.  Defining CONFIG_LINUX_USER, and
CONFIG_BSD_USER for eventual future use, is cleaner.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 tests/tcg/configure.sh              | 8 +++++++-
 tests/tcg/multiarch/Makefile.target | 2 +-
 tests/tcg/x86_64/Makefile.target    | 2 +-
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/tests/tcg/configure.sh b/tests/tcg/configure.sh
index 9ef913df5b..f859b61d90 100755
--- a/tests/tcg/configure.sh
+++ b/tests/tcg/configure.sh
@@ -225,8 +225,14 @@ for target in $target_list; do
   echo "TARGET_NAME=$arch" >> $config_target_mak
   echo "target=$target" >> $config_target_mak
   case $target in
-    *-linux-user | *-bsd-user)
+    *-linux-user)
       echo "CONFIG_USER_ONLY=y" >> $config_target_mak
+      echo "CONFIG_LINUX_USER=y" >> $config_target_mak
+      echo "QEMU=$PWD/qemu-$arch" >> $config_target_mak
+      ;;
+    *-bsd-user)
+      echo "CONFIG_USER_ONLY=y" >> $config_target_mak
+      echo "CONFIG_BSD_USER=y" >> $config_target_mak
       echo "QEMU=$PWD/qemu-$arch" >> $config_target_mak
       ;;
     *-softmmu)
diff --git a/tests/tcg/multiarch/Makefile.target b/tests/tcg/multiarch/Makefile.target
index a83efb4a9d..dec401e67f 100644
--- a/tests/tcg/multiarch/Makefile.target
+++ b/tests/tcg/multiarch/Makefile.target
@@ -10,7 +10,7 @@ MULTIARCH_SRC=$(SRC_PATH)/tests/tcg/multiarch
 # Set search path for all sources
 VPATH 	       += $(MULTIARCH_SRC)
 MULTIARCH_SRCS =  $(notdir $(wildcard $(MULTIARCH_SRC)/*.c))
-ifneq ($(CONFIG_LINUX),)
+ifneq ($(CONFIG_LINUX_USER),)
 VPATH 	       += $(MULTIARCH_SRC)/linux
 MULTIARCH_SRCS += $(notdir $(wildcard $(MULTIARCH_SRC)/linux/*.c))
 endif
diff --git a/tests/tcg/x86_64/Makefile.target b/tests/tcg/x86_64/Makefile.target
index d7a7385583..4a8a464c57 100644
--- a/tests/tcg/x86_64/Makefile.target
+++ b/tests/tcg/x86_64/Makefile.target
@@ -8,7 +8,7 @@
 
 include $(SRC_PATH)/tests/tcg/i386/Makefile.target
 
-ifneq ($(CONFIG_LINUX),)
+ifneq ($(CONFIG_LINUX_USER),)
 X86_64_TESTS += vsyscall
 TESTS=$(MULTIARCH_TESTS) $(X86_64_TESTS) test-x86_64
 else
-- 
2.33.1


Re: [PATCH] tests/tcg: use CONFIG_LINUX_USER, not CONFIG_LINUX
Posted by Peter Maydell 4 years, 2 months ago
On Fri, 10 Dec 2021 at 09:41, Paolo Bonzini <pbonzini@redhat.com> wrote:
>
> The two more or less overlap, because CONFIG_LINUX is a requirement for Linux
> user-mode emulation.  However, CONFIG_LINUX is technically a host symbol
> that applies even to system emulation.  Defining CONFIG_LINUX_USER, and
> CONFIG_BSD_USER for eventual future use, is cleaner.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  tests/tcg/configure.sh              | 8 +++++++-
>  tests/tcg/multiarch/Makefile.target | 2 +-
>  tests/tcg/x86_64/Makefile.target    | 2 +-
>  3 files changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/tests/tcg/configure.sh b/tests/tcg/configure.sh
> index 9ef913df5b..f859b61d90 100755
> --- a/tests/tcg/configure.sh
> +++ b/tests/tcg/configure.sh
> @@ -225,8 +225,14 @@ for target in $target_list; do
>    echo "TARGET_NAME=$arch" >> $config_target_mak
>    echo "target=$target" >> $config_target_mak
>    case $target in
> -    *-linux-user | *-bsd-user)
> +    *-linux-user)
>        echo "CONFIG_USER_ONLY=y" >> $config_target_mak
> +      echo "CONFIG_LINUX_USER=y" >> $config_target_mak
> +      echo "QEMU=$PWD/qemu-$arch" >> $config_target_mak
> +      ;;
> +    *-bsd-user)
> +      echo "CONFIG_USER_ONLY=y" >> $config_target_mak
> +      echo "CONFIG_BSD_USER=y" >> $config_target_mak
>        echo "QEMU=$PWD/qemu-$arch" >> $config_target_mak

I note that this is very subtly different from the logic
used in meson.build for setting CONFIG_LINUX_USER,
which uses "target.endswith('linux-user')" without the
leading hyphen...

Vaguely relatedly, gdbstub.c has some ifdefs:
 #if defined(CONFIG_USER_ONLY) && defined(CONFIG_LINUX_USER)

Is it possible for CONFIG_LINUX_USER to be defined when
CONFIG_USER_ONLY is not, or is the first clause in the #if
redundant?

thanks
-- PMM

Re: [PATCH] tests/tcg: use CONFIG_LINUX_USER, not CONFIG_LINUX
Posted by Alex Bennée 4 years, 2 months ago
Paolo Bonzini <pbonzini@redhat.com> writes:

> The two more or less overlap, because CONFIG_LINUX is a requirement for Linux
> user-mode emulation.  However, CONFIG_LINUX is technically a host symbol
> that applies even to system emulation.  Defining CONFIG_LINUX_USER, and
> CONFIG_BSD_USER for eventual future use, is cleaner.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

Queued to testing/next, thanks.

-- 
Alex Bennée