mirror of
https://github.com/apache/nuttx.git
synced 2026-08-17 02:13:19 +00:00
nsh_fileapp() could not apply an application's Kconfig-configured
priority/stacksize via posix_spawn() under CONFIG_BUILD_KERNEL, because
the registry table (struct builtin_s / g_builtins[]) was gated on
CONFIG_BUILTIN, which depends on !BUILD_KERNEL. Those settings were
silently ignored in KERNEL builds.
CONFIG_BUILTIN conflates the table with main_t-based dispatch, which is
meaningless under CONFIG_BUILD_KERNEL. Add a hidden derived symbol,
APP_REGISTRY, that tracks table availability independently of dispatch:
config APP_REGISTRY
bool
default y if BUILTIN || BUILD_KERNEL
Switch the guards on the table itself (Make.defs, builtin.h) from
CONFIG_BUILTIN to CONFIG_APP_REGISTRY. Call sites that dereference
builtin->main stay gated on CONFIG_BUILTIN and remain unreachable
under CONFIG_BUILD_KERNEL.
Signed-off-by: liang.huang <liang.huang@houmo.ai>
27 lines
1.1 KiB
Text
27 lines
1.1 KiB
Text
#
|
|
# For a description of the syntax of this configuration file,
|
|
# see the file kconfig-language.txt in the NuttX tools repository.
|
|
#
|
|
|
|
config BUILTIN
|
|
bool "Support Builtin Applications"
|
|
default n
|
|
depends on !BUILD_KERNEL
|
|
---help---
|
|
Enable support for builtin applications. This features assigns a string
|
|
name to an application and in addition if FS_BINFS is defined, retaining
|
|
those names in a file system from which they can be executed. This feature
|
|
is also the underlying requirement to support built-in applications in the
|
|
NuttShell (NSH).
|
|
|
|
config APP_REGISTRY
|
|
bool
|
|
default y if BUILTIN || BUILD_KERNEL
|
|
---help---
|
|
Hidden option indicating that the compile-time name/priority/stacksize
|
|
registry table for applications (struct builtin_s / g_builtins[]) is
|
|
available. This is a broader condition than BUILTIN: BUILD_KERNEL
|
|
cannot select BUILTIN (main_t dispatch is meaningless when the caller
|
|
and the application are in different address spaces), but it still
|
|
needs this table so that posix_spawn() can pick up each application's
|
|
configured priority and stack size.
|