mbox series

[PULL,0/8] configure deprecation, linux-user and test fix

Message ID 20200916122648.17468-1-alex.bennee@linaro.org
Headers show
Series configure deprecation, linux-user and test fix | expand

Message

Alex Bennée Sept. 16, 2020, 12:26 p.m. UTC
The following changes since commit de39a045bd8d2b49e4f3d07976622c29d58e0bac:

  Merge remote-tracking branch 'remotes/kraxel/tags/vga-20200915-pull-request' into staging (2020-09-15 14:25:05 +0100)

are available in the Git repository at:

  https://github.com/stsquad/qemu.git tags/pull-configure-fixes-160920-1

for you to fetch changes up to 3ffc7f013763bf4fc50c3b403cbacca2bee68cfa:

  configure: add [lm32|unicore32]-softmmu to deprecation logic (2020-09-16 10:07:01 +0100)

----------------------------------------------------------------
configure tweaks for deprecation

  - iotest fix for readlink -f
  - linux-user, report rather than assert on mmap failure
  - clean-up and re-factor the logic
  - add tilegx-linux-user to deprecated_targets_list
  - add [lm32|unicore32]-softmmu deprecated_targets_list
  - add a gitlab deprecated builds test

----------------------------------------------------------------
Alex Bennée (7):
      linux-user: test, don't assert addr != test in pgb_reserved_va
      configure: move deprecated feature processing to supported_target
      configure: also skip deprecated targets with target-list-exclude
      configure: clean-up the target-list-exclude logic
      configure: include tilegx-linux-user in the deprecation logic
      gitlab: create a build-deprecated target
      configure: add [lm32|unicore32]-softmmu to deprecation logic

Max Reitz (1):
      iotests: Drop readlink -f

 configure                | 33 ++++++++++++++++++---------------
 linux-user/elfload.c     |  9 ++++-----
 .gitlab-ci.yml           | 15 +++++++++++++--
 .shippable.yml           |  2 +-
 .travis.yml              |  3 +--
 tests/qemu-iotests/check |  2 +-
 6 files changed, 38 insertions(+), 26 deletions(-)

Comments

Peter Maydell Sept. 16, 2020, 12:40 p.m. UTC | #1
On Wed, 16 Sep 2020 at 13:27, Alex Bennée <alex.bennee@linaro.org> wrote:
>
> These targets might be deprecated but we should keep them building
> before the final axe comes down. Lets keep them all in one place and
> don't hold up the CI if they do fail. They are either poorly tested or
> already flaky anyway.
>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> Acked-by: Thomas Huth <thuth@redhat.com>
> Message-Id: <20200915134317.11110-8-alex.bennee@linaro.org>
>
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index 72e8604579ee..f027b55aef15 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -254,6 +254,16 @@ build-clang:
>        ppc-softmmu s390x-softmmu arm-linux-user
>      MAKE_CHECK_ARGS: check
>
> +# These targets are on the way out
> +build-deprecated:
> +  <<: *native_build_job_definition
> +  variables:
> +    IMAGE: debian-all-test-cross
> +    CONFIGURE_ARGS: --disable-docs --disable-tools --disable-system
> +    MAKE_CHECK_ARGS: check-tcg
> +    TARGETS: ppc64abi32-linux-user tilegx-linux-user
> +  allow_failure: true

It's kind of awkward to have the CI config need to be updated when
we mark a config as deprecated. Can we have something so that
the CI just arranges to build all of the deprecated targets?

(As demonstration, this list is missing unicore32, which is also deprecated.)

Also, "allow_failure: true" seems wrong to me. These targets
are only deprecated, which means we promise that the feature
should still work (to whatever extent it already did) for the 2
releases in which it is deprecated. We want our CI to tell us
if it fails to compile or fails tests, because we would need to
fix those bugs for a release.

thanks
-- PMM
Alex Bennée Sept. 16, 2020, 1:23 p.m. UTC | #2
Peter Maydell <peter.maydell@linaro.org> writes:

> On Wed, 16 Sep 2020 at 13:27, Alex Bennée <alex.bennee@linaro.org> wrote:

>>

>> These targets might be deprecated but we should keep them building

>> before the final axe comes down. Lets keep them all in one place and

>> don't hold up the CI if they do fail. They are either poorly tested or

>> already flaky anyway.

>>

>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

>> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

>> Acked-by: Thomas Huth <thuth@redhat.com>

