nuttx/tools
Jorge Guzman 7cd511fed2 include/nuttx: Add link-time iterable sections infrastructure
Add generic support for link-time registration of struct instances,
modeled after the Zephyr STRUCT_SECTION_* mechanism:

- include/nuttx/iterable_sections.h: STRUCT_SECTION_ITERABLE/DECLARE/
  FOREACH/GET/COUNT macros placing instances in name-sorted linker
  sections delimited by _<type>_list_start/_end symbols (attributes
  through the nuttx/compiler.h macros; FOREACH takes a caller-declared
  iterator, like list_for_every_entry).
- include/nuttx/linker/iterable_sections.ld: ITERABLE_SECTION() macro
  emitting the KEEP + SORT_BY_NAME collection statements (linker
  scripts in ARCHSCRIPT are CPP-preprocessed).
- include/nuttx/linker/common-rom.ld / common-ram.ld: central
  aggregators meant to be included by board linker scripts (inside
  .text and .data respectively); subsystems register their sections
  here guarded by their Kconfig options, so the fragments expand to
  nothing on configurations that do not use them.
- CONFIG_ITERABLE_SECTIONS_LINKER_INSERT + include/nuttx/linker/
  common-insert.ld (added before the board script by tools/Config.mk and
  by the top-level CMakeLists.txt): optional zero-touch mode that
  supplements the board script through GNU ld INSERT AFTER, collecting
  the subsystems' ITERABLE_SECTION blocks in one output section; the
  common-rom.ld/common-ram.ld fragments expand to nothing in that mode.
  See the option help for the constraints.
- Documentation/components/iterable_sections.rst.

First user: the Zephyr zbus message bus port (apps/system/zbus in
nuttx-apps); its board integration comes in a companion PR.

