[PULL 00/30] gdbstub refactor for smaller build

Alex Bennée posted 30 patches 1 year, 1 month ago
MAINTAINERS                                        |    4 +
configure                                          |    8 +
gdbstub/internals.h                                |  212 ++-
include/exec/cpu-defs.h                            |   19 +-
include/exec/exec-all.h                            |    1 -
include/exec/gdbstub.h                             |  208 ---
include/exec/target_long.h                         |   42 +
include/exec/tb-flush.h                            |   26 +
include/gdbstub/helpers.h                          |  103 ++
include/gdbstub/syscalls.h                         |  113 ++
include/gdbstub/user.h                             |   43 +
include/sysemu/accel-ops.h                         |    1 +
linux-user/user-internals.h                        |    1 +
accel/kvm/kvm-accel-ops.c                          |    8 +
accel/stubs/tcg-stub.c                             |    1 +
accel/tcg/tb-maint.c                               |    1 +
accel/tcg/translate-all.c                          |    1 +
bsd-user/freebsd/os-syscall.c                      |    2 +
bsd-user/main.c                                    |    1 +
bsd-user/signal.c                                  |    1 +
cpu.c                                              |   12 +-
gdbstub/gdbstub.c                                  | 1655 ++------------------
gdbstub/softmmu.c                                  |  603 ++++++-
gdbstub/syscalls.c                                 |  205 +++
gdbstub/user-target.c                              |  283 ++++
gdbstub/user.c                                     |  423 ++++-
hw/ppc/spapr_hcall.c                               |    1 +
linux-user/exit.c                                  |    2 +-
linux-user/main.c                                  |    1 +
linux-user/signal.c                                |    2 +-
plugins/core.c                                     |    1 +
plugins/loader.c                                   |    2 +-
semihosting/arm-compat-semi.c                      |    1 +
semihosting/guestfd.c                              |    2 +-
semihosting/syscalls.c                             |   37 +-
softmmu/runstate.c                                 |    2 +-
stubs/semihost-all.c                               |   17 +
stubs/semihost.c                                   |    5 -
target/alpha/gdbstub.c                             |    2 +-
target/alpha/sys_helper.c                          |    1 +
target/arm/gdbstub.c                               |    1 +
target/arm/gdbstub64.c                             |    2 +-
target/arm/tcg/helper-a64.c                        |    2 +-
target/arm/tcg/m_helper.c                          |    1 +
target/avr/gdbstub.c                               |    2 +-
target/cris/gdbstub.c                              |    2 +-
target/hexagon/gdbstub.c                           |    2 +-
target/hppa/gdbstub.c                              |    2 +-
target/i386/gdbstub.c                              |    2 +-
target/i386/whpx/whpx-all.c                        |    2 +-
target/loongarch/gdbstub.c                         |    1 +
target/m68k/gdbstub.c                              |    2 +-
target/m68k/helper.c                               |    1 +
target/m68k/m68k-semi.c                            |    3 +-
target/microblaze/gdbstub.c                        |    2 +-
target/mips/gdbstub.c                              |    2 +-
target/mips/tcg/sysemu/mips-semi.c                 |    3 +-
target/nios2/cpu.c                                 |    2 +-
target/nios2/nios2-semi.c                          |    3 +-
target/openrisc/gdbstub.c                          |    2 +-
target/openrisc/interrupt.c                        |    2 +-
target/openrisc/mmu.c                              |    2 +-
target/ppc/cpu_init.c                              |    2 +-
target/ppc/gdbstub.c                               |    1 +
target/riscv/csr.c                                 |    1 +
target/riscv/gdbstub.c                             |    1 +
target/rx/gdbstub.c                                |    2 +-
target/s390x/gdbstub.c                             |    1 +
target/s390x/helper.c                              |    2 +-
target/sh4/gdbstub.c                               |    2 +-
target/sparc/gdbstub.c                             |    2 +-
target/tricore/gdbstub.c                           |    2 +-
target/xtensa/core-dc232b.c                        |    2 +-
target/xtensa/core-dc233c.c                        |    2 +-
target/xtensa/core-de212.c                         |    2 +-
target/xtensa/core-de233_fpu.c                     |    2 +-
target/xtensa/core-dsp3400.c                       |    2 +-
target/xtensa/core-fsf.c                           |    2 +-
target/xtensa/core-lx106.c                         |    2 +-
target/xtensa/core-sample_controller.c             |    2 +-
target/xtensa/core-test_kc705_be.c                 |    2 +-
target/xtensa/core-test_mmuhifi_c3.c               |    2 +-
target/xtensa/gdbstub.c                            |    2 +-
target/xtensa/helper.c                             |    2 +-
gdbstub/meson.build                                |   34 +-
gdbstub/trace-events                               |    4 +-
scripts/probe-gdb-support.py                       |   88 ++
stubs/meson.build                                  |    1 +
target/xtensa/import_core.sh                       |    2 +-
tests/tcg/aarch64/Makefile.target                  |    2 +-
tests/tcg/multiarch/Makefile.target                |    5 +
tests/tcg/multiarch/system/Makefile.softmmu-target |    6 +-
tests/tcg/s390x/Makefile.target                    |    2 +-
93 files changed, 2462 insertions(+), 1818 deletions(-)
create mode 100644 include/exec/target_long.h
create mode 100644 include/exec/tb-flush.h
create mode 100644 include/gdbstub/helpers.h
create mode 100644 include/gdbstub/syscalls.h
create mode 100644 include/gdbstub/user.h
create mode 100644 gdbstub/syscalls.c
create mode 100644 gdbstub/user-target.c
create mode 100644 stubs/semihost-all.c
create mode 100755 scripts/probe-gdb-support.py
[PULL 00/30] gdbstub refactor for smaller build
Posted by Alex Bennée 1 year, 1 month ago
The following changes since commit 9832009d9dd2386664c15cc70f6e6bfe062be8bd:

  Merge tag 'pull-riscv-to-apply-20230306' of https://gitlab.com/palmer-dabbelt/qemu into staging (2023-03-07 12:53:00 +0000)