>> Message-Id: <20200915134317.11110-8-alex.bennee@linaro.org>

>>

>> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml

>> index 72e8604579ee..f027b55aef15 100644

>> --- a/.gitlab-ci.yml

>> +++ b/.gitlab-ci.yml

>> @@ -254,6 +254,16 @@ build-clang:

>>        ppc-softmmu s390x-softmmu arm-linux-user

>>      MAKE_CHECK_ARGS: check

>>

>> +# These targets are on the way out

>> +build-deprecated:

>> +  <<: *native_build_job_definition

>> +  variables:

>> +    IMAGE: debian-all-test-cross

>> +    CONFIGURE_ARGS: --disable-docs --disable-tools --disable-system

>> +    MAKE_CHECK_ARGS: check-tcg

>> +    TARGETS: ppc64abi32-linux-user tilegx-linux-user

>> +  allow_failure: true

>

> It's kind of awkward to have the CI config need to be updated when

> we mark a config as deprecated. Can we have something so that

> the CI just arranges to build all of the deprecated targets?


You mean a configure --enable-deprecated-targets?

>

> (As demonstration, this list is missing unicore32, which is also

> deprecated.)


That was fixed up in the next patch.

> Also, "allow_failure: true" seems wrong to me. These targets

> are only deprecated, which means we promise that the feature

> should still work (to whatever extent it already did) for the 2

> releases in which it is deprecated. We want our CI to tell us

> if it fails to compile or fails tests, because we would need to

> fix those bugs for a release.


I can revert that bit.

-- 
Alex Bennée
Philippe Mathieu-Daudé Sept. 16, 2020, 1:52 p.m. UTC | #3
On 9/16/20 3:23 PM, Alex Bennée wrote:
> 

> Peter Maydell <peter.maydell@linaro.org> writes:

> 

>> On Wed, 16 Sep 2020 at 13:27, Alex Bennée <alex.bennee@linaro.org> wrote:

>>>

>>> These targets might be deprecated but we should keep them building

>>> before the final axe comes down. Lets keep them all in one place and

>>> don't hold up the CI if they do fail. They are either poorly tested or

>>> already flaky anyway.

>>>

>>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

>>> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

>>> Acked-by: Thomas Huth <thuth@redhat.com>

>>> Message-Id: <20200915134317.11110-8-alex.bennee@linaro.org>

>>>

>>> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml

>>> index 72e8604579ee..f027b55aef15 100644

>>> --- a/.gitlab-ci.yml

>>> +++ b/.gitlab-ci.yml

>>> @@ -254,6 +254,16 @@ build-clang:

>>>        ppc-softmmu s390x-softmmu arm-linux-user

>>>      MAKE_CHECK_ARGS: check

>>>

>>> +# These targets are on the way out

>>> +build-deprecated:

>>> +  <<: *native_build_job_definition

>>> +  variables:

>>> +    IMAGE: debian-all-test-cross

>>> +    CONFIGURE_ARGS: --disable-docs --disable-tools --disable-system

>>> +    MAKE_CHECK_ARGS: check-tcg

>>> +    TARGETS: ppc64abi32-linux-user tilegx-linux-user

>>> +  allow_failure: true

>>

>> It's kind of awkward to have the CI config need to be updated when

>> we mark a config as deprecated. Can we have something so that

>> the CI just arranges to build all of the deprecated targets?

> 

> You mean a configure --enable-deprecated-targets?

> 

>>

>> (As demonstration, this list is missing unicore32, which is also

>> deprecated.)

> 

> That was fixed up in the next patch.

> 

>> Also, "allow_failure: true" seems wrong to me. These targets

>> are only deprecated, which means we promise that the feature

>> should still work (to whatever extent it already did) for the 2

>> releases in which it is deprecated. We want our CI to tell us

>> if it fails to compile or fails tests, because we would need to

>> fix those bugs for a release.


Should we stop building the ppc64abi32 target instead?