Signed-off-by: Jorge Guzman <jorge.gzm@gmail.com>
2026-08-27 01:04:05 +08:00
..
ameba arch/arm/ameba: resolve the asdk toolchain per-IC 2026-07-17 08:30:47 -03:00
bcm2711
bl602
ci tools: avoid returning from finally blocks 2026-08-21 20:07:53 +08:00
codeowners
cxd56 tools/cxd56/mkspk: proper resources free on error. 2026-08-17 14:17:37 +08:00
esp32 tools/espressif: Add UF2 output support 2026-05-27 14:29:35 -04:00
esp32c3
esp32s2 tools/espressif: Add UF2 output support 2026-05-27 14:29:35 -04:00
esp32s3 tools/espressif: Add UF2 output support 2026-05-27 14:29:35 -04:00
espressif cmake: Use NUTTX(_DIR/_BIN_DIR) instead CMAKE(_SRC_DIR/_BIN_DIR) 2026-08-09 11:13:08 -03:00
imx9
licensing tools: escape Python string backslashes 2026-08-21 20:07:26 +08:00
lwl
mpfs
nix
nxflat !arch/arm: Use r9 as the PIC base register. 2026-08-06 01:38:23 +08:00
pic32
pynuttx tools: avoid returning from finally blocks 2026-08-21 20:07:53 +08:00
rp23xx
rp2040 tools: rp2040: Drop uninitialized name length check 2026-07-10 12:39:44 +08:00
simwifi
zds
.gitignore tools/nxflat: Import the NXFLAT thunk generator. 2026-08-06 01:38:23 +08:00
aarch64-unknown-nuttx-macho.json tools: Enable Rust sim builds on Intel Macs 2026-06-08 21:22:45 +08:00
aarch64-unknown-nuttx.json tools/rust: Move NuttX Rust target specs into nuttx 2026-06-01 00:02:41 +08:00
abi_check.py
b16.c
bdf-converter.c
board_romfs_mkpasswd.sh sched,fs,docs: support setuid sudo helper 2026-08-18 15:57:52 +08:00
btdecode.sh
build-globals.sh
callstack.py
cfgdefine.c
cfgdefine.h
cfgparser.c
cfgparser.h
check_passwd_keys.sh !boards: enforce secure ROMFS passwd and TEA key setup 2026-07-09 22:41:11 +08:00
checkkconfig.py
checkpatch.sh
checkrelease.sh
CMakeLists.txt
cmpconfig.c
cnvwindeps.c
Config.mk include/nuttx: Add link-time iterable sections infrastructure 2026-08-27 01:04:05 +08:00
configure.bat
configure.c
configure.sh !tools/mkpasswd: PBKDF2 host tool and ROMFS passwd build integration 2026-07-21 20:19:14 +08:00
configure_completion.bash
convert-comments.c
copydir.bat
copydir.sh
coredump.py
csvparser.c
csvparser.h
D.defs
define.bat
define.sh
detab.c
Directories.mk
discover.py
doreleasenotes.py
Export.mk
find_symbol_callers.sh
flash_writer.py
FlatLibs.mk
gcov.py
gdbserver.py
gen_passwd_keys.sh boards: add CI ROMFS passwd credentials and refresh docs 2026-07-09 22:41:11 +08:00
gencromfs.c
host_info_dump.py tools: add build path support on host_info tool 2026-05-20 13:12:38 -04:00
host_info_parse.py
i486-unknown-nuttx.json tools/rust: Fix softfloat abi target spec name 2026-08-13 12:41:54 +02:00
ide_exporter.py tools: escape Python string backslashes 2026-08-21 20:07:26 +08:00
incdir.bat
incdir.c
incdir.sh
indent.sh
initialconfig.c
jlink-nuttx.c
kasan_global.py
kconfig.bat
kconfig2html.c tools: kconfig2html: Explain blank-line guard 2026-08-21 20:08:18 +08:00
KernelLibs.mk
LibTargets.mk
link.bat
link.sh
lowhex.c
macar-qcs.sh
Make.defs
Makefile.host tools/nxflat: Import the NXFLAT thunk generator. 2026-08-06 01:38:23 +08:00
merge_config.py
mkallsyms.py libs/libc/symtab: fix bogus symbol names for out-of-range addresses 2026-08-05 21:51:25 +08:00
mkallsyms.sh
mkconfig.c
mkconfigvars.sh
mkctags.sh
mkdeps.c
mkexport.sh
mkfsdata.pl
mkfsdata.py
mknulldeps.sh
mkpasswd.c !tools/mkpasswd: PBKDF2 host tool and ROMFS passwd build integration 2026-07-21 20:19:14 +08:00
mkromfsimg.sh
mksymtab.c
mksyscall.c tools:mksyscall fix compilation warning 2026-05-09 09:42:58 +08:00
mkversion.c tools/mkversion: Fix missing free in case of error. 2026-08-14 08:03:15 +02:00
mkwindeps.sh
netusb.sh
noteinfo.c
nxstyle.c tools/nxstyle: require a blank line after a function's declarations 2026-08-25 19:20:08 +08:00
nxstyle_sweep.sh tools/nxstyle: add a script to check a whole tree at once 2026-07-28 02:43:24 +08:00
nxtagspkgsfetch.sh
parsecallstack.py
parsememdump.py
parsetrace.py
passwd_keys.mk !tools/mkpasswd: PBKDF2 host tool and ROMFS passwd build integration 2026-07-21 20:19:14 +08:00
pre-commit
process_config.py
process_config.sh
promptpasswd.sh !tools/mkpasswd: PBKDF2 host tool and ROMFS passwd build integration 2026-07-21 20:19:14 +08:00
ProtectedLibs.mk
refresh.sh
rmcr.c
Rust.defs tools: Enable Rust sim builds on Intel Macs 2026-06-08 21:22:45 +08:00
sethost.sh tools: Enable Rust sim builds on Intel Macs 2026-06-08 21:22:45 +08:00
showsize.sh
simbridge.sh
simhostroute.sh
simlaunch.sh
size_report.py
splashscreen_converter.py
stackusage.py
stm32_pinmap_tool.py
Swift.defs
testbuild.ps1
testbuild.sh
toolchain.cmake.export
uncrustify.cfg tools/uncrustify: Update uncrustify for better support 2026-07-17 15:00:06 -03:00
Unix.mk sched,fs,docs: support setuid sudo helper 2026-08-18 15:57:52 +08:00
unlink.bat
unlink.sh
update_romfs_password.sh sched,fs,docs: support setuid sudo helper 2026-08-18 15:57:52 +08:00
version.sh
Win.mk
x86_64-unknown-nuttx-macho.json tools: Enable Rust sim builds on Intel Macs 2026-06-08 21:22:45 +08:00
x86_64-unknown-nuttx.json tools/rust: Fix softfloat abi target spec name 2026-08-13 12:41:54 +02:00
xmlrpc_test.py
Zig.defs tools/Zig.defs: Fix Zig builds on sim:x86_64 2026-07-20 09:36:56 +08:00
zipme.sh