mbox

[PULL,00/23] Final test, gdbstub, plugin and gitdm updates for 8.2

Message ID 20231107142354.3151266-1-alex.bennee@linaro.org
State New
Headers show

Pull-request

https://gitlab.com/stsquad/qemu.git tags/pull-halloween-omnibus-071123-1

Message

Alex Bennée Nov. 7, 2023, 2:23 p.m. UTC
The following changes since commit 462ad017ed76889d46696a3581e1b52343f9b683:

  Merge tag 'pixman-pull-request' of https://gitlab.com/marcandre.lureau/qemu into staging (2023-11-07 19:00:03 +0800)

are available in the Git repository at:

  https://gitlab.com/stsquad/qemu.git tags/pull-halloween-omnibus-071123-1

for you to fetch changes up to 00da668de6856d912cd75474ba759927e29d0e49:

  Revert "tests/tcg/nios2: Re-enable linux-user tests" (2023-11-07 14:18:29 +0000)

----------------------------------------------------------------
Final test, gdbstub, plugin and gitdm updates for 8.2

  - fix duplicate register in arm xml
  - hide various duplicate system registers from gdbstub
  - add new gdb register test to the CI (skipping s390x/ppc64 for now)
  - introduce GDBFeatureBuilder
  - move plugin initialisation to after vCPU init completes
  - enable building TCG plugins on Windows platform
  - various gitdm updates
  - some mailmap fixes
  - disable testing for nios2 signals which have regressed

----------------------------------------------------------------
Akihiko Odaki (5):
      default-configs: Add TARGET_XML_FILES definition
      gdbstub: Add num_regs member to GDBFeature
      gdbstub: Introduce gdb_find_static_feature()
      gdbstub: Introduce GDBFeatureBuilder
      cpu: Call plugin hooks only when ready

Alex Bennée (13):
      gdb-xml: fix duplicate register in arm-neon.xml
      target/arm: mark the 32bit alias of PAR when LPAE enabled
      target/arm: hide all versions of DBGD[RS]AR from gdbstub
      target/arm: hide aliased MIDR from gdbstub
      tests/tcg: add an explicit gdbstub register tester
      tests/avocado: update the tcg_plugins test
      configure: tell meson and contrib_plugins about DLLTOOL
      gitlab: add dlltool to Windows CI
      contrib/gitdm: Add Rivos Inc to the domain map
      contrib/gitdm: map HiSilicon to Huawei
      contrib/gitdm: add Daynix to domain-map
      mailmap: fixup some more corrupted author fields
      Revert "tests/tcg/nios2: Re-enable linux-user tests"

Greg Manning (4):
      plugins: add dllexport and dllimport to api funcs
      plugins: make test/example plugins work on windows
      plugins: disable lockstep plugin on windows
      plugins: allow plugins to be enabled on windows

luzhipeng (1):
      contrib/gitdm: add domain-map for Cestc

 MAINTAINERS                                        |   2 +-
 configure                                          |  13 +-
 configs/targets/loongarch64-linux-user.mak         |   1 +
 meson.build                                        |   5 +
 include/exec/gdbstub.h                             |  59 ++++++
 include/qemu/qemu-plugin.h                         |  50 +++++-
 contrib/plugins/win32_linker.c                     |  34 ++++
 cpu-target.c                                       |  11 --
 gdbstub/gdbstub.c                                  |  78 ++++++++
 hw/core/cpu-common.c                               |  10 ++
 target/arm/debug_helper.c                          |  10 +-
 target/arm/helper.c                                |  37 ++--
 .gitlab-ci.d/windows.yml                           |   1 +
 .mailmap                                           |   2 +
 contrib/gitdm/domain-map                           |   4 +
 contrib/plugins/Makefile                           |  26 ++-
 gdb-xml/arm-neon.xml                               |   2 +-
 plugins/meson.build                                |  19 ++
 scripts/feature_to_c.py                            |  46 ++++-
 tests/avocado/tcg_plugins.py                       |  28 +--
 tests/plugin/meson.build                           |  14 +-
 tests/tcg/multiarch/Makefile.target                |  11 +-
 tests/tcg/multiarch/gdbstub/registers.py           | 197 +++++++++++++++++++++
 tests/tcg/multiarch/system/Makefile.softmmu-target |  13 +-
 tests/tcg/nios2/Makefile.target                    |  11 ++
 tests/tcg/ppc64/Makefile.target                    |   7 +
 tests/tcg/s390x/Makefile.target                    |   4 +
 27 files changed, 637 insertions(+), 58 deletions(-)
 create mode 100644 contrib/plugins/win32_linker.c
 create mode 100644 tests/tcg/multiarch/gdbstub/registers.py
 create mode 100644 tests/tcg/nios2/Makefile.target

