aboutsummaryrefslogtreecommitdiff
path: root/nuttx/libc/Kconfig
diff options
context:
space:
mode:
Diffstat (limited to 'nuttx/libc/Kconfig')
-rw-r--r--nuttx/libc/Kconfig28
1 files changed, 16 insertions, 12 deletions
diff --git a/nuttx/libc/Kconfig b/nuttx/libc/Kconfig
index 699b3ebb2..d739b6351 100644
--- a/nuttx/libc/Kconfig
+++ b/nuttx/libc/Kconfig
@@ -72,15 +72,17 @@ config EOL_IS_EITHER_CRLF
endchoice
config LIBC_EXECFUNCS
- bool "Enable exec[l|v] Support"
+ bool "Enable exec[l|v] / posix_spawn() Support"
default n
depends on !BINFMT_DISABLE
---help---
Enable support for the exec[l|v] family of functions that can be
- used to start other programs, terminating the current program.
- Typical usage is (1) first call vfork() to create a new thread, then
- (2) call exec[l|v] to replace the new thread with a program from the
- file system.
+ used to start other programs, terminating the current program and
+ the posix_spawn() familty of functions that can be used start other
+ programs without terminating the current program. The typical
+ usage of the exec[l|v] functions is (1) first call vfork() to create
+ a new thread, then (2) call exec[l|v] to replace the new thread with
+ a program from the file system.
NOTE 1: This two step process start is completely unnecessary in
NuttX and is provided only for compatibily with Unix systems. These
@@ -89,9 +91,11 @@ config LIBC_EXECFUNCS
the new thread will be terminated by the exec[l|v] call, it really
served no purpose other than to suport Unix compatility.
- NOTE 2: Support for exec[l|v] is conditional because is requires
- additional support for symbol tables that will not be available in
- the typical system.
+ The posix_spawn() functions do not have this inefficiency.
+
+ NOTE 2: Support for exec[l|v] and posix_spawn() is conditional
+ because they require additional support for symbol tables that
+ will not be available in the typical system.
if LIBC_EXECFUNCS
@@ -99,8 +103,8 @@ config EXECFUNCS_SYMTAB
string "Symbol table used by exec[l|v]"
default "g_symtab"
---help---
- The exec[l|v] functions are wrapper functions that (1) call the non-
- standard binfmt function 'exec', and then (2) exit(0). The binfmt
+ The exec[l|v] and posix_spawn() functions are wrapper functions that
+ call the non-standard binfmt function 'exec'). The binfmt
function 'exec' needs to have (1) a symbol table that provides the
list of symbols exported by the base code, and (2) the number of
symbols in that table. This selection provides the name of that
@@ -110,8 +114,8 @@ config EXECFUNCS_NSYMBOLS
int "Number of Symbols in the Table"
default 0
---help---
- The exec[l|v] functions are wrapper functions that (1) call the non-
- standard binfmt function 'exec', and then (2) exit(0). The binfmt
+ The exec[l|v] and posix_spawn() functions are wrapper functions that
+ call the non-standard binfmt function 'exec'). The binfmt
function 'exec' needs to have (1) a symbol table that provides the
list of symbols exported by the base code, and (2) the number of
symbols in that table. This selection provides the number of