You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ac...@apache.org on 2026/10/08 12:35:16 UTC
(nuttx) 02/02: Documentation/qemu-armv8a: Note fork() and the semihosting flag.
This is an automated email from the ASF dual-hosted git repository.
acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit a2a1f881e29f3aacd7f064508aa601386dee2243
Author: Marco Casaroli <ma...@gmail.com>
AuthorDate: Mon Aug 10 22:03:13 2026 +0200
Documentation/qemu-armv8a: Note fork() and the semihosting flag.
The kernel mode section shows the QEMU command but does not say why
-semihosting is there. Without it the guest traps in smh_call and stops in
AppBringUp, which reads as a kernel defect and is not one. It cost me a
session once.
Also state that a kernel build is the only mode on this board with POSIX
fork(), and that vfork() is available in every mode.
Assisted-by: Claude Opus 5 (1M context) <no...@anthropic.com>
Signed-off-by: Marco Casaroli <ma...@gmail.com>
---
.../platforms/arm64/qemu/boards/qemu-armv8a/index.rst | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/Documentation/platforms/arm64/qemu/boards/qemu-armv8a/index.rst b/Documentation/platforms/arm64/qemu/boards/qemu-armv8a/index.rst
index 5b488b0a147..675a02bb5f5 100644
--- a/Documentation/platforms/arm64/qemu/boards/qemu-armv8a/index.rst
+++ b/Documentation/platforms/arm64/qemu/boards/qemu-armv8a/index.rst
@@ -463,6 +463,16 @@ Running with QEMU:
-net none -chardev stdio,id=con,mux=on -serial chardev:con \
-mon chardev=con,mode=readline -kernel ./nuttx
+``-semihosting`` is necessary. A kernel build loads its applications over
+hostfs. Without the flag the guest traps in ``smh_call`` and stops in
+``AppBringUp``, which looks like a kernel defect and is not one.
+
+A kernel build gives each process its own address environment. This is the
+only build mode on this board that provides POSIX ``fork()``: the child
+receives its own copy of the memory of the parent, at the same virtual
+addresses. ``vfork()`` is available in every build mode.
+
+
Inter-VM share memory Device (ivshmem)
--------------------------------------