Comments

Stefan Hajnoczi Nov. 8, 2023, 12:36 p.m. UTC | #1
On Tue, 7 Nov 2023 at 22:25, Alex Bennée <alex.bennee@linaro.org> wrote:
>
> The following changes since commit 462ad017ed76889d46696a3581e1b52343f9b683:
>
>   Merge tag 'pixman-pull-request' of https://gitlab.com/marcandre.lureau/qemu into staging (2023-11-07 19:00:03 +0800)
>
> are available in the Git repository at:
>
>   https://gitlab.com/stsquad/qemu.git tags/pull-halloween-omnibus-071123-1
>
> for you to fetch changes up to 00da668de6856d912cd75474ba759927e29d0e49:
>
>   Revert "tests/tcg/nios2: Re-enable linux-user tests" (2023-11-07 14:18:29 +0000)
>
> ----------------------------------------------------------------
> Final test, gdbstub, plugin and gitdm updates for 8.2
>
>   - fix duplicate register in arm xml
>   - hide various duplicate system registers from gdbstub
>   - add new gdb register test to the CI (skipping s390x/ppc64 for now)
>   - introduce GDBFeatureBuilder
>   - move plugin initialisation to after vCPU init completes
>   - enable building TCG plugins on Windows platform

Hi Alex,
Please take a look at the following CI failure:

i686-w64-mingw32-gcc -m32 -o tests/plugin/libempty.dll
plugins/qemu_plugin_api.lib tests/plugin/libempty.dll.p/empty.c.obj
tests/plugin/libempty.dll.p/.._.._contrib_plugins_win32_linker.c.obj
-Wl,--allow-shlib-undefined -shared -Wl,--start-group
-Wl,--out-implib=tests/plugin/libempty.dll.a -fstack-protector-strong
-Wl,--no-seh -Wl,--nxcompat -Wl,--dynamicbase -Wl,--warn-common
/usr/i686-w64-mingw32/sys-root/mingw/lib/libglib-2.0.dll.a
/usr/i686-w64-mingw32/sys-root/mingw/lib/libintl.dll.a
/usr/i686-w64-mingw32/sys-root/mingw/lib/libgmodule-2.0.dll.a
-lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32
-luuid -lcomdlg32 -ladvapi32 -Wl,--end-group
/usr/lib/gcc/i686-w64-mingw32/12.2.1/../../../../i686-w64-mingw32/bin/ld:
tests/plugin/libempty.dll.p/empty.c.obj: in function
`qemu_plugin_install':
/builds/qemu-project/qemu/build/../tests/plugin/empty.c:30: undefined
reference to `_imp__qemu_plugin_register_vcpu_tb_trans_cb'
collect2: error: ld returned 1 exit status

https://gitlab.com/qemu-project/qemu/-/jobs/5487689202

Thanks,
Stefan

