This is an automated email from the ASF dual-hosted git repository.

github-actions[bot] pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/nuttx-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new cefd1df924 Publishing docs: ef611627a5cc5100c7c62d00985f1c6cd85d3e9a 
(web: b3ba9359c605c5e92ad2feac6444e03d16143fd3)
cefd1df924 is described below

commit cefd1df924323bac69f07fe125a61341df1bb050
Author: Swatantra Yadav <[email protected]>
AuthorDate: Fri Oct 23 01:46:28 2026 +0000

    Publishing docs: ef611627a5cc5100c7c62d00985f1c6cd85d3e9a (web: 
b3ba9359c605c5e92ad2feac6444e03d16143fd3)
---
 .../applications/examples/elf/index.rst.txt        |  37 +++------
 .../applications/examples/module/index.rst.txt     |  36 +++------
 .../examples/posix_spawn/index.rst.txt             |  37 +++------
 .../applications/examples/sotest/index.rst.txt     |  36 +++------
 .../concurrency/fork_vfork_migration.rst.txt       |   9 ++-
 .../os/drivers/character/analog/pot/index.rst.txt  |   7 ++
 .../latest/_sources/os/filesystem/v9fs.rst.txt     |  26 ++++++
 .../latest/_sources/os/libs/libbuiltin.rst.txt     |   9 +++
 .../arm/rtl8730e/boards/rtl8730e_evb/index.rst.txt |  22 ++++++
 .../arm64/qemu/boards/qemu-armv8a/index.rst.txt    |   5 ++
 .../reference/user/03_task_control.rst.txt         |   6 ++
 .../_sources/reference/user/07_signals.rst.txt     |   5 +-
 .../docs/latest/_sources/standards/posix.rst.txt   |  18 +++--
 .../latest/applications/examples/elf/index.html    |  31 ++------
 .../latest/applications/examples/module/index.html |  30 ++-----
 .../applications/examples/posix_spawn/index.html   |  33 ++------
 .../latest/applications/examples/sotest/index.html |  30 ++-----
 .../guides/concurrency/fork_vfork_migration.html   |   9 ++-
 .../latest/guides/porting/port_bootsequence.html   |   8 +-
 .../porting/port_relatedkernelconfigrations.html   |   8 +-
 .../latest/guides/programs/fully_linked_elf.html   |   2 +-
 .../guides/programs/partially_linked_elf.html      |   2 +-
 content/docs/latest/objects.inv                    | Bin 257473 -> 257506 bytes
 .../os/drivers/character/analog/pot/index.html     |  10 +++
 content/docs/latest/os/filesystem/index.html       |   1 +
 content/docs/latest/os/filesystem/v9fs.html        |  26 ++++++
 content/docs/latest/os/libs/libbuiltin.html        |   8 ++
 .../boards/pimoroni-pico-plus-2-w/index.html       |   2 +-
 .../arm/rtl8730e/boards/rtl8730e_evb/index.html    |  22 ++++++
 .../arm/stm32c5/boards/nucleo-c562re/index.html    |  60 +++++++++-----
 .../arm64/fvp-v8r/boards/fvp-armv8r/index.html     |  88 +++++++++++----------
 .../arm64/qemu/boards/qemu-armv8a/index.html       |   4 +
 .../latest/reference/user/03_task_control.html     |   5 ++
 content/docs/latest/reference/user/07_signals.html |   5 +-
 content/docs/latest/searchindex.js                 |   2 +-
 content/docs/latest/standards/posix.html           |  18 +++--
 36 files changed, 351 insertions(+), 306 deletions(-)

diff --git 
a/content/docs/latest/_sources/applications/examples/elf/index.rst.txt 
b/content/docs/latest/_sources/applications/examples/elf/index.rst.txt
index 1988fd5a8b..65707789bd 100644
--- a/content/docs/latest/_sources/applications/examples/elf/index.rst.txt
+++ b/content/docs/latest/_sources/applications/examples/elf/index.rst.txt
@@ -27,41 +27,26 @@ Configuration options:
 
 **Notes**:
 
-1. ``CFLAGS`` should be provided in ``CELFFLAGS``. RAM and FLASH memory 
regions may
-   require long allcs. For ARM, this might be::
-
-     CELFFLAGS = $(CFLAGS) -mlong-calls
-
-   Similarly for C++ flags which must be provided in ``CXXELFFLAGS``.
-
-2. Your top-level ``nuttx/Make.defs`` file must also include an appropriate
-   definition, ``LDELFFLAGS``, to generate a relocatable ELF object. With GNU 
LD,
-   this should include ``-r`` and ``-e main`` (or ``_main`` on some 
platforms).::
-
-     LDELFFLAGS = -r -e main
-
-   If you use GCC to link, you make also need to include ``-nostdlib``.
-
-3. ELF size: The ELF files in this example are, be default, quite large because
+1. The arch ``Toolchain.defs`` sets ``CELFFLAGS``, ``CXXELFFLAGS`` and
+   ``LDELFFLAGS``. For example, on ARM they contain ``-mlong-calls``, the entry
+   point ``_start`` and the linker script ``libs/libc/elf/gnu-elf.ld``. A board
+   ``scripts/Make.defs`` can add an option with ``+=``, for example
+   ``LDELFFLAGS += -melf32lriscv``. Do not set these variables again with
+   ``=``: the board then loses the options that the arch adds for the
+   configuration, for example ``crt0.o`` and the PIC and FDPIC options.
+
+2. ELF size: The ELF files in this example are, be default, quite large because
    they include a lot of build garbage. You can greatly reduce the size of the
    ELF binaries are using the ``objcopy --strip-unneeded`` command to remove
    un-necessary information from the ELF files.
 
-4. Simulator. You cannot use this example with the NuttX simulator on Cygwin.
+3. Simulator. You cannot use this example with the NuttX simulator on Cygwin.
    That is because the Cygwin GCC does not generate ELF file but rather some
    Windows-native binary format.
 
    If you really want to do this, you can create a NuttX x86 buildroot 
toolchain
    and use that be build the ELF executables for the ROMFS file system.
 
-5. Linker scripts. You might also want to use a linker scripts to combine
-   sections better. An example linker script is at
-   ``nuttx/binfmt/elf/gnu-elf.ld``. That example might have to be tuned for
-   your particular linker output to position additional sections correctly. The
-   GNU LD ``LDELFFLAGS`` then might be::
-
-     LDELFFLAGS = -r -e main -T$(TOPDIR)/binfmt/elf/gnu-elf.ld
-
-6. When generating the ``romfs.img`` for external filesystem the image 
(``romfs.img``)
+4. When generating the ``romfs.img`` for external filesystem the image 
(``romfs.img``)
    needs to be manually copied to the start of the configured 
``CONFIG_EXAMPLES_ELF_DEVPATH``
    using ``openocd`` or your preferred programmer.
diff --git 
a/content/docs/latest/_sources/applications/examples/module/index.rst.txt 
b/content/docs/latest/_sources/applications/examples/module/index.rst.txt
index e75a3e8658..04115a12a8 100644
--- a/content/docs/latest/_sources/applications/examples/module/index.rst.txt
+++ b/content/docs/latest/_sources/applications/examples/module/index.rst.txt
@@ -20,43 +20,27 @@ configuration options:
 
 **Notes**:
 
-1. ``CFLAGS`` should be provided in ``CMODULEFLAGS``. RAM and FLASH memory 
regions
-   may require long allcs. For ARM, this might be::
-
-     CMODULEFLAGS = $(CFLAGS) -mlong-calls
-
-   Similarly for C++ flags which must be provided in ``CXXMODULEFLAGS``.
-
-2. Your top-level ``nuttx/Make.defs`` file must also include an appropriate
-   definition, LDMODULEFLAGS, to generate a relocatable ELF object. With GNU 
LD,
-   this should include ``-r`` and ``-e <entry point>``.::
-
-     LDMODULEFLAGS = -r -e module_initialize
-
-   If you use GCC to link, you make also need to include ``-nostdlib``.
-
-3. This example also requires ``genromfs``. ``genromfs`` can be build as part 
of the
+1. The arch ``Toolchain.defs`` sets ``CMODULEFLAGS`` and ``LDMODULEFLAGS``. For
+   example, on ARM they contain ``-mlong-calls``, ``-r`` and the linker script
+   ``libs/libc/elf/gnu-elf.ld``. A board ``scripts/Make.defs`` can add an 
option
+   with ``+=``, for example ``LDMODULEFLAGS += -melf32lriscv``. Do not set 
these
+   variables again with ``=``: the board then loses the options that the arch
+   adds for the configuration, for example the FDPIC options.
+
+2. This example also requires ``genromfs``. ``genromfs`` can be build as part 
of the
    nuttx toolchain. Or can built from the ``genromfs`` sources that can be 
found
    in the NuttX tools repository (``genromfs-0.5.2.tar.gz``). In any event, the
    PATH variable must include the path to the ``genromfs`` executable.
 
-4. ELF size: The ELF files in this example are, be default, quite large because
+3. ELF size: The ELF files in this example are, be default, quite large because
    they include a lot of build garbage. You can greatly reduce the size of the
    ELF binaries are using the ``objcopy --strip-unneeded`` command to remove
    un-necessary information from the ELF files.
 
-5. Simulator. You cannot use this example with the NuttX simulator on Cygwin.
+4. Simulator. You cannot use this example with the NuttX simulator on Cygwin.
    That is because the Cygwin GCC does not generate ELF file but rather some
    Windows-native binary format.
 
    If you really want to do this, you can create a NuttX x86 ``buildroot``
    toolchain and use that be build the ELF executables for the ROMFS file
    system.
-
-6. Linker scripts. You might also want to use a linker scripts to combine
-   sections better. An example linker script is at
-   ``nuttx/libc/elf/gnu-elf.ld``. That example might have to be tuned for your
-   particular linker output to position additional sections correctly. The GNU
-   LD ``LDMODULEFLAGS`` then might be::
-
-     LDMODULEFLAGS = -r -e module_initialize -T$(TOPDIR)/libc/elf/gnu-elf.ld
diff --git 
a/content/docs/latest/_sources/applications/examples/posix_spawn/index.rst.txt 
b/content/docs/latest/_sources/applications/examples/posix_spawn/index.rst.txt
index f9872edcdb..e4f83cb3c7 100644
--- 
a/content/docs/latest/_sources/applications/examples/posix_spawn/index.rst.txt
+++ 
b/content/docs/latest/_sources/applications/examples/posix_spawn/index.rst.txt
@@ -32,42 +32,27 @@ Test-specific configuration options:
 
 **Notes**:
 
-1. ``CFLAGS`` should be provided in ``CELFFLAGS``. RAM and FLASH memory 
regions may
-    require long allcs. For ARM, this might be::
-
-      CELFFLAGS = $(CFLAGS) -mlong-calls
-
-    Similarly for C++ flags which must be provided in ``CXXELFFLAGS``.
-
-2. Your top-level ``nuttx/Make.defs`` file must also include an appropriate
-   definition, ``LDELFFLAGS``, to generate a relocatable ELF object. With GNU 
LD,
-   this should include ``-r`` and ``-e main`` (or ``_main`` on some 
platforms).::
-
-     LDELFFLAGS = -r -e main
-
-   If you use GCC to link, you make also need to include ``-nostdlib``.
-
-3. This example also requires ``genromfs``. ``genromfs`` can be build as part 
of the
+1. The arch ``Toolchain.defs`` sets ``CELFFLAGS``, ``CXXELFFLAGS`` and
+   ``LDELFFLAGS``. For example, on ARM they contain ``-mlong-calls``, the entry
+   point ``_start`` and the linker script ``libs/libc/elf/gnu-elf.ld``. A board
+   ``scripts/Make.defs`` can add an option with ``+=``, for example
+   ``LDELFFLAGS += -melf32lriscv``. Do not set these variables again with
+   ``=``: the board then loses the options that the arch adds for the
+   configuration, for example ``crt0.o`` and the PIC and FDPIC options.
+
+2. This example also requires ``genromfs``. ``genromfs`` can be build as part 
of the
    nuttx toolchain. Or can built from the ``genromfs`` sources that can be 