From c609274b853 ("docs/system/deprecated: mark
ppc64abi32-linux-user for deprecation"):

 The ppc64abi32 architecture has a number of issues which regularly
 trip up our CI testing and is suspected to be quite broken. For that
 reason the maintainers strongly suspect no one actually uses it.

> 

> I can revert that bit.

>
Peter Maydell Sept. 17, 2020, 7:40 p.m. UTC | #4
On Wed, 16 Sep 2020 at 13:26, Alex Bennée <alex.bennee@linaro.org> wrote:
>

> The following changes since commit de39a045bd8d2b49e4f3d07976622c29d58e0bac:

>

>   Merge remote-tracking branch 'remotes/kraxel/tags/vga-20200915-pull-request' into staging (2020-09-15 14:25:05 +0100)

>

> are available in the Git repository at:

>

>   https://github.com/stsquad/qemu.git tags/pull-configure-fixes-160920-1

>

> for you to fetch changes up to 3ffc7f013763bf4fc50c3b403cbacca2bee68cfa:

>

>   configure: add [lm32|unicore32]-softmmu to deprecation logic (2020-09-16 10:07:01 +0100)

>

> ----------------------------------------------------------------

> configure tweaks for deprecation

>

>   - iotest fix for readlink -f

>   - linux-user, report rather than assert on mmap failure

>   - clean-up and re-factor the logic

>   - add tilegx-linux-user to deprecated_targets_list

>   - add [lm32|unicore32]-softmmu deprecated_targets_list

>   - add a gitlab deprecated builds test

>

> ----------------------------------------------------------------

> Alex Bennée (7):

>       linux-user: test, don't assert addr != test in pgb_reserved_va

>       configure: move deprecated feature processing to supported_target

>       configure: also skip deprecated targets with target-list-exclude

>       configure: clean-up the target-list-exclude logic

>       configure: include tilegx-linux-user in the deprecation logic

>       gitlab: create a build-deprecated target

>       configure: add [lm32|unicore32]-softmmu to deprecation logic

>

> Max Reitz (1):

>       iotests: Drop readlink -f




Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/5.2
for any user-visible changes.

-- PMM
Peter Maydell Sept. 25, 2020, 3:54 p.m. UTC | #5
On Wed, 16 Sep 2020 at 14:52, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
> Should we stop building the ppc64abi32 target instead?

>

> From c609274b853 ("docs/system/deprecated: mark

> ppc64abi32-linux-user for deprecation"):

>

>  The ppc64abi32 architecture has a number of issues which regularly

>  trip up our CI testing and is suspected to be quite broken. For that

>  reason the maintainers strongly suspect no one actually uses it.


It still builds fine and it also runs the 'ls' binary in
the linux-user-test collection (ie the 32-bit PPC binary).

thanks
-- PMM
Richard Henderson Sept. 25, 2020, 6:34 p.m. UTC | #6
On 9/25/20 8:54 AM, Peter Maydell wrote:
> On Wed, 16 Sep 2020 at 14:52, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
>> Should we stop building the ppc64abi32 target instead?
>>
>> From c609274b853 ("docs/system/deprecated: mark
>> ppc64abi32-linux-user for deprecation"):
>>
>>  The ppc64abi32 architecture has a number of issues which regularly
>>  trip up our CI testing and is suspected to be quite broken. For that
>>  reason the maintainers strongly suspect no one actually uses it.
> 
> It still builds fine and it also runs the 'ls' binary in
> the linux-user-test collection (ie the 32-bit PPC binary).

But signal handling is completely wrong, so
tests/tcg/multiarch/linux-test.c will fail.


r~
Peter Maydell Sept. 25, 2020, 6:47 p.m. UTC | #7
On Fri, 25 Sep 2020 at 19:34, Richard Henderson
<richard.henderson@linaro.org> wrote:
>

> On 9/25/20 8:54 AM, Peter Maydell wrote:

> > On Wed, 16 Sep 2020 at 14:52, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:

> >> Should we stop building the ppc64abi32 target instead?

> >>

> >> From c609274b853 ("docs/system/deprecated: mark

> >> ppc64abi32-linux-user for deprecation"):

> >>

> >>  The ppc64abi32 architecture has a number of issues which regularly

> >>  trip up our CI testing and is suspected to be quite broken. For that

> >>  reason the maintainers strongly suspect no one actually uses it.

> >

> > It still builds fine and it also runs the 'ls' binary in

> > the linux-user-test collection (ie the 32-bit PPC binary).

>

> But signal handling is completely wrong


That is also true for sparc linux-user (RT signal frames
completely unimplemented)...

Anyway, my point was mostly that there is a class of programs
which do run OK on it, so we should continue to build and test
it to the level we do today until the deprecation period runs
out. It is not so badly broken as to be a candidate for dropping
immediately.

thanks
-- PMM