This is an automated email from the ASF dual-hosted git repository. xiaoxiang781216 pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit 221a4b2e4cd4f8c35a0ef2979c07e5ad91d8ef13 Author: wangjianyu3 <[email protected]> AuthorDate: Sat Sep 5 16:51:36 2026 +0800 boards/risc-v/qemu-rv: switch rv-virt pnsh/pnsh64 to nxinit entrypoint Follow-up to the previous commit, which switched every flat-build rv-virt nsh defconfig from nsh_main to nxinit (init_main) but left pnsh and pnsh64 (CONFIG_BUILD_PROTECTED=y) on nsh_main. Under protected build nxinit's "console sh" service failed to start: posix_spawnp("sh") resolves through the kernel-space binfmt "builtin" loader / BINFS, but the kernel-space g_builtins/g_builtin_count table those rely on was never populated -- CONFIG_BUILD_PROTECTED links apps/builtin/builtin_list.c only into the user blob (nuttx_user), and nothing called the boardctl(BOARDIOC_BUILTINS) hand-off NuttX has provided for this since release 8.1. With that hand-off now issued by apps/system/nxinit early in init_main() (nuttx-apps, "system/nxinit: register g_builtins with the kernel under PROTECTED build"), pnsh/pnsh64 can use nxinit like every other flat-build rv-virt nsh defconfig. Apply the same minimal nxinit-essential delta used for the 23 configs switched previously. Verified on rv-virt:pnsh: `ps` shows init_main as the parent with sh as its Running child, `ls /bin` lists the builtins, and `hello` runs (see the PR description for logs). Assisted-by: opencode-agent/claude-sonnet-5 Signed-off-by: wangjianyu3 <[email protected]> --- boards/risc-v/qemu-rv/rv-virt/configs/pnsh/defconfig | 9 ++++++++- boards/risc-v/qemu-rv/rv-virt/configs/pnsh64/defconfig | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/boards/risc-v/qemu-rv/rv-virt/configs/pnsh/defconfig b/boards/risc-v/qemu-rv/rv-virt/configs/pnsh/defconfig index c2b559e05b2..4da643db487 100644 --- a/boards/risc-v/qemu-rv/rv-virt/configs/pnsh/defconfig +++ b/boards/risc-v/qemu-rv/rv-virt/configs/pnsh/defconfig @@ -37,11 +37,15 @@ CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_TASK_STACKSIZE=4096 CONFIG_ELF=y +CONFIG_ETC_ROMFS=y CONFIG_EXAMPLES_HELLO=y +CONFIG_EXPERIMENTAL=y +CONFIG_FS_BINFS=y CONFIG_FS_HOSTFS=y CONFIG_FS_PROCFS=y +CONFIG_FS_ROMFS=y CONFIG_IDLETHREAD_STACKSIZE=2048 -CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_ENTRYPOINT="init_main" CONFIG_INIT_STACKSIZE=3072 CONFIG_LIBC_ENVPATH=y CONFIG_LIBC_EXECFUNCS=y @@ -60,6 +64,8 @@ CONFIG_RAM_START=0x80000000 CONFIG_READLINE_CMD_HISTORY=y CONFIG_RISCV_SEMIHOSTING_HOSTFS=y CONFIG_RR_INTERVAL=200 +CONFIG_SCHED_CHILD_STATUS=y +CONFIG_SCHED_HAVE_PARENT=y CONFIG_SCHED_WAITPID=y CONFIG_SERIAL_UART_ARCH_MMIO=y CONFIG_STACK_COLORATION=y @@ -67,6 +73,7 @@ CONFIG_START_MONTH=12 CONFIG_START_YEAR=2021 CONFIG_SYMTAB_ORDEREDBYNAME=y CONFIG_SYSTEM_NSH=y +CONFIG_SYSTEM_NXINIT=y CONFIG_TESTING_GETPRIME=y CONFIG_TESTING_OSTEST=y CONFIG_USEC_PER_TICK=1000 diff --git a/boards/risc-v/qemu-rv/rv-virt/configs/pnsh64/defconfig b/boards/risc-v/qemu-rv/rv-virt/configs/pnsh64/defconfig index 353070577c6..3f1ba1807f7 100644 --- a/boards/risc-v/qemu-rv/rv-virt/configs/pnsh64/defconfig +++ b/boards/risc-v/qemu-rv/rv-virt/configs/pnsh64/defconfig @@ -37,11 +37,15 @@ CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_TASK_STACKSIZE=4096 CONFIG_ELF=y +CONFIG_ETC_ROMFS=y CONFIG_EXAMPLES_HELLO=y +CONFIG_EXPERIMENTAL=y +CONFIG_FS_BINFS=y CONFIG_FS_HOSTFS=y CONFIG_FS_PROCFS=y +CONFIG_FS_ROMFS=y CONFIG_IDLETHREAD_STACKSIZE=2048 -CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_ENTRYPOINT="init_main" CONFIG_LIBC_ENVPATH=y CONFIG_LIBC_EXECFUNCS=y CONFIG_LIBC_PERROR_STDOUT=y @@ -59,6 +63,8 @@ CONFIG_RAM_START=0x80000000 CONFIG_READLINE_CMD_HISTORY=y CONFIG_RISCV_SEMIHOSTING_HOSTFS=y CONFIG_RR_INTERVAL=200 +CONFIG_SCHED_CHILD_STATUS=y +CONFIG_SCHED_HAVE_PARENT=y CONFIG_SCHED_WAITPID=y CONFIG_SERIAL_UART_ARCH_MMIO=y CONFIG_STACK_COLORATION=y @@ -66,6 +72,7 @@ CONFIG_START_MONTH=12 CONFIG_START_YEAR=2021 CONFIG_SYMTAB_ORDEREDBYNAME=y CONFIG_SYSTEM_NSH=y +CONFIG_SYSTEM_NXINIT=y CONFIG_TESTING_GETPRIME=y CONFIG_TESTING_OSTEST=y CONFIG_USEC_PER_TICK=1000