found
    in the NuttX tools repository (``genromfs-0.5.2.tar.gz``). In any event, the
    ``PATH`` variable must include the path to the ``genromfs`` executable.
 
-4. ELF size: The ELF files in this example are, be default, quite large because
+3. ELF size: The ELF files in this example are, be default, quite large because
    they include a lot of build garbage. You can greatly reduce the size of the
    ELF binaries are using the ``objcopy --strip-unneeded`` command to remove
    un-necessary information from the ELF files.
 
-5. Simulator. You cannot use this example with the NuttX simulator on Cygwin.
+4. Simulator. You cannot use this example with the NuttX simulator on Cygwin.
    That is because the Cygwin GCC does not generate ELF file but rather some
    Windows-native binary format.
 
    If you really want to do this, you can create a NuttX x86 buildroot 
toolchain
    and use that be build the ELF executables for the ROMFS file system.
-
-6. Linker scripts. You might also want to use a linker scripts to combine
-   sections better. An example linker script is at
-   ``nuttx/binfmt/elf/gnu-elf.ld``. That example might have to be tuned for
-   your particular linker output to position additional sections correctly. The
-   GNU LD ``LDELFFLAGS`` then might be::
-
-     LDELFFLAGS = -r -e main -T$(TOPDIR)/binfmt/elf/gnu-elf.ld
diff --git 
a/content/docs/latest/_sources/applications/examples/sotest/index.rst.txt 
b/content/docs/latest/_sources/applications/examples/sotest/index.rst.txt
index 1049591d7a..980f98541d 100644
--- a/content/docs/latest/_sources/applications/examples/sotest/index.rst.txt
+++ b/content/docs/latest/_sources/applications/examples/sotest/index.rst.txt
@@ -19,42 +19,26 @@ system. At run time, the shared library is installed and 
exercised. Requires
 
 **Notes**:
 
-1. ``CFLAGS`` should be provided in ``CMODULEFLAGS``. RAM and FLASH memory 
regions
-   may require long allcs. For ARM, this might be::
-
-     CMODULEFLAGS = $(CFLAGS) -mlong-calls
-
-   Similarly for C++ flags which must be provided in ``CXXMODULEFLAGS``.
-
-2. Your top-level ``nuttx/Make.defs`` file must also include an appropriate
-   definition, ``LDMODULEFLAGS``, to generate a relocatable ELF object. With 
GNU
-   LD, this should include ``-r`` and ``-e <entry point>``.::
-
-     LDMODULEFLAGS = -r -e module_initialize
-
-   If you use GCC to link, you make also need to include ``-nostdlib``.
-
-3. This example also requires ``genromfs``. ``genromfs`` can be built as part 
of the
+1. The arch ``Toolchain.defs`` sets ``CMODULEFLAGS`` and ``LDMODULEFLAGS``. For
+   example, on ARM they contain ``-mlong-calls``, ``-r`` and the linker script
+   ``libs/libc/elf/gnu-elf.ld``. A board ``scripts/Make.defs`` can add an 
option
+   with ``+=``, for example ``LDMODULEFLAGS += -melf32lriscv``. Do not set 
these
+   variables again with ``=``: the board then loses the options that the arch
+   adds for the configuration, for example the FDPIC options.
+
+2. This example also requires ``genromfs``. ``genromfs`` can be built as part 
of the
    nuttx toolchain. Or can built from the ``genromfs`` sources that can be 
found
    in the NuttX tools repository (``genromfs-0.5.2.tar.gz``). In any event, the
    ``PATH`` variable must include the path to the ``genromfs`` executable.
 
-4. ELF size: The ELF files in this example are, be default, quite large because
+3. ELF size: The ELF files in this example are, be default, quite large because
    they include a lot of build garbage. You can greatly reduce the size of the
    ELF binaries are using the ``objcopy --strip-unneeded`` command to remove
    un-necessary information from the ELF files.
 
-5. Simulator. You cannot use this example with the NuttX simulator on Cygwin.
+4. Simulator. You cannot use this example with the NuttX simulator on Cygwin.
    That is because the Cygwin GCC does not generate ELF file but rather some
    Windows-native binary format.
 
    If you really want to do this, you can create a NuttX x86 buildroot 
toolchain
    and use that to build the ELF executables for the ROMFS file system.
-
-6. Linker scripts. You might also want to use a linker script to combine
-   sections better. An example linker script is at
-   ``nuttx/libc/elf/gnu-elf.ld``. That example might have to be tuned for your
-   particular linker output to position additional sections correctly. The GNU
-   LD ``LDMODULEFLAGS`` then might be::
-
-     LDMODULEFLAGS = -r -e module_initialize -T$(TOPDIR)/libc/elf/gnu-elf.ld
diff --git 
a/content/docs/latest/_sources/guides/concurrency/fork_vfork_migration.rst.txt 
b/content/docs/latest/_sources/guides/concurrency/fork_vfork_migration.rst.txt
index b87af5d988..f6461b4a55 100644
--- 
a/content/docs/latest/_sources/guides/concurrency/fork_vfork_migration.rst.txt
+++ 
b/content/docs/latest/_sources/guides/concurrency/fork_vfork_migration.rst.txt
@@ -234,10 +234,11 @@ Note also on ``waitpid()`` after ``vfork()``
 The ``vfork()`` parent is now resumed when the child's TCB is torn down, so by
 the time it runs the child is completely gone.  Where the child called
 ``exec()`` this makes no difference -- ``exec_swap()`` has already given the
-loaded program the child's pid, and that program is still running, so
-``waitpid()`` behaves normally.  Where the child called ``_exit()``,
-``waitpid()`` can only return its status if ``CONFIG_SCHED_CHILD_STATUS`` is
-enabled; otherwise it returns ``ECHILD``, because NuttX does not retain the
+loaded program the child's pid, so ``waitpid()`` behaves normally.  Where the
+child called ``_exit()``, or the loaded program exits before the parent calls
+``waitpid()``, ``waitpid()`` can only return its status if
+``CONFIG_SCHED_CHILD_STATUS`` is enabled (the default in a kernel build);
+otherwise it returns ``ECHILD``, because NuttX does not retain the
 status of a task that no longer exists.  That is a pre-existing property of
 that configuration, not a change:  the previous implementation blocked in a
 libc ``waitpid(WNOWAIT)`` and an application's own ``waitpid()`` afterwards hit
diff --git 
a/content/docs/latest/_sources/os/drivers/character/analog/pot/index.rst.txt 
b/content/docs/latest/_sources/os/drivers/character/analog/pot/index.rst.txt
index 829626ef17..06def3e332 100644
--- a/content/docs/latest/_sources/os/drivers/character/analog/pot/index.rst.txt
+++ b/content/docs/latest/_sources/os/drivers/character/analog/pot/index.rst.txt
@@ -60,4 +60,11 @@ Chip       Bus   Notes
 MCP445X    I2C   Quad wiper, 257 taps. Terminal control via the
                  ``ANIOC_MCP445X_*`` ioctls, see
                  ``include/nuttx/analog/mcp445x.h``.
+MCP45XX    I2C   MCP4541, MCP4561, MCP4641 and MCP4661: 7/8-bit
+                 (129/257 taps), one or two wipers, with a nonvolatile
+                 wiper register. ``POTIOC_STORE_WIPER`` and
+                 ``POTIOC_RECALL_WIPER`` use slot 0, the register that
+                 is loaded at power-up. A store returns ``-EROFS`` when
+                 the EEPROM is write protected or the wiper is locked.
+                 Tested on the MCP4561 only.
 ========== ===== ====================================================
diff --git a/content/docs/latest/_sources/os/filesystem/v9fs.rst.txt 
b/content/docs/latest/_sources/os/filesystem/v9fs.rst.txt
index cd9962a2da..5e56eeb427 100644
--- a/content/docs/latest/_sources/os/filesystem/v9fs.rst.txt
+++ b/content/docs/latest/_sources/os/filesystem/v9fs.rst.txt
@@ -26,6 +26,29 @@ last component of the path. ``rm`` of a link removes the 
link, not its
 target. A link with an absolute target is not followed and fails with
 ``ENOTSUP``, because the target is a path on the server.
 
+Owner and Group
+===============
+
+With ``CONFIG_SCHED_USER_IDENTITY``, V9FS attaches to the server once for
+each effective user ID that uses the mount. A new file, directory or
+symbolic link gets the effective user ID and the effective group ID of the
+caller. ``chown()`` and ``fchown()`` send ``Tsetattr``, and ``stat()``
+shows the owner and the group that the server returns.
+
+The server decides what it does with the owner. In QEMU, the
+``security_model`` option of ``-fsdev`` or ``-virtfs`` selects it:
+
+  - ``mapped-xattr``: QEMU keeps the owner, the group and the mode of a
+    file in extended attributes of the host file (``user.virtfs.uid``,
+    ``user.virtfs.gid``, ``user.virtfs.mode``). Use this model when
+    NuttX needs the owner and the group of its files.
+  - ``mapped-file``: the same, in hidden ``.virtfs_metadata`` files.
+  - ``passthrough``: QEMU changes the owner of the host file. QEMU must
+    run as root, else the creation of a file fails with ``EPERM``.
+  - ``none``: QEMU ignores the owner of a new file. ``stat()`` shows the
+    owner of the host file, and ``chown()`` fails with ``EPERM`` unless
+    QEMU runs as root.
+
 V9FS Mount Command
 ==================
 
@@ -54,6 +77,9 @@ Similarly, we need to bring the corresponding parameters in 
qemu
   -fsdev local,security_model=none,id=fsdev1,path=<share-path> \
   -device virtio-9p-device,id=fs1,fsdev=fsdev1,mount_tag=<mount_tag>
 
+Use ``security_model=mapped-xattr`` to keep the owner and the group of the
+files (see `Owner and Group`_).
+
 For how to start virtio-9p in QEMU, please refer to the document:
 
   - https://wiki.qemu.org/Documentation/9psetup
diff --git a/content/docs/latest/_sources/os/libs/libbuiltin.rst.txt 
b/content/docs/latest/_sources/os/libs/libbuiltin.rst.txt
index 256e2dfdc5..0b46e574eb 100644
--- a/content/docs/latest/_sources/os/libs/libbuiltin.rst.txt
+++ b/content/docs/latest/_sources/os/libs/libbuiltin.rst.txt
@@ -44,6 +44,15 @@ to the one module you care about.  Data is written under
 ``CONFIG_COVERAGE_GCOV_DUMP_REBOOT`` dumps it on reboot.  From a shell it is
 ``gcov dump -d <path>``.
 
