diff --git a/include/nuttx/lib/builtin.h b/include/nuttx/lib/builtin.h index 70d9ad90ba944..51d32d75a1969 100644 --- a/include/nuttx/lib/builtin.h +++ b/include/nuttx/lib/builtin.h @@ -30,12 +30,16 @@ #include #include -#ifdef CONFIG_BUILTIN +#ifdef CONFIG_APP_REGISTRY /**************************************************************************** * Public Types ****************************************************************************/ +/* Under CONFIG_BUILD_KERNEL, only priority/stacksize are consumed; main + * (and uid/gid/mode, if enabled) are populated but unused. + */ + struct builtin_s { FAR const char *name; /* Invocation name and as seen under /sbin/ */ @@ -241,5 +245,5 @@ int builtin_getmode(int index); } #endif -#endif /* CONFIG_BUILTIN */ +#endif /* CONFIG_APP_REGISTRY */ #endif /* __INCLUDE_NUTTX_LIB_BUILTIN_H */ diff --git a/libs/libc/builtin/CMakeLists.txt b/libs/libc/builtin/CMakeLists.txt index 1be9f03b46252..f7587c3a46500 100644 --- a/libs/libc/builtin/CMakeLists.txt +++ b/libs/libc/builtin/CMakeLists.txt @@ -20,7 +20,7 @@ # # ############################################################################## -if(CONFIG_BUILTIN) +if(CONFIG_APP_REGISTRY) set(SRCS lib_builtin_getname.c lib_builtin_isavail.c lib_builtin_forindex.c) if(CONFIG_BUILD_PROTECTED) diff --git a/libs/libc/builtin/Kconfig b/libs/libc/builtin/Kconfig index ad94cedee1c62..8680ddb7958d9 100644 --- a/libs/libc/builtin/Kconfig +++ b/libs/libc/builtin/Kconfig @@ -13,3 +13,15 @@ config BUILTIN 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. diff --git a/libs/libc/builtin/Make.defs b/libs/libc/builtin/Make.defs index afb284e18c7ba..268ee4f20d3ee 100644 --- a/libs/libc/builtin/Make.defs +++ b/libs/libc/builtin/Make.defs @@ -20,7 +20,7 @@ # ############################################################################ -ifeq ($(CONFIG_BUILTIN),y) +ifneq ($(CONFIG_APP_REGISTRY),) # Builtin library files