[PATCH] configure: make building deprecated targets easier

Alex Bennée posted 1 patch 3 years, 7 months ago
Test docker-quick@centos7 passed
Test docker-mingw@fedora passed
Test checkpatch passed
Test FreeBSD passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20200925161408.4016-1-alex.bennee@linaro.org
configure      | 17 ++++++++++++++++-
.gitlab-ci.yml |  4 +---
2 files changed, 17 insertions(+), 4 deletions(-)
[PATCH] configure: make building deprecated targets easier
Posted by Alex Bennée 3 years, 7 months ago
While we are ceasing to care about these targets it is useful for CI
purposes to be able to enable them all without having to remember the
list.

Suggested-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 configure      | 17 ++++++++++++++++-
 .gitlab-ci.yml |  4 +---
 2 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/configure b/configure
index c5f1b3bec6a8..2436125cf541 100755
--- a/configure
+++ b/configure
@@ -1039,9 +1039,13 @@ for opt do
   ;;
   --cpu=*)
   ;;
-  --target-list=*) target_list="$optarg"
+  --target-list=*)
                    if test "$target_list_exclude"; then
                        error_exit "Can't mix --target-list with --target-list-exclude"
+                   elif test "$target_list"; then
+                       target_list="$target_list,$optarg"
+                   else
+                       target_list="$optarg"
                    fi
   ;;
   --target-list-exclude=*) target_list_exclude="$optarg"
@@ -1049,6 +1053,13 @@ for opt do
                        error_exit "Can't mix --target-list-exclude with --target-list"
                    fi
   ;;
+  --include-deprecated-targets)
+                   if test "$target_list"; then
+                       target_list="$deprecated_targets_list,$target_list"
+                   else
+                       target_list="$deprecated_targets_list"
+                   fi
+  ;;
   --enable-trace-backends=*) trace_backends="$optarg"
   ;;
   # XXX: backwards compatibility
@@ -1763,6 +1774,10 @@ Standard options:
 $(echo Available targets: $default_target_list | \
   fold -s -w 53 | sed -e 's/^/                           /')
   --target-list-exclude=LIST exclude a set of targets from the default target-list
+  --include-deprecated-targets add currently deprecated targets to the list
+$(echo Deprecated targets: $deprecated_targets_list | \
+  fold -s -w 53 | sed -e 's/^/                           /')
+
 
 Advanced options (experts only):
   --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c265e7f8ab0a..bc907812c152 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -258,10 +258,8 @@ build-deprecated:
   <<: *native_build_job_definition
   variables:
     IMAGE: debian-all-test-cross
-    CONFIGURE_ARGS: --disable-docs --disable-tools
+    CONFIGURE_ARGS: --disable-docs --disable-tools --include-deprecated-targets
     MAKE_CHECK_ARGS: check-tcg
-    TARGETS: ppc64abi32-linux-user tilegx-linux-user lm32-softmmu
-      unicore32-softmmu
   allow_failure: true
 
 build-oss-fuzz:
-- 
2.20.1


Re: [PATCH] configure: make building deprecated targets easier
Posted by Peter Maydell 3 years, 7 months ago
On Fri, 25 Sep 2020 at 17:14, Alex Bennée <alex.bennee@linaro.org> wrote:
>
> While we are ceasing to care about these targets it is useful for CI
> purposes to be able to enable them all without having to remember the
> list.
>
> Suggested-by: Peter Maydell <peter.maydell@linaro.org>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
>  configure      | 17 ++++++++++++++++-
>  .gitlab-ci.yml |  4 +---
>  2 files changed, 17 insertions(+), 4 deletions(-)
>
> diff --git a/configure b/configure
> index c5f1b3bec6a8..2436125cf541 100755
> --- a/configure
> +++ b/configure
> @@ -1039,9 +1039,13 @@ for opt do
>    ;;
>    --cpu=*)
>    ;;
> -  --target-list=*) target_list="$optarg"
> +  --target-list=*)
>                     if test "$target_list_exclude"; then
>                         error_exit "Can't mix --target-list with --target-list-exclude"
> +                   elif test "$target_list"; then
> +                       target_list="$target_list,$optarg"
> +                   else
> +                       target_list="$optarg"
>                     fi
>    ;;
>    --target-list-exclude=*) target_list_exclude="$optarg"
> @@ -1049,6 +1053,13 @@ for opt do
>                         error_exit "Can't mix --target-list-exclude with --target-list"
>                     fi
>    ;;
> +  --include-deprecated-targets)
> +                   if test "$target_list"; then
> +                       target_list="$deprecated_targets_list,$target_list"
> +                   else
> +                       target_list="$deprecated_targets_list"
> +                   fi
> +  ;;

So, this isn't what I expected --include-deprecated-targets to do.
The behaviour I think it should do is basically "disable the
skip-deprecated-targets logic"; so you get the set of targets
that any other options imply, including any deprecated targets
that those options specify or imply. (Whereas the default
without --include-deprecated-targets is that you get the set of
targets that your options imply, but deprecated targets are
filtered out unless you asked for them by name.) So eg
  --disable-system --include-deprecated-targets
should build all the linux-user targets, deprecated or not,
  --target-list-exclude=nios2-softmmu --include-deprecated-targets
should build everything (including deprecated targets) except
nios2-softmmu, and so on.

thanks
-- PMM