+A loadable module of a flat or protected build (an ELF program or a shared
+library) can use the coverage of ``CONFIG_COVERAGE_ALL`` with
+``CONFIG_COVERAGE_MINI`` and GCC.  The system symbol table exports the
+coverage functions to the module, and the loader removes the data of the
+module when it unloads the module.  The unload does not dump this data: dump
+it while the module is loaded, with ``gcov -d <path>`` or with a call to
+``__gcov_dump()`` in the module.  The other runtimes do not export their
+coverage functions, so build a module for them without the coverage options.
+
 Profiling
 =========
 
diff --git 
a/content/docs/latest/_sources/platforms/arm/rtl8730e/boards/rtl8730e_evb/index.rst.txt
 
b/content/docs/latest/_sources/platforms/arm/rtl8730e/boards/rtl8730e_evb/index.rst.txt
index 11306b5148..dd05e6cb15 100644
--- 
a/content/docs/latest/_sources/platforms/arm/rtl8730e/boards/rtl8730e_evb/index.rst.txt
+++ 
b/content/docs/latest/_sources/platforms/arm/rtl8730e/boards/rtl8730e_evb/index.rst.txt
@@ -47,6 +47,8 @@ Supported in this NuttX port:
 * General-purpose timers exposed as ``/dev/timerN`` character devices, with
   microsecond timeouts and a periodic expiration callback
 * On-chip watchdog exposed as a ``/dev/watchdog0`` character device
+* 12-bit ADC exposed as a ``/dev/adc0`` character device, sampled in polling
+  mode through the SDK fwlib register layer
 * littlefs persistent storage mounted at ``/data`` (a dedicated SPI NOR flash
   partition), backing the Wi-Fi key-value store
 * Wi-Fi station and SoftAP through the ``wapi`` tool
@@ -190,6 +192,26 @@ opens the device, sets a timeout, and pings it::
 
     nsh> wdog                  # run the watchdog example on /dev/watchdog0
 
+adc
+---
+
+Minimal NSH with the ADC driver and the ``adc`` example (``examples/adc``)
+enabled (no Wi-Fi). The board registers one converter at ``/dev/adc0`` (see
+``boards/arm/rtl8730e/rtl8730e_evb/src/rtl8730e_adc.c``) listing CH2-CH5,
+which each ``ANIOC_TRIGGER`` samples in list order. The chip has ten
+channels; CH0-CH5 are external and bound to the fixed pads PA0-PA5 (the
+pin-mux table names them ``TOUCHn_ADCn``), while the rest are internal and
+have no pad. PA0 and PA1 are not bonded out on the RTL8730EAM/EAH packages,
+so the table leaves CH0 and CH1 out. The pads reach the converter through
+the cap-touch function (``PINMUX_FUNCTION_CAPTOUCH``, function 18), shared
+with the cap-touch controller and, on PA2-PA5, the DMIC, so those functions
+cannot be used on the same pad. PA3/PA4 are also I2C1 pads and PA4/PA5 are
+UART1 or PWM pads: a config that registers one of those too must drop the
+clashing channel from the table. The input range is 0 to 3.3 V with 12-bit
+samples, reported as raw codes. Exercise it with the example::
+
+    nsh> adc -n 1     # sample CH2-CH5 once on /dev/adc0
+
 Wi-Fi
 =====
 
diff --git 
a/content/docs/latest/_sources/platforms/arm64/qemu/boards/qemu-armv8a/index.rst.txt
 
b/content/docs/latest/_sources/platforms/arm64/qemu/boards/qemu-armv8a/index.rst.txt
index 8da7d5f60d..5bb87b8b0f 100644
--- 
a/content/docs/latest/_sources/platforms/arm64/qemu/boards/qemu-armv8a/index.rst.txt
+++ 
b/content/docs/latest/_sources/platforms/arm64/qemu/boards/qemu-armv8a/index.rst.txt
@@ -227,6 +227,11 @@ Running with QEMU:
     mnt/
     proc/
 
+With ``security_model=none``, ``stat()`` shows the owner of the host file.
+To keep the owner, the group and the mode that NuttX gives to its files, use
+``security_model=mapped-xattr``. QEMU then keeps them in extended
+attributes of the host files. See :doc:`/os/filesystem/v9fs`.
+
 --------------------------------------
 Single Core with MTE Expansion (GICv3)
 --------------------------------------
diff --git 
a/content/docs/latest/_sources/reference/user/03_task_control.rst.txt 
b/content/docs/latest/_sources/reference/user/03_task_control.rst.txt
index 3b2c524174..56aec5eee1 100644
--- a/content/docs/latest/_sources/reference/user/03_task_control.rst.txt
+++ b/content/docs/latest/_sources/reference/user/03_task_control.rst.txt
@@ -82,6 +82,12 @@ there are three important configuration options that can 
change that.
      successful obtain the child task's exit status whether it is called
      before the child task exits or not.
 
+     This option is on by default in a kernel build
+     (``CONFIG_BUILD_KERNEL``). There, programs start other programs with
+     ``posix_spawn()``, ``vfork()`` and ``exec()``, and POSIX requires
+     that a parent can get the exit status of a child that exited before
+     the parent waits for it.
+
   -  ``CONFIG_PREALLOC_CHILDSTATUS``. To prevent runaway child status
      allocations and to improve allocation performance, child task exit
      status structures are pre-allocated when the system boots. This
diff --git a/content/docs/latest/_sources/reference/user/07_signals.rst.txt 
b/content/docs/latest/_sources/reference/user/07_signals.rst.txt
index 718362a337..236a4e4997 100644
--- a/content/docs/latest/_sources/reference/user/07_signals.rst.txt
+++ b/content/docs/latest/_sources/reference/user/07_signals.rst.txt
@@ -386,7 +386,9 @@ provided by NuttX:
   If the effect of the set argument is to unblock a pending signal, then
   no wait is performed.
 
-  The original signal mask is restored when sigsuspend() returns.
+  The original signal mask is restored when sigsuspend() returns.  The
+  handlers of the signals that ``set`` unblocks run first, with ``set``
+  still installed, also when sigsuspend() is a system call.
 
   Waiting for an empty signal set stops a task without freeing any
   resources (a very bad idea).
@@ -398,7 +400,6 @@ provided by NuttX:
   **POSIX Compatibility:** Comparable to the POSIX interface of the same
   name. Differences from the POSIX specification include:
 
-  -  POSIX does not indicate that the original signal mask is restored.
   -  POSIX states that sigsuspend() "suspends the task until delivery of a
      signal whose action is either to execute a signal-catching function
      or to terminate the task." Only delivery of the signal is required in
diff --git a/content/docs/latest/_sources/standards/posix.rst.txt 
b/content/docs/latest/_sources/standards/posix.rst.txt
index 4e3d3ac034..6d010beb7a 100644
--- a/content/docs/latest/_sources/standards/posix.rst.txt
+++ b/content/docs/latest/_sources/standards/posix.rst.txt
@@ -193,9 +193,10 @@ POSIX.1 Option Requirements
 | `_POSIX_THREAD_PROCESS_SHARED`_ | 201712L     |                           |
 +---------------------------------+-------------+---------------------------+
 
