apps: decouple signal support
Summary
Depencies: https://github.com/apache/nuttx/pull/17352.
Added support for signal decoupling, primarily involving modifications to the following modules in the apps: ostest, nsh/tools, netutils, and the cu tool.
-
ostest: When
CONFIG_DISABLE_SIGNALS=y, certain tests that rely on signal functionality need to be disabled. -
nsh/tools: Functionalities dependent on the signal module have been made configurable, allowing most parts of nsh to remain usable even when
CONFIG_DISABLE_SIGNALS=y. - netutils: Ensures basic usability of certain network functionalities when signals are disabled.
- cu tool: Refactored portions of the cu module implementation to maintain its usability under signal-disabled conditions.
Impact
No adjustments were made to the functional logic; support was only added for when CONFIG_DISABLE_SIGNALS=y.
Testing
- has passed the ostest
Thank you @extinguish great work!
This PR is a prototype for testing and goes in pair with apache/nuttx#17352. Needs careful review and testing. When parent PR is merged this one goes in pair :-)
I am just marking RC here not to merge by accident :-)
@cederom this patch need be merged first to unlock ci error on https://github.com/apache/nuttx/pull/17352. If the community accept to add DISABLE_SIGNALS option, it's better to merge this simple pr first, so we can ensure the kernel side change don't break any build.
@xiaoxiang781216 Do you know if @extinguish is doing it coordinated with @wangchdo ? Otherwise we will have many issues.
@xiaoxiang781216 Do you know if @extinguish is doing it coordinated with @wangchdo ? Otherwise we will have many issues.
@extinguish 's userspace change is the subset of @wangchdo 's since @wangchdo disable the full signal feature.
If the community agree to disable signal with option, it's better to merge this pr first, so both @extinguish and @wangchdo 's change can move forward and verify with ci. @cederom @acassis
@extinguish there are some errors, i.e.:
Configuration/Tool: lm3s6965-ek/qemu-protected,CONFIG_ARM_TOOLCHAIN_GNU_EABI
2025-11-25 09:18:02
------------------------------------------------------------------------------------
Cleaning...
Configuring...
Disabling CONFIG_ARM_TOOLCHAIN_GNU_EABI
Enabling CONFIG_ARM_TOOLCHAIN_GNU_EABI
Building NuttX...
arm-none-eabi-ld: /github/workspace/sources/nuttx/staging//libapps.a(test_symtab.o):(.rodata.g_elf_exports+0xe4): undefined reference to `register_driver'
arm-none-eabi-ld: /github/workspace/sources/nuttx/staging//libapps.a(test_symtab.o):(.rodata.g_elf_exports+0x15c): undefined reference to `unregister_driver'
make[1]: *** [Makefile:61: nuttx_user.elf] Error 1
make[1]: Target 'all' not remade because of errors.
make: *** [tools/Unix.mk:541: nuttx] Error 2
make: Target 'all' not remade because of errors.
/github/workspace/sources/nuttx/tools/testbuild.sh: line 385: /github/workspace/sources/nuttx/../nuttx/nuttx.manifest: No such file or directory
@extinguish there are some errors, i.e.:
Configuration/Tool: lm3s6965-ek/qemu-protected,CONFIG_ARM_TOOLCHAIN_GNU_EABI 2025-11-25 09:18:02 ------------------------------------------------------------------------------------ Cleaning... Configuring... Disabling CONFIG_ARM_TOOLCHAIN_GNU_EABI Enabling CONFIG_ARM_TOOLCHAIN_GNU_EABI Building NuttX... arm-none-eabi-ld: /github/workspace/sources/nuttx/staging//libapps.a(test_symtab.o):(.rodata.g_elf_exports+0xe4): undefined reference to `register_driver' arm-none-eabi-ld: /github/workspace/sources/nuttx/staging//libapps.a(test_symtab.o):(.rodata.g_elf_exports+0x15c): undefined reference to `unregister_driver' make[1]: *** [Makefile:61: nuttx_user.elf] Error 1 make[1]: Target 'all' not remade because of errors. make: *** [tools/Unix.mk:541: nuttx] Error 2 make: Target 'all' not remade because of errors. /github/workspace/sources/nuttx/tools/testbuild.sh: line 385: /github/workspace/sources/nuttx/../nuttx/nuttx.manifest: No such file or directory
this is fixed in updated pull request
@extinguish but the same error still report.
@extinguish but the same error still report.
Got it, I'm fixing it now, this is a new issue introduced by supporting the protect build process for mksym_tab.c.
@extinguish but the same error still report.
the "examples/elf project refactor and disable signal procedure" is separate to a new pull request, and the new pull request is based on https://github.com/apache/nuttx-apps/pull/3223, after https://github.com/apache/nuttx-apps/pull/3223 is review passed and merged, the examples/elf refactor pull request will upstreaming