qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 00/12] single-binary: compile once semihosting
@ 2025-08-04 18:39 Pierrick Bouvier
  2025-08-04 18:39 ` [PATCH v3 01/12] semihosting/syscalls: compile once in system and per target for user mode Pierrick Bouvier
                   ` (12 more replies)
  0 siblings, 13 replies; 22+ messages in thread
From: Pierrick Bouvier @ 2025-08-04 18:39 UTC (permalink / raw)
  To: qemu-devel
  Cc: qemu-riscv, philmd, Weiwei Li, Palmer Dabbelt, richard.henderson,
	Alex Bennée, Peter Maydell, Liu Zhiwei, qemu-arm,
	Alistair Francis, Daniel Henrique Barboza, Pierrick Bouvier

This series compiles once semihosting files in system mode.
The most complicated file was semihosting/arm-compat-semi.c, which was carefully
cleaned in easy to understand steps.

v2
--

- use vaddr for syscalls.c/.h
- static qualifier for console_{in,out}_gf
- use vaddr for arm-compat-semi.c
- semihosting/arm-compat-semi: fix cast for common_semi_set_ret

v3
--

- keep common_semi_sys_exit_extended (Peter)

Pierrick Bouvier (12):
  semihosting/syscalls: compile once in system and per target for user
    mode
  semihosting/syscalls: replace uint64_t with vaddr where appropriate
  semihosting/guestfd: compile once for system/user
  semihosting/arm-compat-semi: change common_semi_sys_exit_extended
  target/riscv/common-semi-target: remove sizeof(target_ulong)
  target/{arm,riscv}/common-semi-target: eradicate target_ulong
  include/semihosting/common-semi: extract common_semi API
  semihosting/arm-compat-semi: eradicate sizeof(target_ulong)
  semihosting/arm-compat-semi: replace target_ulong with uint64_t
  semihosting/arm-compat-semi: eradicate target_long
  semihosting/arm-compat-semi: remove dependency on cpu.h
  semihosting/arm-compat-semi: compile once in system and per target for
    user mode

 include/semihosting/common-semi.h             |   6 +
 include/semihosting/guestfd.h                 |   7 --
 include/semihosting/semihost.h                |   2 +
 include/semihosting/syscalls.h                |  30 ++---
 semihosting/arm-compat-semi-stub.c            |  19 +++
 semihosting/arm-compat-semi.c                 |  65 ++++++++---
 semihosting/guestfd.c                         |  26 +----
 semihosting/syscalls.c                        | 109 +++++++++---------
 ...mon-semi-target.h => common-semi-target.c} |  22 ++--
 ...mon-semi-target.h => common-semi-target.c} |  27 +++--
 semihosting/meson.build                       |  18 +--
 target/arm/meson.build                        |   4 +
 target/riscv/meson.build                      |   4 +
 13 files changed, 190 insertions(+), 149 deletions(-)
 create mode 100644 semihosting/arm-compat-semi-stub.c
 rename target/arm/{common-semi-target.h => common-semi-target.c} (59%)
 rename target/riscv/{common-semi-target.h => common-semi-target.c} (53%)

-- 
2.47.2



^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2025-08-25  9:57 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-04 18:39 [PATCH v3 00/12] single-binary: compile once semihosting Pierrick Bouvier
2025-08-04 18:39 ` [PATCH v3 01/12] semihosting/syscalls: compile once in system and per target for user mode Pierrick Bouvier
2025-08-04 18:39 ` [PATCH v3 02/12] semihosting/syscalls: replace uint64_t with vaddr where appropriate Pierrick Bouvier
2025-08-04 18:39 ` [PATCH v3 03/12] semihosting/guestfd: compile once for system/user Pierrick Bouvier
2025-08-04 18:39 ` [PATCH v3 04/12] semihosting/arm-compat-semi: change common_semi_sys_exit_extended Pierrick Bouvier
2025-08-04 22:23   ` Richard Henderson
2025-08-04 18:39 ` [PATCH v3 05/12] target/riscv/common-semi-target: remove sizeof(target_ulong) Pierrick Bouvier
2025-08-04 22:24   ` Richard Henderson
2025-08-04 18:39 ` [PATCH v3 06/12] target/{arm, riscv}/common-semi-target: eradicate target_ulong Pierrick Bouvier
2025-08-04 18:39 ` [PATCH v3 07/12] include/semihosting/common-semi: extract common_semi API Pierrick Bouvier
2025-08-04 18:39 ` [PATCH v3 08/12] semihosting/arm-compat-semi: eradicate sizeof(target_ulong) Pierrick Bouvier
2025-08-04 18:39 ` [PATCH v3 09/12] semihosting/arm-compat-semi: replace target_ulong with uint64_t Pierrick Bouvier
2025-08-04 22:42   ` Philippe Mathieu-Daudé
2025-08-04 22:43     ` Pierrick Bouvier
2025-08-04 18:39 ` [PATCH v3 10/12] semihosting/arm-compat-semi: eradicate target_long Pierrick Bouvier
2025-08-04 18:39 ` [PATCH v3 11/12] semihosting/arm-compat-semi: remove dependency on cpu.h Pierrick Bouvier
2025-08-04 18:39 ` [PATCH v3 12/12] semihosting/arm-compat-semi: compile once in system and per target for user mode Pierrick Bouvier
2025-08-22 14:31 ` [PATCH v3 00/12] single-binary: compile once semihosting Pierrick Bouvier
2025-08-22 14:56   ` Philippe Mathieu-Daudé
2025-08-22 14:57     ` Pierrick Bouvier
2025-08-22 15:04       ` Pierrick Bouvier
2025-08-25  9:56       ` Philippe Mathieu-Daudé

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).