are available in the Git repository at:

  https://gitlab.com/stsquad/qemu.git tags/pull-gdbstub-070323-3

for you to fetch changes up to 412ae12647d1086c713e13841fd25d10d5418c7f:

  gdbstub: move update guest debug to accel ops (2023-03-07 20:44:09 +0000)

----------------------------------------------------------------
gdbstub refactor:

  - split user and softmmu code
  - use cleaner headers for tb_flush, target_ulong
  - probe for gdb multiarch support at configure
  - make syscall handling target independent
  - add update guest debug of accel ops

----------------------------------------------------------------
Alex Bennée (25):
      gdbstub/internals.h: clean up include guard
      gdbstub: fix-up copyright and license files
      gdbstub: clean-up indent on gdb_exit
      gdbstub: define separate user/system structures
      gdbstub: move GDBState to shared internals header
      includes: move tb_flush into its own header
      gdbstub: move fromhex/tohex routines to internals
      gdbstub: make various helpers visible to the rest of the module
      gdbstub: move chunk of softmmu functionality to own file
      gdbstub: move chunks of user code into own files
      gdbstub: rationalise signal mapping in softmmu
      gdbstub: abstract target specific details from gdb_put_packet_binary
      gdbstub: specialise handle_query_attached
      gdbstub: specialise target_memory_rw_debug
      gdbstub: introduce gdb_get_max_cpus
      gdbstub: specialise stub_can_reverse
      gdbstub: fix address type of gdb_set_cpu_pc
      gdbstub: don't use target_ulong while handling registers
      gdbstub: move register helpers into standalone include
      gdbstub: move syscall handling to new file
      gdbstub: only compile gdbstub twice for whole build
      testing: probe gdb for supported architectures ahead of time
      include: split target_long definition from cpu-defs
      gdbstub: split out softmmu/user specifics for syscall handling
      stubs: split semihosting_get_target from system only stubs