>   - various gitdm updates
>   - some mailmap fixes
>   - disable testing for nios2 signals which have regressed
>
> ----------------------------------------------------------------
> Akihiko Odaki (5):
>       default-configs: Add TARGET_XML_FILES definition
>       gdbstub: Add num_regs member to GDBFeature
>       gdbstub: Introduce gdb_find_static_feature()
>       gdbstub: Introduce GDBFeatureBuilder
>       cpu: Call plugin hooks only when ready
>
> Alex Bennée (13):
>       gdb-xml: fix duplicate register in arm-neon.xml
>       target/arm: mark the 32bit alias of PAR when LPAE enabled
>       target/arm: hide all versions of DBGD[RS]AR from gdbstub
>       target/arm: hide aliased MIDR from gdbstub
>       tests/tcg: add an explicit gdbstub register tester
>       tests/avocado: update the tcg_plugins test
>       configure: tell meson and contrib_plugins about DLLTOOL
>       gitlab: add dlltool to Windows CI
>       contrib/gitdm: Add Rivos Inc to the domain map
>       contrib/gitdm: map HiSilicon to Huawei
>       contrib/gitdm: add Daynix to domain-map
>       mailmap: fixup some more corrupted author fields
>       Revert "tests/tcg/nios2: Re-enable linux-user tests"
>
> Greg Manning (4):
>       plugins: add dllexport and dllimport to api funcs
>       plugins: make test/example plugins work on windows
>       plugins: disable lockstep plugin on windows
>       plugins: allow plugins to be enabled on windows
>
> luzhipeng (1):
>       contrib/gitdm: add domain-map for Cestc
>
>  MAINTAINERS                                        |   2 +-
>  configure                                          |  13 +-
>  configs/targets/loongarch64-linux-user.mak         |   1 +
>  meson.build                                        |   5 +
>  include/exec/gdbstub.h                             |  59 ++++++
>  include/qemu/qemu-plugin.h                         |  50 +++++-
>  contrib/plugins/win32_linker.c                     |  34 ++++
>  cpu-target.c                                       |  11 --
>  gdbstub/gdbstub.c                                  |  78 ++++++++
>  hw/core/cpu-common.c                               |  10 ++
>  target/arm/debug_helper.c                          |  10 +-
>  target/arm/helper.c                                |  37 ++--
>  .gitlab-ci.d/windows.yml                           |   1 +
>  .mailmap                                           |   2 +
>  contrib/gitdm/domain-map                           |   4 +
>  contrib/plugins/Makefile                           |  26 ++-
>  gdb-xml/arm-neon.xml                               |   2 +-
>  plugins/meson.build                                |  19 ++
>  scripts/feature_to_c.py                            |  46 ++++-
>  tests/avocado/tcg_plugins.py                       |  28 +--
>  tests/plugin/meson.build                           |  14 +-
>  tests/tcg/multiarch/Makefile.target                |  11 +-
>  tests/tcg/multiarch/gdbstub/registers.py           | 197 +++++++++++++++++++++
>  tests/tcg/multiarch/system/Makefile.softmmu-target |  13 +-
>  tests/tcg/nios2/Makefile.target                    |  11 ++
>  tests/tcg/ppc64/Makefile.target                    |   7 +
>  tests/tcg/s390x/Makefile.target                    |   4 +
>  27 files changed, 637 insertions(+), 58 deletions(-)
>  create mode 100644 contrib/plugins/win32_linker.c
>  create mode 100644 tests/tcg/multiarch/gdbstub/registers.py
>  create mode 100644 tests/tcg/nios2/Makefile.target
>
> --
> 2.39.2
>
>
Alex Bennée Nov. 8, 2023, 2:56 p.m. UTC | #2
Stefan Hajnoczi <stefanha@gmail.com> writes:

> On Tue, 7 Nov 2023 at 22:25, Alex Bennée <alex.bennee@linaro.org> wrote:
>>
>> The following changes since commit 462ad017ed76889d46696a3581e1b52343f9b683:
>>
>>   Merge tag 'pixman-pull-request' of https://gitlab.com/marcandre.lureau/qemu into staging (2023-11-07 19:00:03 +0800)
>>
>> are available in the Git repository at:
>>
>>   https://gitlab.com/stsquad/qemu.git tags/pull-halloween-omnibus-071123-1
>>
>> for you to fetch changes up to 00da668de6856d912cd75474ba759927e29d0e49:
>>
>>   Revert "tests/tcg/nios2: Re-enable linux-user tests" (2023-11-07 14:18:29 +0000)
>>
>> ----------------------------------------------------------------
>> Final test, gdbstub, plugin and gitdm updates for 8.2
>>
>>   - fix duplicate register in arm xml
>>   - hide various duplicate system registers from gdbstub
>>   - add new gdb register test to the CI (skipping s390x/ppc64 for now)
>>   - introduce GDBFeatureBuilder
>>   - move plugin initialisation to after vCPU init completes
>>   - enable building TCG plugins on Windows platform
>
> Hi Alex,
> Please take a look at the following CI failure:
>
> i686-w64-mingw32-gcc -m32 -o tests/plugin/libempty.dll
> plugins/qemu_plugin_api.lib tests/plugin/libempty.dll.p/empty.c.obj
> tests/plugin/libempty.dll.p/.._.._contrib_plugins_win32_linker.c.obj
> -Wl,--allow-shlib-undefined -shared -Wl,--start-group
> -Wl,--out-implib=tests/plugin/libempty.dll.a -fstack-protector-strong
> -Wl,--no-seh -Wl,--nxcompat -Wl,--dynamicbase -Wl,--warn-common
> /usr/i686-w64-mingw32/sys-root/mingw/lib/libglib-2.0.dll.a
> /usr/i686-w64-mingw32/sys-root/mingw/lib/libintl.dll.a
> /usr/i686-w64-mingw32/sys-root/mingw/lib/libgmodule-2.0.dll.a
> -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32
> -luuid -lcomdlg32 -ladvapi32 -Wl,--end-group
> /usr/lib/gcc/i686-w64-mingw32/12.2.1/../../../../i686-w64-mingw32/bin/ld:
> tests/plugin/libempty.dll.p/empty.c.obj: in function
> `qemu_plugin_install':
> /builds/qemu-project/qemu/build/../tests/plugin/empty.c:30: undefined
> reference to `_imp__qemu_plugin_register_vcpu_tb_trans_cb'
> collect2: error: ld returned 1 exit status