-.. [#fn9] NuttX provides dummy implementations for ``_POSIX_MEMORY_PROTECTION``
-          which is sufficient for devices without MMU, but doesn't meet the
-          requirement for devices with MMU.
+.. [#fn9] ``mprotect()`` changes the page permissions only with
+          ``CONFIG_ARCH_ADDRENV`` on arm64 and RISC-V.  On other targets it
+          checks the arguments and changes nothing, which is sufficient for
+          devices without MMU.
 
 POSIX PSE54 - Multipurpose
 --------------------------
@@ -2923,11 +2924,16 @@ _POSIX_MEMORY_PROTECTION
 +--------------------------------+----------------+
 | API                            | Support        |
 +================================+================+
-| :c:func:`mprotect`             | Dummy [#fn17]_ |
+| :c:func:`mprotect`             | Yes [#fn17]_   |
 +--------------------------------+----------------+
 
-.. [#fn17] The function returns a success value but doesn't implement
-           the required functionality.
+.. [#fn17] All builds return ``EINVAL`` when ``addr`` is not a multiple of
+           ``sysconf(_SC_PAGESIZE)`` or ``prot`` has an unknown bit.  With
+           ``CONFIG_ARCH_ADDRENV`` on arm64 and RISC-V the function changes
+           the page permissions, and returns ``ENOMEM`` when a page of the
+           range is not mapped.  Other configurations return a success value
+           for a valid request and change nothing: without an MMU the
+           permissions cannot be enforced.
 
 _POSIX_PRIORITIZED_IO
 ---------------------
diff --git a/content/docs/latest/applications/examples/elf/index.html 
b/content/docs/latest/applications/examples/elf/index.html
index aab6d6da51..a4d59ed9f8 100644
--- a/content/docs/latest/applications/examples/elf/index.html
+++ b/content/docs/latest/applications/examples/elf/index.html
@@ -434,21 +434,13 @@ be tested. Default: <code class="docutils literal 
notranslate"><span class="pre"
 </ul>
 <p><strong>Notes</strong>:</p>
 <ol class="arabic">
-<li><p><code class="docutils literal notranslate"><span 
class="pre">CFLAGS</span></code> should be provided in <code class="docutils 
literal notranslate"><span class="pre">CELFFLAGS</span></code>. RAM and FLASH 
memory regions may
-require long allcs. For ARM, this might be:</p>
-<div class="highlight-none notranslate"><div 
class="highlight"><pre><span></span>CELFFLAGS = $(CFLAGS) -mlong-calls
-</pre></div>
-</div>
-<p>Similarly for C++ flags which must be provided in <code class="docutils 
literal notranslate"><span class="pre">CXXELFFLAGS</span></code>.</p>
-</li>
-<li><p>Your top-level <code class="docutils literal notranslate"><span 
class="pre">nuttx/Make.defs</span></code> file must also include an appropriate
-definition, <code class="docutils literal notranslate"><span 
class="pre">LDELFFLAGS</span></code>, to generate a relocatable ELF object. 
With GNU LD,
-this should include <code class="docutils literal notranslate"><span 
class="pre">-r</span></code> and <code class="docutils literal 
notranslate"><span class="pre">-e</span> <span class="pre">main</span></code> 
(or <code class="docutils literal notranslate"><span 
class="pre">_main</span></code> on some platforms).:</p>
-<div class="highlight-none notranslate"><div 
class="highlight"><pre><span></span>LDELFFLAGS = -r -e main
-</pre></div>
-</div>
-<p>If you use GCC to link, you make also need to include <code class="docutils 
literal notranslate"><span class="pre">-nostdlib</span></code>.</p>
-</li>
+<li><p>The arch <code class="docutils literal notranslate"><span 
class="pre">Toolchain.defs</span></code> sets <code class="docutils literal 
notranslate"><span class="pre">CELFFLAGS</span></code>, <code class="docutils 
literal notranslate"><span class="pre">CXXELFFLAGS</span></code> and
+<code class="docutils literal notranslate"><span 
class="pre">LDELFFLAGS</span></code>. For example, on ARM they contain <code 
class="docutils literal notranslate"><span 
class="pre">-mlong-calls</span></code>, the entry
+point <code class="docutils literal notranslate"><span 
class="pre">_start</span></code> and the linker script <code class="docutils 
literal notranslate"><span class="pre">libs/libc/elf/gnu-elf.ld</span></code>. 
A board
+<code class="docutils literal notranslate"><span 
class="pre">scripts/Make.defs</span></code> can add an option with <code 
class="docutils literal notranslate"><span class="pre">+=</span></code>, for 
example
+<code class="docutils literal notranslate"><span class="pre">LDELFFLAGS</span> 
<span class="pre">+=</span> <span class="pre">-melf32lriscv</span></code>. Do 
not set these variables again with
+<code class="docutils literal notranslate"><span class="pre">=</span></code>: 
the board then loses the options that the arch adds for the
+configuration, for example <code class="docutils literal notranslate"><span 
class="pre">crt0.o</span></code> and the PIC and FDPIC options.</p></li>
 <li><p>ELF size: The ELF files in this example are, be default, quite large 
because
 they include a lot of build garbage. You can greatly reduce the size of the
 ELF binaries are using the <code class="docutils literal notranslate"><span 
class="pre">objcopy</span> <span class="pre">--strip-unneeded</span></code> 
command to remove
@@ -459,15 +451,6 @@ Windows-native binary format.</p>
 <p>If you really want to do this, you can create a NuttX x86 buildroot 
toolchain
 and use that be build the ELF executables for the ROMFS file system.</p>
 </li>
-<li><p>Linker scripts. You might also want to use a linker scripts to combine
-sections better. An example linker script is at
-<code class="docutils literal notranslate"><span 
class="pre">nuttx/binfmt/elf/gnu-elf.ld</span></code>. That example might have 
to be tuned for
-your particular linker output to position additional sections correctly. The
-GNU LD <code class="docutils literal notranslate"><span 
class="pre">LDELFFLAGS</span></code> then might be:</p>
-<div class="highlight-none notranslate"><div 
class="highlight"><pre><span></span>LDELFFLAGS = -r -e main 
-T$(TOPDIR)/binfmt/elf/gnu-elf.ld
-</pre></div>
-</div>
-</li>
 <li><p>When generating the <code class="docutils literal notranslate"><span 
class="pre">romfs.img</span></code> for external filesystem the image (<code 
class="docutils literal notranslate"><span class="pre">romfs.img</span></code>)
 needs to be manually copied to the start of the configured <code 
class="docutils literal notranslate"><span 
class="pre">CONFIG_EXAMPLES_ELF_DEVPATH</span></code>
 using <code class="docutils literal notranslate"><span 
class="pre">openocd</span></code> or your preferred programmer.</p></li>
diff --git a/content/docs/latest/applications/examples/module/index.html 
b/content/docs/latest/applications/examples/module/index.html
index 8c04c33ae2..b94613a2a8 100644
--- a/content/docs/latest/applications/examples/module/index.html
+++ b/content/docs/latest/applications/examples/module/index.html
@@ -428,21 +428,12 @@ be tested. Default: <code class="docutils literal 
notranslate"><span class="pre"
 </ul>
 <p><strong>Notes</strong>:</p>
 <ol class="arabic">
-<li><p><code class="docutils literal notranslate"><span 
class="pre">CFLAGS</span></code> should be provided in <code class="docutils 
literal notranslate"><span class="pre">CMODULEFLAGS</span></code>. RAM and 
FLASH memory regions
-may require long allcs. For ARM, this might be:</p>
-<div class="highlight-none notranslate"><div 
class="highlight"><pre><span></span>CMODULEFLAGS = $(CFLAGS) -mlong-calls
-</pre></div>
-</div>
-<p>Similarly for C++ flags which must be provided in <code class="docutils 
literal notranslate"><span class="pre">CXXMODULEFLAGS</span></code>.</p>
-</li>
-<li><p>Your top-level <code class="docutils literal notranslate"><span 
class="pre">nuttx/Make.defs</span></code> file must also include an appropriate
-definition, LDMODULEFLAGS, to generate a relocatable ELF object. With GNU LD,
-this should include <code class="docutils literal notranslate"><span 
class="pre">-r</span></code> and <code class="docutils literal 
notranslate"><span class="pre">-e</span> <span class="pre">&lt;entry</span> 
<span class="pre">point&gt;</span></code>.:</p>
-<div class="highlight-none notranslate"><div 
class="highlight"><pre><span></span>LDMODULEFLAGS = -r -e module_initialize
-</pre></div>
-</div>
-<p>If you use GCC to link, you make also need to include <code class="docutils 
literal notranslate"><span class="pre">-nostdlib</span></code>.</p>
-</li>
+<li><p>The arch <code class="docutils literal notranslate"><span 
class="pre">Toolchain.defs</span></code> sets <code class="docutils literal 
notranslate"><span class="pre">CMODULEFLAGS</span></code> and <code 
class="docutils literal notranslate"><span 
class="pre">LDMODULEFLAGS</span></code>. For
+example, on ARM they contain <code class="docutils literal notranslate"><span 
class="pre">-mlong-calls</span></code>, <code class="docutils literal 
notranslate"><span class="pre">-r</span></code> and the linker script
+<code class="docutils literal notranslate"><span 
class="pre">libs/libc/elf/gnu-elf.ld</span></code>. A board <code 
class="docutils literal notranslate"><span 
class="pre">scripts/Make.defs</span></code> can add an option
+with <code class="docutils literal notranslate"><span 
class="pre">+=</span></code>, for example <code class="docutils literal 
notranslate"><span class="pre">LDMODULEFLAGS</span> <span class="pre">+=</span> 
<span class="pre">-melf32lriscv</span></code>. Do not set these
+variables again with <code class="docutils literal notranslate"><span 
class="pre">=</span></code>: the board then loses the options that the arch
+adds for the configuration, for example the FDPIC options.</p></li>
 <li><p>This example also requires <code class="docutils literal 
notranslate"><span class="pre">genromfs</span></code>. <code class="docutils 
literal notranslate"><span class="pre">genromfs</span></code> can be build as 
part of the
 nuttx toolchain. Or can built from the <code class="docutils literal 
notranslate"><span class="pre">genromfs</span></code> sources that can be found
 in the NuttX tools repository (<code class="docutils literal 
notranslate"><span class="pre">genromfs-0.5.2.tar.gz</span></code>). In any 
event, the
@@ -458,15 +449,6 @@ Windows-native binary format.</p>
 toolchain and use that be build the ELF executables for the ROMFS file
 system.</p>
 </li>
-<li><p>Linker scripts. You might also want to use a linker scripts to combine
-sections better. An example linker script is at
-<code class="docutils literal notranslate"><span 
class="pre">nuttx/libc/elf/gnu-elf.ld</span></code>. That example might have to 
be tuned for your
-particular linker output to position additional sections correctly. The GNU
-LD <code class="docutils literal notranslate"><span 
class="pre">LDMODULEFLAGS</span></code> then might be:</p>
-<div class="highlight-none notranslate"><div 
class="highlight"><pre><span></span>LDMODULEFLAGS = -r -e module_initialize 
-T$(TOPDIR)/libc/elf/gnu-elf.ld
-</pre></div>
-</div>
-</li>
 </ol>
 </section>
 
diff --git a/content/docs/latest/applications/examples/posix_spawn/index.html 
b/content/docs/latest/applications/examples/posix_spawn/index.html
index 1446059220..a560b123f9 100644
--- a/content/docs/latest/applications/examples/posix_spawn/index.html
+++ b/content/docs/latest/applications/examples/posix_spawn/index.html
@@ -439,23 +439,13 @@ executables to be tested. Default: <code class="docutils 
literal notranslate"><s
 </ul>
 <p><strong>Notes</strong>:</p>
 <ol class="arabic">
-<li><dl>
-<dt><code class="docutils literal notranslate"><span 
class="pre">CFLAGS</span></code> should be provided in <code class="docutils 
literal notranslate"><span class="pre">CELFFLAGS</span></code>. RAM and FLASH 
memory regions may</dt><dd><p>require long allcs. For ARM, this might be:</p>
-<div class="highlight-none notranslate"><div 
class="highlight"><pre><span></span>CELFFLAGS = $(CFLAGS) -mlong-calls
-</pre></div>
-</div>
-<p>Similarly for C++ flags which must be provided in <code class="docutils 
literal notranslate"><span class="pre">CXXELFFLAGS</span></code>.</p>
-</dd>
-</dl>
-</li>
-<li><p>Your top-level <code class="docutils literal notranslate"><span 
class="pre">nuttx/Make.defs</span></code> file must also include an appropriate
-definition, <code class="docutils literal notranslate"><span 
class="pre">LDELFFLAGS</span></code>, to generate a relocatable ELF object. 
With GNU LD,
-this should include <code class="docutils literal notranslate"><span 
class="pre">-r</span></code> and <code class="docutils literal 
notranslate"><span class="pre">-e</span> <span class="pre">main</span></code> 
(or <code class="docutils literal notranslate"><span 
class="pre">_main</span></code> on some platforms).:</p>
-<div class="highlight-none notranslate"><div 
class="highlight"><pre><span></span>LDELFFLAGS = -r -e main
-</pre></div>
-</div>
-<p>If you use GCC to link, you make also need to include <code class="docutils 
literal notranslate"><span class="pre">-nostdlib</span></code>.</p>
-</li>
+<li><p>The arch <code class="docutils literal notranslate"><span 
class="pre">Toolchain.defs</span></code> sets <code class="docutils literal 
notranslate"><span class="pre">CELFFLAGS</span></code>, <code class="docutils 
literal notranslate"><span class="pre">CXXELFFLAGS</span></code> and
+<code class="docutils literal notranslate"><span 
class="pre">LDELFFLAGS</span></code>. For example, on ARM they contain <code 
class="docutils literal notranslate"><span 
class="pre">-mlong-calls</span></code>, the entry
+point <code class="docutils literal notranslate"><span 
class="pre">_start</span></code> and the linker script <code class="docutils 
literal notranslate"><span class="pre">libs/libc/elf/gnu-elf.ld</span></code>. 
A board
+<code class="docutils literal notranslate"><span 
class="pre">scripts/Make.defs</span></code> can add an option with <code 
class="docutils literal notranslate"><span class="pre">+=</span></code>, for 
example
+<code class="docutils literal notranslate"><span class="pre">LDELFFLAGS</span> 
<span class="pre">+=</span> <span class="pre">-melf32lriscv</span></code>. Do 
not set these variables again with
+<code class="docutils literal notranslate"><span class="pre">=</span></code>: 
the board then loses the options that the arch adds for the
+configuration, for example <code class="docutils literal notranslate"><span 
class="pre">crt0.o</span></code> and the PIC and FDPIC options.</p></li>
 <li><p>This example also requires <code class="docutils literal 
notranslate"><span class="pre">genromfs</span></code>. <code class="docutils 
literal notranslate"><span class="pre">genromfs</span></code> can be build as 
part of the
 nuttx toolchain. Or can built from the <code class="docutils literal 
notranslate"><span class="pre">genromfs</span></code> sources that can be found
 in the NuttX tools repository (<code class="docutils literal 
notranslate"><span class="pre">genromfs-0.5.2.tar.gz</span></code>). In any 
event, the
@@ -470,15 +460,6 @@ Windows-native binary format.</p>
 <p>If you really want to do this, you can create a NuttX x86 buildroot 
toolchain
 and use that be build the ELF executables for the ROMFS file system.</p>
 </li>
-<li><p>Linker scripts. You might also want to use a linker scripts to combine
-sections better. An example linker script is at
-<code class="docutils literal notranslate"><span 
class="pre">nuttx/binfmt/elf/gnu-elf.ld</span></code>. That example might have 
to be tuned for
-your particular linker output to position additional sections correctly. The
-GNU LD <code class="docutils literal notranslate"><span 
class="pre">LDELFFLAGS</span></code> then might be:</p>
-<div class="highlight-none notranslate"><div 
class="highlight"><pre><span></span>LDELFFLAGS = -r -e main 
-T$(TOPDIR)/binfmt/elf/gnu-elf.ld
-</pre></div>
-</div>
-</li>
 </ol>
 </section>
 
diff --git a/content/docs/latest/applications/examples/sotest/index.html 
b/content/docs/latest/applications/examples/sotest/index.html
index 5da1485558..f84423d421 100644
--- a/content/docs/latest/applications/examples/sotest/index.html
+++ b/content/docs/latest/applications/examples/sotest/index.html
@@ -427,21 +427,12 @@ be tested. Default: <code class="docutils literal 
notranslate"><span class="pre"
 </ul>
 <p><strong>Notes</strong>:</p>
 <ol class="arabic">
-<li><p><code class="docutils literal notranslate"><span 
class="pre">CFLAGS</span></code> should be provided in <code class="docutils 
literal notranslate"><span class="pre">CMODULEFLAGS</span></code>. RAM and 
FLASH memory regions
-may require long allcs. For ARM, this might be:</p>
-<div class="highlight-none notranslate"><div 
class="highlight"><pre><span></span>CMODULEFLAGS = $(CFLAGS) -mlong-calls
-</pre></div>
-</div>
-<p>Similarly for C++ flags which must be provided in <code class="docutils 
literal notranslate"><span class="pre">CXXMODULEFLAGS</span></code>.</p>
-</li>
-<li><p>Your top-level <code class="docutils literal notranslate"><span 
class="pre">nuttx/Make.defs</span></code> file must also include an appropriate
-definition, <code class="docutils literal notranslate"><span 
class="pre">LDMODULEFLAGS</span></code>, to generate a relocatable ELF object. 
With GNU
-LD, this should include <code class="docutils literal notranslate"><span 
class="pre">-r</span></code> and <code class="docutils literal 
notranslate"><span class="pre">-e</span> <span class="pre">&lt;entry</span> 
<span class="pre">point&gt;</span></code>.:</p>
-<div class="highlight-none notranslate"><div 
class="highlight"><pre><span></span>LDMODULEFLAGS = -r -e module_initialize
-</pre></div>
-</div>
-<p>If you use GCC to link, you make also need to include <code class="docutils 
literal notranslate"><span class="pre">-nostdlib</span></code>.</p>
-</li>
+<li><p>The arch <code class="docutils literal notranslate"><span 
class="pre">Toolchain.defs</span></code> sets <code class="docutils literal 
notranslate"><span class="pre">CMODULEFLAGS</span></code> and <code 
class="docutils literal notranslate"><span 
class="pre">LDMODULEFLAGS</span></code>. For
+example, on ARM they contain <code class="docutils literal notranslate"><span 
class="pre">-mlong-calls</span></code>, <code class="docutils literal 
notranslate"><span class="pre">-r</span></code> and the linker script
+<code class="docutils literal notranslate"><span 
class="pre">libs/libc/elf/gnu-elf.ld</span></code>. A board <code 
class="docutils literal notranslate"><span 
class="pre">scripts/Make.defs</span></code> can add an option
+with <code class="docutils literal notranslate"><span 
class="pre">+=</span></code>, for example <code class="docutils literal 
notranslate"><span class="pre">LDMODULEFLAGS</span> <span class="pre">+=</span> 
<span class="pre">-melf32lriscv</span></code>. Do not set these
+variables again with <code class="docutils literal notranslate"><span 
class="pre">=</span></code>: the board then loses the options that the arch
+adds for the configuration, for example the FDPIC options.</p></li>
 <li><p>This example also requires <code class="docutils literal 
notranslate"><span class="pre">genromfs</span></code>. <code class="docutils 
literal notranslate"><span class="pre">genromfs</span></code> can be built as 
part of the
 nuttx toolchain. Or can built from the <code class="docutils literal 
notranslate"><span class="pre">genromfs</span></code> sources that can be found
 in the NuttX tools repository (<code class="docutils literal 
notranslate"><span class="pre">genromfs-0.5.2.tar.gz</span></code>). In any 
event, the
@@ -456,15 +447,6 @@ Windows-native binary format.</p>
 <p>If you really want to do this, you can create a NuttX x86 buildroot 
toolchain
 and use that to build the ELF executables for the ROMFS file system.</p>
 </li>
-<li><p>Linker scripts. You might also want to use a linker script to combine
-sections better. An example linker script is at
-<code class="docutils literal notranslate"><span 
class="pre">nuttx/libc/elf/gnu-elf.ld</span></code>. That example might have to 
be tuned for your
-particular linker output to position additional sections correctly. The GNU
-LD <code class="docutils literal notranslate"><span 
class="pre">LDMODULEFLAGS</span></code> then might be:</p>
-<div class="highlight-none notranslate"><div 
class="highlight"><pre><span></span>LDMODULEFLAGS = -r -e module_initialize 
-T$(TOPDIR)/libc/elf/gnu-elf.ld
-</pre></div>
-</div>
-</li>
 </ol>
 </section>
 
diff --git a/content/docs/latest/guides/concurrency/fork_vfork_migration.html 
b/content/docs/latest/guides/concurrency/fork_vfork_migration.html
index a26e59d646..ac3e97e90e 100644
--- a/content/docs/latest/guides/concurrency/fork_vfork_migration.html
+++ b/content/docs/latest/guides/concurrency/fork_vfork_migration.html
@@ -474,10 +474,11 @@ kernel build) select it today.</p>
 <p>The <code class="docutils literal notranslate"><span 
class="pre">vfork()</span></code> parent is now resumed when the child’s TCB is 
torn down, so by
 the time it runs the child is completely gone.  Where the child called
 <code class="docutils literal notranslate"><span 
class="pre">exec()</span></code> this makes no difference – <code 
class="docutils literal notranslate"><span 
class="pre">exec_swap()</span></code> has already given the
-loaded program the child’s pid, and that program is still running, so
-<code class="docutils literal notranslate"><span 
class="pre">waitpid()</span></code> behaves normally.  Where the child called 
<code class="docutils literal notranslate"><span 
class="pre">_exit()</span></code>,
-<code class="docutils literal notranslate"><span 
class="pre">waitpid()</span></code> can only return its status if <code 
class="docutils literal notranslate"><span 
class="pre">CONFIG_SCHED_CHILD_STATUS</span></code> is
-enabled; otherwise it returns <code class="docutils literal notranslate"><span 
class="pre">ECHILD</span></code>, because NuttX does not retain the
+loaded program the child’s pid, so <code class="docutils literal 
notranslate"><span class="pre">waitpid()</span></code> behaves normally.  Where 
the
+child called <code class="docutils literal notranslate"><span 
class="pre">_exit()</span></code>, or the loaded program exits before the 
parent calls
+<code class="docutils literal notranslate"><span 
class="pre">waitpid()</span></code>, <code class="docutils literal 
notranslate"><span class="pre">waitpid()</span></code> can only return its 
status if
+<code class="docutils literal notranslate"><span 
class="pre">CONFIG_SCHED_CHILD_STATUS</span></code> is enabled (the default in 
a kernel build);
+otherwise it returns <code class="docutils literal notranslate"><span 
class="pre">ECHILD</span></code>, because NuttX does not retain the
 status of a task that no longer exists.  That is a pre-existing property of
 that configuration, not a change:  the previous implementation blocked in a
 libc <code class="docutils literal notranslate"><span 
class="pre">waitpid(WNOWAIT)</span></code> and an application’s own <code 
class="docutils literal notranslate"><span class="pre">waitpid()</span></code> 
afterwards hit
diff --git a/content/docs/latest/guides/porting/port_bootsequence.html 
b/content/docs/latest/guides/porting/port_bootsequence.html
index 543c1e7c12..e64a702065 100644
--- a/content/docs/latest/guides/porting/port_bootsequence.html
+++ b/content/docs/latest/guides/porting/port_bootsequence.html
@@ -151,13 +151,7 @@
 <li class="toctree-l2"><a class="reference internal" 
href="../build/platform_directories.html">Platform Directories</a></li>
 <li class="toctree-l2"><a class="reference internal" 
href="customboards.html">Custom Boards How-To</a></li>
 <li class="toctree-l2"><a class="reference internal" 
href="include_files_board_h.html">Including Files in board.h</a></li>
-<li class="toctree-l2 current"><a class="reference internal" 
href="port.html">How to port</a><ul class="current">
-<li class="toctree-l3 current"><a class="current reference internal" 
href="#">The diagram of boot sequence</a></li>
-<li class="toctree-l3"><a class="reference internal" 
href="port_relatedkernelconfigrations.html">The list of related kernel 
configurations</a></li>
-<li class="toctree-l3"><a class="reference internal" 
href="port.html#porting-procedure">Porting procedure</a></li>
-<li class="toctree-l3"><a class="reference internal" 
href="port.html#porting-case-studies">Porting Case Studies</a></li>
-</ul>
-</li>
+<li class="toctree-l2"><a class="reference internal" href="port.html">How to 
port</a></li>
 <li class="toctree-l2 current"><a class="current reference internal" 
href="#">The diagram of boot sequence</a></li>
 <li class="toctree-l2"><a class="reference internal" 
href="port_relatedkernelconfigrations.html">The list of related kernel 
configurations</a></li>
 <li class="toctree-l2"><a class="reference internal" 
href="specialstuff_in_nuttxheaderfiles.html">Why can’t I put my special stuff 
in NuttX header files?</a></li>
diff --git 
a/content/docs/latest/guides/porting/port_relatedkernelconfigrations.html 
b/content/docs/latest/guides/porting/port_relatedkernelconfigrations.html
index d718a3e872..107389719a 100644
--- a/content/docs/latest/guides/porting/port_relatedkernelconfigrations.html
+++ b/content/docs/latest/guides/porting/port_relatedkernelconfigrations.html
@@ -151,13 +151,7 @@
 <li class="toctree-l2"><a class="reference internal" 
href="../build/platform_directories.html">Platform Directories</a></li>
 <li class="toctree-l2"><a class="reference internal" 
href="customboards.html">Custom Boards How-To</a></li>
 <li class="toctree-l2"><a class="reference internal" 
href="include_files_board_h.html">Including Files in board.h</a></li>
-<li class="toctree-l2 current"><a class="reference internal" 
href="port.html">How to port</a><ul class="current">
-<li class="toctree-l3"><a class="reference internal" 
href="port_bootsequence.html">The diagram of boot sequence</a></li>
-<li class="toctree-l3 current"><a class="current reference internal" 
href="#">The list of related kernel configurations</a></li>
-<li class="toctree-l3"><a class="reference internal" 
href="port.html#porting-procedure">Porting procedure</a></li>
-<li class="toctree-l3"><a class="reference internal" 
href="port.html#porting-case-studies">Porting Case Studies</a></li>
-</ul>
-</li>
+<li class="toctree-l2"><a class="reference internal" href="port.html">How to 
port</a></li>
 <li class="toctree-l2"><a class="reference internal" 
href="port_bootsequence.html">The diagram of boot sequence</a></li>
 <li class="toctree-l2 current"><a class="current reference internal" 
href="#">The list of related kernel configurations</a></li>
 <li class="toctree-l2"><a class="reference internal" 
href="specialstuff_in_nuttxheaderfiles.html">Why can’t I put my special stuff 
in NuttX header files?</a></li>
diff --git a/content/docs/latest/guides/programs/fully_linked_elf.html 
b/content/docs/latest/guides/programs/fully_linked_elf.html
index e3cd493e6a..57739bffdf 100644
--- a/content/docs/latest/guides/programs/fully_linked_elf.html
+++ b/content/docs/latest/guides/programs/fully_linked_elf.html
@@ -488,7 +488,7 @@ NuttX package: <code class="docutils literal 
notranslate"><span class="pre">nutt
 <div 
class="admonition-here-is-an-alternative-minimal-and-possibly-outdated-version 
admonition">
 <p class="admonition-title">Here is an alternative minimal (and possibly 
outdated) version</p>
 <div class="sphinx_collapse docutils">
-<input class="sphinx_collapse__input" 
id="067e4e4e-7b94-4858-8389-4246981d846a" 
name="067e4e4e-7b94-4858-8389-4246981d846a" type="checkbox"><label 
class="sphinx_collapse__label" for="067e4e4e-7b94-4858-8389-4246981d846a"><i 
class="sphinx_collapse__icon"></i>Show content:</label><div 
class="sphinx_collapse__content docutils">
+<input class="sphinx_collapse__input" 
id="7b2cda72-3f8d-4fb8-93f9-847206cc98e1" 
name="7b2cda72-3f8d-4fb8-93f9-847206cc98e1" type="checkbox"><label 
class="sphinx_collapse__label" for="7b2cda72-3f8d-4fb8-93f9-847206cc98e1"><i 
class="sphinx_collapse__icon"></i>Show content:</label><div 
class="sphinx_collapse__content docutils">
 <div class="highlight-text notranslate"><div 
class="highlight"><pre><span></span>SECTIONS
 {
 .text 0x00000000 :
diff --git a/content/docs/latest/guides/programs/partially_linked_elf.html 
b/content/docs/latest/guides/programs/partially_linked_elf.html
index 58cbdd815b..3b587e4dea 100644
--- a/content/docs/latest/guides/programs/partially_linked_elf.html
+++ b/content/docs/latest/guides/programs/partially_linked_elf.html
@@ -514,7 +514,7 @@ NuttX package: <code class="docutils literal 
notranslate"><span class="pre">nutt
 <div 
class="admonition-here-is-an-alternative-minimal-and-possibly-outdated-version 
admonition">
 <p class="admonition-title">Here is an alternative minimal (and possibly 
outdated) version</p>
 <div class="sphinx_collapse docutils">
-<input class="sphinx_collapse__input" 
id="2afd7bab-57f5-4e7c-984f-46f9f0b4acfe" 
name="2afd7bab-57f5-4e7c-984f-46f9f0b4acfe" type="checkbox"><label 
class="sphinx_collapse__label" for="2afd7bab-57f5-4e7c-984f-46f9f0b4acfe"><i 
class="sphinx_collapse__icon"></i>Show content:</label><div 
class="sphinx_collapse__content docutils">
+<input class="sphinx_collapse__input" 
id="acdd359f-e631-4bf9-b1e7-4ef29187d7ee" 
name="acdd359f-e631-4bf9-b1e7-4ef29187d7ee" type="checkbox"><label 
class="sphinx_collapse__label" for="acdd359f-e631-4bf9-b1e7-4ef29187d7ee"><i 
class="sphinx_collapse__icon"></i>Show content:</label><div 
class="sphinx_collapse__content docutils">
 <div class="highlight-text notranslate"><div 
class="highlight"><pre><span></span>SECTIONS
 {
 .text 0x00000000 :
diff --git a/content/docs/latest/objects.inv b/content/docs/latest/objects.inv
index f7ea0e8baf..72ec31e7f0 100644
Binary files a/content/docs/latest/objects.inv and 
b/content/docs/latest/objects.inv differ
diff --git a/content/docs/latest/os/drivers/character/analog/pot/index.html 
b/content/docs/latest/os/drivers/character/analog/pot/index.html
index 9e0271bf63..9ecdd86256 100644
--- a/content/docs/latest/os/drivers/character/analog/pot/index.html
+++ b/content/docs/latest/os/drivers/character/analog/pot/index.html
@@ -295,6 +295,16 @@ them through chip-specific ioctl commands forwarded via 
<code class="docutils li
 <code class="docutils literal notranslate"><span 
class="pre">ANIOC_MCP445X_*</span></code> ioctls, see
 <code class="docutils literal notranslate"><span 
class="pre">include/nuttx/analog/mcp445x.h</span></code>.</p></td>
 </tr>
+<tr class="row-odd"><td><p>MCP45XX</p></td>
+<td><p>I2C</p></td>
+<td><p>MCP4541, MCP4561, MCP4641 and MCP4661: 7/8-bit
+(129/257 taps), one or two wipers, with a nonvolatile
+wiper register. <code class="docutils literal notranslate"><span 
class="pre">POTIOC_STORE_WIPER</span></code> and
+<code class="docutils literal notranslate"><span 
class="pre">POTIOC_RECALL_WIPER</span></code> use slot 0, the register that
+is loaded at power-up. A store returns <code class="docutils literal 
notranslate"><span class="pre">-EROFS</span></code> when
+the EEPROM is write protected or the wiper is locked.
+Tested on the MCP4561 only.</p></td>
+</tr>
 </tbody>
 </table>
 </section>
diff --git a/content/docs/latest/os/filesystem/index.html 
b/content/docs/latest/os/filesystem/index.html
index 09730ce14d..ca45cd29ce 100644
--- a/content/docs/latest/os/filesystem/index.html
+++ b/content/docs/latest/os/filesystem/index.html
@@ -1150,6 +1150,7 @@ array in <code class="docutils literal notranslate"><span 
class="pre">fs/mount/f
 <li class="toctree-l1"><a class="reference internal" 
href="v9fs.html">V9FS</a></li>
 <li class="toctree-l1"><a class="reference internal" 
href="v9fs.html#adding-v9fs-to-the-nuttx-configuration">Adding V9FS to the 
NuttX Configuration</a></li>
 <li class="toctree-l1"><a class="reference internal" 
href="v9fs.html#symbolic-links">Symbolic Links</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="v9fs.html#owner-and-group">Owner and Group</a></li>
 <li class="toctree-l1"><a class="reference internal" 
href="v9fs.html#v9fs-mount-command">V9FS Mount Command</a></li>
 </ul>
 </div>
diff --git a/content/docs/latest/os/filesystem/v9fs.html 
b/content/docs/latest/os/filesystem/v9fs.html
index b476e68c17..b956e84b27 100644
--- a/content/docs/latest/os/filesystem/v9fs.html
+++ b/content/docs/latest/os/filesystem/v9fs.html
@@ -222,6 +222,30 @@ last component of the path. <code class="docutils literal 
notranslate"><span cla
 target. A link with an absolute target is not followed and fails with
 <code class="docutils literal notranslate"><span 
class="pre">ENOTSUP</span></code>, because the target is a path on the 
server.</p>
 </section>
+<section id="owner-and-group">
+<h1>Owner and Group<a class="headerlink" href="#owner-and-group" 
title="Permalink to this heading"></a></h1>
+<p>With <code class="docutils literal notranslate"><span 
class="pre">CONFIG_SCHED_USER_IDENTITY</span></code>, V9FS attaches to the 
server once for
+each effective user ID that uses the mount. A new file, directory or
+symbolic link gets the effective user ID and the effective group ID of the
+caller. <code class="docutils literal notranslate"><span 
class="pre">chown()</span></code> and <code class="docutils literal 
notranslate"><span class="pre">fchown()</span></code> send <code 
class="docutils literal notranslate"><span class="pre">Tsetattr</span></code>, 
and <code class="docutils literal notranslate"><span 
class="pre">stat()</span></code>
+shows the owner and the group that the server returns.</p>
+<p>The server decides what it does with the owner. In QEMU, the
+<code class="docutils literal notranslate"><span 
class="pre">security_model</span></code> option of <code class="docutils 
literal notranslate"><span class="pre">-fsdev</span></code> or <code 
class="docutils literal notranslate"><span class="pre">-virtfs</span></code> 
selects it:</p>
+<blockquote>
+<div><ul class="simple">
+<li><p><code class="docutils literal notranslate"><span 
class="pre">mapped-xattr</span></code>: QEMU keeps the owner, the group and the 
mode of a
+file in extended attributes of the host file (<code class="docutils literal 
notranslate"><span class="pre">user.virtfs.uid</span></code>,
+<code class="docutils literal notranslate"><span 
class="pre">user.virtfs.gid</span></code>, <code class="docutils literal 
notranslate"><span class="pre">user.virtfs.mode</span></code>). Use this model 
when
+NuttX needs the owner and the group of its files.</p></li>
+<li><p><code class="docutils literal notranslate"><span 
class="pre">mapped-file</span></code>: the same, in hidden <code 
class="docutils literal notranslate"><span 
class="pre">.virtfs_metadata</span></code> files.</p></li>
+<li><p><code class="docutils literal notranslate"><span 
class="pre">passthrough</span></code>: QEMU changes the owner of the host file. 
QEMU must
+run as root, else the creation of a file fails with <code class="docutils 
literal notranslate"><span class="pre">EPERM</span></code>.</p></li>
+<li><p><code class="docutils literal notranslate"><span 
class="pre">none</span></code>: QEMU ignores the owner of a new file. <code 
class="docutils literal notranslate"><span class="pre">stat()</span></code> 
shows the
+owner of the host file, and <code class="docutils literal notranslate"><span 
class="pre">chown()</span></code> fails with <code class="docutils literal 
notranslate"><span class="pre">EPERM</span></code> unless
+QEMU runs as root.</p></li>
+</ul>
+</div></blockquote>
+</section>
 <section id="v9fs-mount-command">
 <h1>V9FS Mount Command<a class="headerlink" href="#v9fs-mount-command" 
title="Permalink to this heading"></a></h1>
 <p>In V9FS, we have some special parameters</p>
@@ -246,6 +270,8 @@ passing. Here are some examples:</p>
 <span class="go">-device 
virtio-9p-device,id=fs1,fsdev=fsdev1,mount_tag=&lt;mount_tag&gt;</span>
 </pre></div>
 </div>
+<p>Use <code class="docutils literal notranslate"><span 
class="pre">security_model=mapped-xattr</span></code> to keep the owner and the 
group of the
+files (see <a class="reference internal" href="#owner-and-group">Owner and 
Group</a>).</p>
 <p>For how to start virtio-9p in QEMU, please refer to the document:</p>
 <blockquote>
 <div><ul class="simple">
diff --git a/content/docs/latest/os/libs/libbuiltin.html 
b/content/docs/latest/os/libs/libbuiltin.html
index 25e7cbb702..fb9810efaa 100644
--- a/content/docs/latest/os/libs/libbuiltin.html
+++ b/content/docs/latest/os/libs/libbuiltin.html
@@ -241,6 +241,14 @@ to the one module you care about.  Data is written under
 <code class="docutils literal notranslate"><span 
class="pre">CONFIG_COVERAGE_DEFAULT_PREFIX</span></code>, <code class="docutils 
literal notranslate"><span class="pre">/data</span></code> by default, and
 <code class="docutils literal notranslate"><span 
class="pre">CONFIG_COVERAGE_GCOV_DUMP_REBOOT</span></code> dumps it on reboot.  
From a shell it is
 <code class="docutils literal notranslate"><span class="pre">gcov</span> <span 
class="pre">dump</span> <span class="pre">-d</span> <span 
class="pre">&lt;path&gt;</span></code>.</p>
+<p>A loadable module of a flat or protected build (an ELF program or a shared
+library) can use the coverage of <code class="docutils literal 
notranslate"><span class="pre">CONFIG_COVERAGE_ALL</span></code> with
+<code class="docutils literal notranslate"><span 
class="pre">CONFIG_COVERAGE_MINI</span></code> and GCC.  The system symbol 
table exports the
+coverage functions to the module, and the loader removes the data of the
+module when it unloads the module.  The unload does not dump this data: dump
+it while the module is loaded, with <code class="docutils literal 
notranslate"><span class="pre">gcov</span> <span class="pre">-d</span> <span 
class="pre">&lt;path&gt;</span></code> or with a call to
+<code class="docutils literal notranslate"><span 
class="pre">__gcov_dump()</span></code> in the module.  The other runtimes do 
not export their
+coverage functions, so build a module for them without the coverage 
options.</p>
 </section>
 <section id="profiling">
 <h2>Profiling<a class="headerlink" href="#profiling" title="Permalink to this 
heading"></a></h2>
diff --git 
a/content/docs/latest/platforms/arm/rp23xx/boards/pimoroni-pico-plus-2-w/index.html
 
b/content/docs/latest/platforms/arm/rp23xx/boards/pimoroni-pico-plus-2-w/index.html
index 56cee78a5e..3e9f042e53 100644
--- 
a/content/docs/latest/platforms/arm/rp23xx/boards/pimoroni-pico-plus-2-w/index.html
+++ 
b/content/docs/latest/platforms/arm/rp23xx/boards/pimoroni-pico-plus-2-w/index.html
@@ -177,7 +177,7 @@
 <li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#nrf91">nrf91</a></li>
 <li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#qemu">qemu</a></li>
 <li class="toctree-l5 current"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#rp23xx">rp23xx</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#rp23xx-rv">rp23xx-rv</a></li>
+<li class="toctree-l5 current"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#rp23xx-rv">rp23xx-rv</a></li>
 <li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32c0">stm32c0</a></li>
 <li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32c5">stm32c5</a></li>
 <li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32f0">stm32f0</a></li>
diff --git 
a/content/docs/latest/platforms/arm/rtl8730e/boards/rtl8730e_evb/index.html 
b/content/docs/latest/platforms/arm/rtl8730e/boards/rtl8730e_evb/index.html
index 0a529d23a1..e81f3fa332 100644
--- a/content/docs/latest/platforms/arm/rtl8730e/boards/rtl8730e_evb/index.html
+++ b/content/docs/latest/platforms/arm/rtl8730e/boards/rtl8730e_evb/index.html
@@ -292,6 +292,8 @@ the SDK fwlib timer layer</p></li>
 <li><p>General-purpose timers exposed as <code class="docutils literal 
notranslate"><span class="pre">/dev/timerN</span></code> character devices, with
 microsecond timeouts and a periodic expiration callback</p></li>
 <li><p>On-chip watchdog exposed as a <code class="docutils literal 
notranslate"><span class="pre">/dev/watchdog0</span></code> character 
device</p></li>
+<li><p>12-bit ADC exposed as a <code class="docutils literal 
notranslate"><span class="pre">/dev/adc0</span></code> character device, 
sampled in polling
+mode through the SDK fwlib register layer</p></li>
 <li><p>littlefs persistent storage mounted at <code class="docutils literal 
notranslate"><span class="pre">/data</span></code> (a dedicated SPI NOR flash
 partition), backing the Wi-Fi key-value store</p></li>
 <li><p>Wi-Fi station and SoftAP through the <code class="docutils literal 
notranslate"><span class="pre">wapi</span></code> tool</p></li>
@@ -429,6 +431,26 @@ opens the device, sets a timeout, and pings it:</p>
 </pre></div>
 </div>
 </section>
+<section id="adc">
+<h3>adc<a class="headerlink" href="#adc" title="Permalink to this 
heading"></a></h3>
+<p>Minimal NSH with the ADC driver and the <code class="docutils literal 
notranslate"><span class="pre">adc</span></code> example (<code class="docutils 
literal notranslate"><span class="pre">examples/adc</span></code>)
+enabled (no Wi-Fi). The board registers one converter at <code class="docutils 
literal notranslate"><span class="pre">/dev/adc0</span></code> (see
+<code class="docutils literal notranslate"><span 
class="pre">boards/arm/rtl8730e/rtl8730e_evb/src/rtl8730e_adc.c</span></code>) 
listing CH2-CH5,
+which each <code class="docutils literal notranslate"><span 
class="pre">ANIOC_TRIGGER</span></code> samples in list order. The chip has ten
+channels; CH0-CH5 are external and bound to the fixed pads PA0-PA5 (the
+pin-mux table names them <code class="docutils literal notranslate"><span 
class="pre">TOUCHn_ADCn</span></code>), while the rest are internal and
+have no pad. PA0 and PA1 are not bonded out on the RTL8730EAM/EAH packages,
+so the table leaves CH0 and CH1 out. The pads reach the converter through
+the cap-touch function (<code class="docutils literal notranslate"><span 
class="pre">PINMUX_FUNCTION_CAPTOUCH</span></code>, function 18), shared
+with the cap-touch controller and, on PA2-PA5, the DMIC, so those functions
+cannot be used on the same pad. PA3/PA4 are also I2C1 pads and PA4/PA5 are
+UART1 or PWM pads: a config that registers one of those too must drop the
+clashing channel from the table. The input range is 0 to 3.3 V with 12-bit
+samples, reported as raw codes. Exercise it with the example:</p>
+<div class="highlight-none notranslate"><div 
class="highlight"><pre><span></span>nsh&gt; adc -n 1     # sample CH2-CH5 once 
on /dev/adc0
+</pre></div>
+</div>
+</section>
 </section>
 <section id="wi-fi">
 <h2>Wi-Fi<a class="headerlink" href="#wi-fi" title="Permalink to this 
heading"></a></h2>
diff --git 
a/content/docs/latest/platforms/arm/stm32c5/boards/nucleo-c562re/index.html 
b/content/docs/latest/platforms/arm/stm32c5/boards/nucleo-c562re/index.html
index 9675e5526b..7ba1bdefbb 100644
--- a/content/docs/latest/platforms/arm/stm32c5/boards/nucleo-c562re/index.html
+++ b/content/docs/latest/platforms/arm/stm32c5/boards/nucleo-c562re/index.html
@@ -162,28 +162,48 @@
 <li class="toctree-l3"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#architecture">Architecture</a></li>
 <li class="toctree-l3"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#vendor">Vendor</a></li>
 <li class="toctree-l3 current"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#chip">Chip</a><ul class="current">
-<li class="toctree-l4 current"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#families">Families</a><ul 
class="current">
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#unknown">(unknown)</a></li>
-<li class="toctree-l5 current"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#arm">arm</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#arm64">arm64</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#avr">avr</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#hc">hc</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#mips">mips</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#misoc">misoc</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#or1k">or1k</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#renesas">renesas</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#risc-v">risc-v</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#sim">sim</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#sparc">sparc</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#tricore">tricore</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#x86">x86</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#x86-64">x86_64</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#xtensa">xtensa</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#z16">z16</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#z80">z80</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#families">Families</a></li>
+<li class="toctree-l4 current"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#parts">Parts</a><ul class="current">
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#atmega">atmega</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#cxd56xx">cxd56xx</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#esp32">esp32</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#fvp-v8r">fvp-v8r</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#ht32f491x3">ht32f491x3</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#imx9">imx9</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#imxrt">imxrt</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#n32h7">n32h7</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#nrf52">nrf52</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#nrf53">nrf53</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#nrf91">nrf91</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#qemu">qemu</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#rp23xx">rp23xx</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#rp23xx-rv">rp23xx-rv</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32c0">stm32c0</a></li>
+<li class="toctree-l5 current"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32c5">stm32c5</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32f0">stm32f0</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32f1">stm32f1</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32f2">stm32f2</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32f3">stm32f3</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32f4">stm32f4</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32f7">stm32f7</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32g0">stm32g0</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32g4">stm32g4</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32h5">stm32h5</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32h7">stm32h7</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32l0">stm32l0</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32l1">stm32l1</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32l4">stm32l4</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32l5">stm32l5</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32n6">stm32n6</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32u0">stm32u0</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32u3">stm32u3</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32u5">stm32u5</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32wb">stm32wb</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32wl5">stm32wl5</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#tiva">tiva</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#zynq-mpsoc">zynq-mpsoc</a></li>
 </ul>
 </li>
-<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#parts">Parts</a></li>
 </ul>
 </li>
 </ul>
diff --git 
a/content/docs/latest/platforms/arm64/fvp-v8r/boards/fvp-armv8r/index.html 
b/content/docs/latest/platforms/arm64/fvp-v8r/boards/fvp-armv8r/index.html
index 16a9a4c7e6..b9d62e1b4d 100644
--- a/content/docs/latest/platforms/arm64/fvp-v8r/boards/fvp-armv8r/index.html
+++ b/content/docs/latest/platforms/arm64/fvp-v8r/boards/fvp-armv8r/index.html
@@ -160,52 +160,56 @@
 <li class="toctree-l2"><a class="reference internal" 
href="../../../../z80/index.html">Z80</a></li>
 <li class="toctree-l2 current"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html">Tags</a><ul class="current">
 <li class="toctree-l3"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#architecture">Architecture</a></li>
-<li class="toctree-l3"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#vendor">Vendor</a></li>
-<li class="toctree-l3 current"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#chip">Chip</a><ul class="current">
-<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#families">Families</a></li>
-<li class="toctree-l4 current"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#parts">Parts</a><ul class="current">
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#atmega">atmega</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#cxd56xx">cxd56xx</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#esp32">esp32</a></li>
-<li class="toctree-l5 current"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#fvp-v8r">fvp-v8r</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#ht32f491x3">ht32f491x3</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#imx9">imx9</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#imxrt">imxrt</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#n32h7">n32h7</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#nrf52">nrf52</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#nrf53">nrf53</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#nrf91">nrf91</a></li>
-<li class="toctree-l5 current"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#qemu">qemu</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#rp23xx">rp23xx</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#rp23xx-rv">rp23xx-rv</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32c0">stm32c0</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32c5">stm32c5</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32f0">stm32f0</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32f1">stm32f1</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32f2">stm32f2</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32f3">stm32f3</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32f4">stm32f4</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32f7">stm32f7</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32g0">stm32g0</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32g4">stm32g4</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32h5">stm32h5</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32h7">stm32h7</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32l0">stm32l0</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32l1">stm32l1</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32l4">stm32l4</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32l5">stm32l5</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32n6">stm32n6</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32u0">stm32u0</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32u3">stm32u3</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32u5">stm32u5</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32wb">stm32wb</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#stm32wl5">stm32wl5</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#tiva">tiva</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#zynq-mpsoc">zynq-mpsoc</a></li>
+<li class="toctree-l3 current"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#vendor">Vendor</a><ul class="current">
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-aifoundry.html">vendor:aifoundry (1)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-allwinner.html">vendor:allwinner (4)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-amd.html">vendor:amd (1)</a></li>
+<li class="toctree-l4 current"><a class="reference internal" 
href="../../../../../_tags/vendor-arm.html">vendor:arm (5)</a><ul 
class="current">
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../arm/fvp-v8r-aarch32/boards/fvp-armv8r-aarch32/index.html">ARM 
Armv8-R AEM FVP</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../arm/mps/boards/mps2-an500/index.html">MPS2 AN500 
Board</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../arm/mps/boards/mps2-an521/index.html">MPS2 AN521 
Board</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="../../../../arm/mps/boards/mps3-an547/index.html">MPS3 AN547 
Board</a></li>
+<li class="toctree-l5 current"><a class="current reference internal" 
href="#">FVP ARMv8-r</a></li>
 </ul>
 </li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-artery.html">vendor:artery (1)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-bouffalolab.html">vendor:bouffalolab 
(2)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-broadcom.html">vendor:broadcom (2)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-canaan.html">vendor:canaan (2)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-espressif.html">vendor:espressif (35)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-eswin.html">vendor:eswin (3)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-example.html">vendor:example (1)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-gigadevice.html">vendor:gigadevice 
(7)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-holtek.html">vendor:holtek (1)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-hpmicro.html">vendor:hpmicro (2)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-infineon.html">vendor:infineon (4)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-ingenic.html">vendor:ingenic (1)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-maxim.html">vendor:maxim (1)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-microchip.html">vendor:microchip (46)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-moxa.html">vendor:moxa (1)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-nations.html">vendor:nations (1)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-nordic.html">vendor:nordic (17)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-nuvoton.html">vendor:nuvoton (1)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-nxp.html">vendor:nxp (58)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-onsemi.html">vendor:onsemi (1)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-phyplus.html">vendor:phyplus (1)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-quicklogic.html">vendor:quicklogic 
(1)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-raspberry-pi.html">vendor:raspberry-pi 
(18)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-realtek.html">vendor:realtek (4)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-renesas.html">vendor:renesas (7)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-rockchip.html">vendor:rockchip (4)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-sifive.html">vendor:sifive (1)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-silabs.html">vendor:silabs (3)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-sony.html">vendor:sony (1)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-sophgo.html">vendor:sophgo (1)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-st.html">vendor:st (114)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-starfive.html">vendor:starfive (1)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-thead.html">vendor:thead (1)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-ti.html">vendor:ti (10)</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="../../../../../_tags/vendor-zilog.html">vendor:zilog (9)</a></li>
 </ul>
 </li>
+<li class="toctree-l3"><a class="reference internal" 
href="../../../../../_tags/tagsindex.html#chip">Chip</a></li>
 </ul>
 </li>
 </ul>
diff --git 
a/content/docs/latest/platforms/arm64/qemu/boards/qemu-armv8a/index.html 
b/content/docs/latest/platforms/arm64/qemu/boards/qemu-armv8a/index.html
index f565212c73..c38f62f57f 100644
--- a/content/docs/latest/platforms/arm64/qemu/boards/qemu-armv8a/index.html
+++ b/content/docs/latest/platforms/arm64/qemu/boards/qemu-armv8a/index.html
@@ -436,6 +436,10 @@ are supported simultaneously in the netnsh 
configuration</p>
 <span class="go"> proc/</span>
 </pre></div>
 </div>
+<p>With <code class="docutils literal notranslate"><span 
class="pre">security_model=none</span></code>, <code class="docutils literal 
notranslate"><span class="pre">stat()</span></code> shows the owner of the host 
file.
+To keep the owner, the group and the mode that NuttX gives to its files, use
+<code class="docutils literal notranslate"><span 
class="pre">security_model=mapped-xattr</span></code>. QEMU then keeps them in 
extended
+attributes of the host files. See <a class="reference internal" 
href="../../../../../os/filesystem/v9fs.html"><span 
class="doc">V9FS</span></a>.</p>
 </section>
 <section id="single-core-with-mte-expansion-gicv3">
 <h4>Single Core with MTE Expansion (GICv3)<a class="headerlink" 
href="#single-core-with-mte-expansion-gicv3" title="Permalink to this 
heading"></a></h4>
diff --git a/content/docs/latest/reference/user/03_task_control.html 
b/content/docs/latest/reference/user/03_task_control.html
index c176c99e6b..58197495b3 100644
--- a/content/docs/latest/reference/user/03_task_control.html
+++ b/content/docs/latest/reference/user/03_task_control.html
@@ -293,6 +293,11 @@ is in place.</p>
 child task is retained after the child exits and the wait will
 successful obtain the child task’s exit status whether it is called
 before the child task exits or not.</p>
+<p>This option is on by default in a kernel build
+(<code class="docutils literal notranslate"><span 
class="pre">CONFIG_BUILD_KERNEL</span></code>). There, programs start other 
programs with
+<code class="docutils literal notranslate"><span 
class="pre">posix_spawn()</span></code>, <code class="docutils literal 
notranslate"><span class="pre">vfork()</span></code> and <code class="docutils 
literal notranslate"><span class="pre">exec()</span></code>, and POSIX requires
+that a parent can get the exit status of a child that exited before
+the parent waits for it.</p>
 </li>
 <li><p><code class="docutils literal notranslate"><span 
class="pre">CONFIG_PREALLOC_CHILDSTATUS</span></code>. To prevent runaway child 
status
 allocations and to improve allocation performance, child task exit
diff --git a/content/docs/latest/reference/user/07_signals.html 
b/content/docs/latest/reference/user/07_signals.html
index e03c3f4d29..482314b67e 100644
--- a/content/docs/latest/reference/user/07_signals.html
+++ b/content/docs/latest/reference/user/07_signals.html
@@ -761,7 +761,9 @@ the set of signals pointed to by the argument set and then 
suspends the
 task until delivery of a signal to the task.</p>
 <p>If the effect of the set argument is to unblock a pending signal, then
 no wait is performed.</p>
-<p>The original signal mask is restored when sigsuspend() returns.</p>
+<p>The original signal mask is restored when sigsuspend() returns.  The
+handlers of the signals that <code class="docutils literal notranslate"><span 
class="pre">set</span></code> unblocks run first, with <code class="docutils 
literal notranslate"><span class="pre">set</span></code>
+still installed, also when sigsuspend() is a system call.</p>
 <p>Waiting for an empty signal set stops a task without freeing any
 resources (a very bad idea).</p>
 <dl class="field-list simple">
@@ -777,7 +779,6 @@ resources (a very bad idea).</p>
 <p><strong>POSIX Compatibility:</strong> Comparable to the POSIX interface of 
the same
 name. Differences from the POSIX specification include:</p>
 <ul class="simple">
-<li><p>POSIX does not indicate that the original signal mask is 
restored.</p></li>
 <li><p>POSIX states that sigsuspend() “suspends the task until delivery of a
 signal whose action is either to execute a signal-catching function
 or to terminate the task.” Only delivery of the signal is required in
diff --git a/content/docs/latest/searchindex.js 
b/content/docs/latest/searchindex.js
index 4785f677d9..033a07026f 100644
--- a/content/docs/latest/searchindex.js
+++ b/content/docs/latest/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["ReleaseNotes/NuttX-0.1.0", 
"ReleaseNotes/NuttX-0.1.1", "ReleaseNotes/NuttX-0.1.2", 
"ReleaseNotes/NuttX-0.2.1", "ReleaseNotes/NuttX-0.2.2", 
"ReleaseNotes/NuttX-0.2.3", "ReleaseNotes/NuttX-0.2.4", 
"ReleaseNotes/NuttX-0.2.5", "ReleaseNotes/NuttX-0.2.6", 
"ReleaseNotes/NuttX-0.2.7", "ReleaseNotes/NuttX-0.2.8", 
"ReleaseNotes/NuttX-0.2.9", "ReleaseNotes/NuttX-0.3.0", 
"ReleaseNotes/NuttX-0.3.1", "ReleaseNotes/NuttX-0.3.10", 
"ReleaseNotes/NuttX-0.3.11", "ReleaseNote [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["ReleaseNotes/NuttX-0.1.0", 
"ReleaseNotes/NuttX-0.1.1", "ReleaseNotes/NuttX-0.1.2", 
"ReleaseNotes/NuttX-0.2.1", "ReleaseNotes/NuttX-0.2.2", 
"ReleaseNotes/NuttX-0.2.3", "ReleaseNotes/NuttX-0.2.4", 
"ReleaseNotes/NuttX-0.2.5", "ReleaseNotes/NuttX-0.2.6", 
"ReleaseNotes/NuttX-0.2.7", "ReleaseNotes/NuttX-0.2.8", 
"ReleaseNotes/NuttX-0.2.9", "ReleaseNotes/NuttX-0.3.0", 
"ReleaseNotes/NuttX-0.3.1", "ReleaseNotes/NuttX-0.3.10", 
"ReleaseNotes/NuttX-0.3.11", "ReleaseNote [...]
\ No newline at end of file
diff --git a/content/docs/latest/standards/posix.html 
b/content/docs/latest/standards/posix.html
index 1ab3e31080..8c87d64008 100644
--- a/content/docs/latest/standards/posix.html
+++ b/content/docs/latest/standards/posix.html
@@ -668,9 +668,10 @@ Merged into <code class="docutils literal 
notranslate"><span class="pre">POSIX_D
 <aside class="footnote-list brackets">
 <aside class="footnote brackets" id="fn9" role="note">
 <span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" 
href="#id13">9</a><span class="fn-bracket">]</span></span>
-<p>NuttX provides dummy implementations for <code class="docutils literal 
notranslate"><span class="pre">_POSIX_MEMORY_PROTECTION</span></code>
-which is sufficient for devices without MMU, but doesn’t meet the
-requirement for devices with MMU.</p>
+<p><code class="docutils literal notranslate"><span 
class="pre">mprotect()</span></code> changes the page permissions only with
+<code class="docutils literal notranslate"><span 
class="pre">CONFIG_ARCH_ADDRENV</span></code> on arm64 and RISC-V.  On other 
targets it
+checks the arguments and changes nothing, which is sufficient for
+devices without MMU.</p>
 </aside>
 </aside>
 </section>
@@ -4513,15 +4514,20 @@ the required functionality.</p>
 </thead>
 <tbody>
 <tr class="row-even"><td><p><code class="xref c c-func docutils literal 
notranslate"><span class="pre">mprotect()</span></code></p></td>
-<td><p>Dummy <a class="footnote-reference brackets" href="#fn17" id="id23" 
role="doc-noteref"><span class="fn-bracket">[</span>17<span 
class="fn-bracket">]</span></a></p></td>
+<td><p>Yes <a class="footnote-reference brackets" href="#fn17" id="id23" 
role="doc-noteref"><span class="fn-bracket">[</span>17<span 
class="fn-bracket">]</span></a></p></td>
 </tr>
 </tbody>
 </table>
 <aside class="footnote-list brackets">
 <aside class="footnote brackets" id="fn17" role="note">
 <span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" 
href="#id23">17</a><span class="fn-bracket">]</span></span>
-<p>The function returns a success value but doesn’t implement
-the required functionality.</p>
+<p>All builds return <code class="docutils literal notranslate"><span 
class="pre">EINVAL</span></code> when <code class="docutils literal 
notranslate"><span class="pre">addr</span></code> is not a multiple of
+<code class="docutils literal notranslate"><span 
class="pre">sysconf(_SC_PAGESIZE)</span></code> or <code class="docutils 
literal notranslate"><span class="pre">prot</span></code> has an unknown bit.  
With
+<code class="docutils literal notranslate"><span 
class="pre">CONFIG_ARCH_ADDRENV</span></code> on arm64 and RISC-V the function 
changes
+the page permissions, and returns <code class="docutils literal 
notranslate"><span class="pre">ENOMEM</span></code> when a page of the
+range is not mapped.  Other configurations return a success value
+for a valid request and change nothing: without an MMU the
+permissions cannot be enforced.</p>
 </aside>
 </aside>
 </section>

Reply via email to