Mads Ynddal (1):
      gdbstub: move update guest debug to accel ops

Philippe Mathieu-Daudé (1):
      gdbstub: Make syscall_complete/[gs]et_reg target-agnostic typedefs

Richard Henderson (3):
      gdbstub: Remove gdb_do_syscallv
      gdbstub: Adjust gdb_do_syscall to only use uint32_t and uint64_t
      gdbstub: Build syscall.c once

 MAINTAINERS                                        |    4 +
 configure                                          |    8 +
 gdbstub/internals.h                                |  212 ++-
 include/exec/cpu-defs.h                            |   19 +-
 include/exec/exec-all.h                            |    1 -
 include/exec/gdbstub.h                             |  208 ---
 include/exec/target_long.h                         |   42 +
 include/exec/tb-flush.h                            |   26 +
 include/gdbstub/helpers.h                          |  103 ++
 include/gdbstub/syscalls.h                         |  113 ++
 include/gdbstub/user.h                             |   43 +
 include/sysemu/accel-ops.h                         |    1 +
 linux-user/user-internals.h                        |    1 +
 accel/kvm/kvm-accel-ops.c                          |    8 +
 accel/stubs/tcg-stub.c                             |    1 +
 accel/tcg/tb-maint.c                               |    1 +
 accel/tcg/translate-all.c                          |    1 +
 bsd-user/freebsd/os-syscall.c                      |    2 +
 bsd-user/main.c                                    |    1 +
 bsd-user/signal.c                                  |    1 +
 cpu.c                                              |   12 +-
 gdbstub/gdbstub.c                                  | 1655 ++------------------
 gdbstub/softmmu.c                                  |  603 ++++++-
 gdbstub/syscalls.c                                 |  205 +++
 gdbstub/user-target.c                              |  283 ++++
 gdbstub/user.c                                     |  423 ++++-
 hw/ppc/spapr_hcall.c                               |    1 +
 linux-user/exit.c                                  |    2 +-
 linux-user/main.c                                  |    1 +
 linux-user/signal.c                                |    2 +-
 plugins/core.c                                     |    1 +
 plugins/loader.c                                   |    2 +-
 semihosting/arm-compat-semi.c                      |    1 +
 semihosting/guestfd.c                              |    2 +-
 semihosting/syscalls.c                             |   37 +-
 softmmu/runstate.c                                 |    2 +-
 stubs/semihost-all.c                               |   17 +
 stubs/semihost.c                                   |    5 -
 target/alpha/gdbstub.c                             |    2 +-
 target/alpha/sys_helper.c                          |    1 +
 target/arm/gdbstub.c                               |    1 +
 target/arm/gdbstub64.c                             |    2 +-
 target/arm/tcg/helper-a64.c                        |    2 +-
 target/arm/tcg/m_helper.c                          |    1 +
 target/avr/gdbstub.c                               |    2 +-
 target/cris/gdbstub.c                              |    2 +-
 target/hexagon/gdbstub.c                           |    2 +-
 target/hppa/gdbstub.c                              |    2 +-
 target/i386/gdbstub.c                              |    2 +-
 target/i386/whpx/whpx-all.c                        |    2 +-
 target/loongarch/gdbstub.c                         |    1 +
 target/m68k/gdbstub.c                              |    2 +-
 target/m68k/helper.c                               |    1 +
 target/m68k/m68k-semi.c                            |    3 +-
 target/microblaze/gdbstub.c                        |    2 +-
 target/mips/gdbstub.c                              |    2 +-
 target/mips/tcg/sysemu/mips-semi.c                 |    3 +-
 target/nios2/cpu.c                                 |    2 +-
 target/nios2/nios2-semi.c                          |    3 +-
 target/openrisc/gdbstub.c                          |    2 +-
 target/openrisc/interrupt.c                        |    2 +-
 target/openrisc/mmu.c                              |    2 +-
 target/ppc/cpu_init.c                              |    2 +-
 target/ppc/gdbstub.c                               |    1 +
 target/riscv/csr.c                                 |    1 +
 target/riscv/gdbstub.c                             |    1 +
 target/rx/gdbstub.c                                |    2 +-
 target/s390x/gdbstub.c                             |    1 +
 target/s390x/helper.c                              |    2 +-
 target/sh4/gdbstub.c                               |    2 +-
 target/sparc/gdbstub.c                             |    2 +-
 target/tricore/gdbstub.c                           |    2 +-
 target/xtensa/core-dc232b.c                        |    2 +-
 target/xtensa/core-dc233c.c                        |    2 +-
 target/xtensa/core-de212.c                         |    2 +-
 target/xtensa/core-de233_fpu.c                     |    2 +-
 target/xtensa/core-dsp3400.c                       |    2 +-
 target/xtensa/core-fsf.c                           |    2 +-
 target/xtensa/core-lx106.c                         |    2 +-
 target/xtensa/core-sample_controller.c             |    2 +-
 target/xtensa/core-test_kc705_be.c                 |    2 +-
 target/xtensa/core-test_mmuhifi_c3.c               |    2 +-
 target/xtensa/gdbstub.c                            |    2 +-
 target/xtensa/helper.c                             |    2 +-
 gdbstub/meson.build                                |   34 +-
 gdbstub/trace-events                               |    4 +-
 scripts/probe-gdb-support.py                       |   88 ++
 stubs/meson.build                                  |    1 +
 target/xtensa/import_core.sh                       |    2 +-
 tests/tcg/aarch64/Makefile.target                  |    2 +-
 tests/tcg/multiarch/Makefile.target                |    5 +
 tests/tcg/multiarch/system/Makefile.softmmu-target |    6 +-
 tests/tcg/s390x/Makefile.target                    |    2 +-
 93 files changed, 2462 insertions(+), 1818 deletions(-)
 create mode 100644 include/exec/target_long.h
 create mode 100644 include/exec/tb-flush.h
 create mode 100644 include/gdbstub/helpers.h
 create mode 100644 include/gdbstub/syscalls.h
 create mode 100644 include/gdbstub/user.h
 create mode 100644 gdbstub/syscalls.c
 create mode 100644 gdbstub/user-target.c
 create mode 100644 stubs/semihost-all.c
 create mode 100755 scripts/probe-gdb-support.py

-- 
2.39.2


Re: [PULL 00/30] gdbstub refactor for smaller build
Posted by Peter Maydell 1 year, 1 month ago
On Tue, 7 Mar 2023 at 21:21, Alex Bennée <alex.bennee@linaro.org> wrote:
>
> The following changes since commit 9832009d9dd2386664c15cc70f6e6bfe062be8bd:
>
>   Merge tag 'pull-riscv-to-apply-20230306' of https://gitlab.com/palmer-dabbelt/qemu into staging (2023-03-07 12:53:00 +0000)
>
> are available in the Git repository at:
>
>   https://gitlab.com/stsquad/qemu.git tags/pull-gdbstub-070323-3
>
> for you to fetch changes up to 412ae12647d1086c713e13841fd25d10d5418c7f:
>
>   gdbstub: move update guest debug to accel ops (2023-03-07 20:44:09 +0000)
>
> ----------------------------------------------------------------
> gdbstub refactor:
>
>   - split user and softmmu code
>   - use cleaner headers for tb_flush, target_ulong
>   - probe for gdb multiarch support at configure
>   - make syscall handling target independent
>   - add update guest debug of accel ops


Applied, thanks.

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

-- PMM