Sorry I missed that. While the native msys2-win32bit/msys2-win64bit
builds work the mingw cross builds fail despite having dlltool
installed.

For now I shall --disable-plugins on those builds and raise a bug to
make sure we don't forget.

Greg,

Do you have a Linux/WSL2 system as well that you could look at the
difference? It seems weird its only complaining about some of the
symbols.

To do a local mingw cross build in Linux:

  make docker-test-build@fedora-win64-cross J=30 V=1 EXTRA_CONFIGURE_OPTS="--enable-fdt=internal" NETWORK=1 DEBUG=1

The NETWORK is important to ensure git can fetch stuff. DEBUG will drop
you into a shell inside the container so you can poke around the build.

>
> https://gitlab.com/qemu-project/qemu/-/jobs/5487689202
>
> Thanks,
> Stefan
>
>>   - various gitdm updates
>>   - some mailmap fixes
>>   - disable testing for nios2 signals which have regressed
>>
>> ----------------------------------------------------------------
>> Akihiko Odaki (5):
>>       default-configs: Add TARGET_XML_FILES definition
>>       gdbstub: Add num_regs member to GDBFeature
>>       gdbstub: Introduce gdb_find_static_feature()
>>       gdbstub: Introduce GDBFeatureBuilder
>>       cpu: Call plugin hooks only when ready
>>
>> Alex Bennée (13):
>>       gdb-xml: fix duplicate register in arm-neon.xml
>>       target/arm: mark the 32bit alias of PAR when LPAE enabled
>>       target/arm: hide all versions of DBGD[RS]AR from gdbstub
>>       target/arm: hide aliased MIDR from gdbstub
>>       tests/tcg: add an explicit gdbstub register tester
>>       tests/avocado: update the tcg_plugins test
>>       configure: tell meson and contrib_plugins about DLLTOOL
>>       gitlab: add dlltool to Windows CI
>>       contrib/gitdm: Add Rivos Inc to the domain map
>>       contrib/gitdm: map HiSilicon to Huawei
>>       contrib/gitdm: add Daynix to domain-map
>>       mailmap: fixup some more corrupted author fields
>>       Revert "tests/tcg/nios2: Re-enable linux-user tests"
>>
>> Greg Manning (4):
>>       plugins: add dllexport and dllimport to api funcs
>>       plugins: make test/example plugins work on windows
>>       plugins: disable lockstep plugin on windows
>>       plugins: allow plugins to be enabled on windows
>>
>> luzhipeng (1):
>>       contrib/gitdm: add domain-map for Cestc
>>
>>  MAINTAINERS                                        |   2 +-
>>  configure                                          |  13 +-
>>  configs/targets/loongarch64-linux-user.mak         |   1 +
>>  meson.build                                        |   5 +
>>  include/exec/gdbstub.h                             |  59 ++++++
>>  include/qemu/qemu-plugin.h                         |  50 +++++-
>>  contrib/plugins/win32_linker.c                     |  34 ++++
>>  cpu-target.c                                       |  11 --
>>  gdbstub/gdbstub.c                                  |  78 ++++++++
>>  hw/core/cpu-common.c                               |  10 ++
>>  target/arm/debug_helper.c                          |  10 +-
>>  target/arm/helper.c                                |  37 ++--
>>  .gitlab-ci.d/windows.yml                           |   1 +
>>  .mailmap                                           |   2 +
>>  contrib/gitdm/domain-map                           |   4 +
>>  contrib/plugins/Makefile                           |  26 ++-
>>  gdb-xml/arm-neon.xml                               |   2 +-
>>  plugins/meson.build                                |  19 ++
>>  scripts/feature_to_c.py                            |  46 ++++-
>>  tests/avocado/tcg_plugins.py                       |  28 +--
>>  tests/plugin/meson.build                           |  14 +-
>>  tests/tcg/multiarch/Makefile.target                |  11 +-
>>  tests/tcg/multiarch/gdbstub/registers.py           | 197 +++++++++++++++++++++
>>  tests/tcg/multiarch/system/Makefile.softmmu-target |  13 +-
>>  tests/tcg/nios2/Makefile.target                    |  11 ++
>>  tests/tcg/ppc64/Makefile.target                    |   7 +
>>  tests/tcg/s390x/Makefile.target                    |   4 +
>>  27 files changed, 637 insertions(+), 58 deletions(-)
>>  create mode 100644 contrib/plugins/win32_linker.c
>>  create mode 100644 tests/tcg/multiarch/gdbstub/registers.py
>>  create mode 100644 tests/tcg/nios2/Makefile.target
>>
>> --
>> 2.39.2
>>
>>
Alex Bennée Nov. 8, 2023, 3:54 p.m. UTC | #3
Stefan Hajnoczi <stefanha@gmail.com> writes:

