diff --git a/libc/unistd/Kconfig b/libc/unistd/Kconfig index 966a338b36..c555c87996 100644 --- a/libc/unistd/Kconfig +++ b/libc/unistd/Kconfig @@ -38,9 +38,20 @@ config EXECFUNCS_HAVE_SYMTAB default n if BUILD_KERNEL default y if !BUILD_KERNEL ---help--- - If you have a system symbol table, then you must select this + If you have a system symbol table, then you may select this option in order to use it. Symbol tables are required in most - cases in order to like executable programs to the base code. + cases in order to link executable programs to the base code. + + NOTE: This option only pre-initializes the system symbol table as + defined by CONFIG_EXECFUNCS_SYMTAB and CONFIG_EXECFUNCS_NSYMBOLS. + This is is simply an optional, automatic initialization of the + system symbol table. You would need to do this, for example, in + in the kernel build were the first task must be run from a program + on the file system. This option has no other effect. + + Optionally, you can always call binfmt_setsymtabl() from your + board-specific logic or, equivalently, call boardctl(BOARDIOC_APP_SYMTAB) + from your application initialization logic. if EXECFUNCS_HAVE_SYMTAB config EXECFUNCS_SYMTAB diff --git a/sched/task/task_execv.c b/sched/task/task_execv.c index b6fa85c3e3..3fcdbbccdc 100644 --- a/sched/task/task_execv.c +++ b/sched/task/task_execv.c @@ -93,7 +93,7 @@ * provided to 'exec()' from 'exec[l|v]()' via NuttX configuration settings: * * CONFIG_LIBC_EXECFUNCS : Enable exec[l|v] support - * CONFIG_EXECFUNCS_HAVE_SYMTAB : Defined if there is a symbol table + * CONFIG_EXECFUNCS_HAVE_SYMTAB : Defined if there is a pre-defined symbol table * CONFIG_EXECFUNCS_SYMTAB : Symbol table used by exec[l|v] * CONFIG_EXECFUNCS_NSYMBOLS : Number of symbols in the table *