> On Tue, 7 Nov 2023 at 22:25, Alex Bennée <alex.bennee@linaro.org> wrote:
>>
>> The following changes since commit 462ad017ed76889d46696a3581e1b52343f9b683:
>>
>>   Merge tag 'pixman-pull-request' of https://gitlab.com/marcandre.lureau/qemu into staging (2023-11-07 19:00:03 +0800)
>>
>> are available in the Git repository at:
>>
>>   https://gitlab.com/stsquad/qemu.git tags/pull-halloween-omnibus-071123-1
>>
>> for you to fetch changes up to 00da668de6856d912cd75474ba759927e29d0e49:
>>
>>   Revert "tests/tcg/nios2: Re-enable linux-user tests" (2023-11-07 14:18:29 +0000)
>>
>> ----------------------------------------------------------------
>> Final test, gdbstub, plugin and gitdm updates for 8.2
>>
>>   - fix duplicate register in arm xml
>>   - hide various duplicate system registers from gdbstub
>>   - add new gdb register test to the CI (skipping s390x/ppc64 for now)
>>   - introduce GDBFeatureBuilder
>>   - move plugin initialisation to after vCPU init completes
>>   - enable building TCG plugins on Windows platform
>
> Hi Alex,
> Please take a look at the following CI failure:
>
> i686-w64-mingw32-gcc -m32 -o tests/plugin/libempty.dll
> plugins/qemu_plugin_api.lib tests/plugin/libempty.dll.p/empty.c.obj
> tests/plugin/libempty.dll.p/.._.._contrib_plugins_win32_linker.c.obj
> -Wl,--allow-shlib-undefined -shared -Wl,--start-group
> -Wl,--out-implib=tests/plugin/libempty.dll.a -fstack-protector-strong
> -Wl,--no-seh -Wl,--nxcompat -Wl,--dynamicbase -Wl,--warn-common
> /usr/i686-w64-mingw32/sys-root/mingw/lib/libglib-2.0.dll.a
> /usr/i686-w64-mingw32/sys-root/mingw/lib/libintl.dll.a
> /usr/i686-w64-mingw32/sys-root/mingw/lib/libgmodule-2.0.dll.a
> -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32
> -luuid -lcomdlg32 -ladvapi32 -Wl,--end-group
> /usr/lib/gcc/i686-w64-mingw32/12.2.1/../../../../i686-w64-mingw32/bin/ld:
> tests/plugin/libempty.dll.p/empty.c.obj: in function
> `qemu_plugin_install':
> /builds/qemu-project/qemu/build/../tests/plugin/empty.c:30: undefined
> reference to `_imp__qemu_plugin_register_vcpu_tb_trans_cb'
> collect2: error: ld returned 1 exit status
>
> https://gitlab.com/qemu-project/qemu/-/jobs/5487689202

Please see:

  Message-Id: <20231108151743.3834165-1-alex.bennee@linaro.org>
  Date: Wed,  8 Nov 2023 15:17:43 +0000
  Subject: [PULL v2 00/23] Final test, gdbstub, plugin and gitdm updates for 8.2
  From: =?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>

CI currently running:

  https://gitlab.com/stsquad/qemu/-/pipelines/1065418931