incubator-nuttx/libs/libc/modlib/Kconfig

120 lines
3.6 KiB
Plaintext

#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#
config LIBC_MODLIB
bool "Enable module library"
default n
select LIBC_ARCH_ELF
select ARCH_USE_TEXT_HEAP if ARCH_HAVE_TEXT_HEAP
menu "Module library configuration"
depends on LIBC_MODLIB
config MODLIB_MAXDEPEND
int "Max dependencies"
default 2
---help---
This setting controls the number of other modules that a new module
may depend on. That is, when a new module in inserted via 'insmod'
it may depend on symbols exported by other, already installed
modules. This is the maximum number of modules that export symbols
to the new module. This maximum is artificial; it is used in the
current design because it uses some very simple, pre-allocated data
structures.
All dependencies logic my be eliminated by set CONFIG_MODLIB_MAXDEPEND
to zero.
config MODLIB_ALIGN_LOG2
int "Log2 Section Alignment"
default 2
---help---
Align all sections to this Log2 value: 0->1, 1->2, 2->4, etc.
config MODLIB_BUFFERSIZE
int "Module I/O Buffer Size"
default 32
---help---
This is an I/O buffer that is used to access the module file.
Variable length items will need to be read (such as symbol names).
This is really just this initial size of the buffer; it will be
reallocated as necessary to hold large symbol names). Default: 32
config MODLIB_BUFFERINCR
int "Module I/O Buffer Realloc Increment"
default 32
---help---
This is an I/O buffer that is used to access the module file.
Variable length items will need to be read (such as symbol names).
This value specifies the size increment to use each time the
buffer is reallocated. Default: 32
config MODLIB_DUMPBUFFER
bool "Dump module buffers"
default n
depends on DEBUG_INFO
---help---
Dump various module buffers for debug purposes
config MODLIB_HAVE_SYMTAB
bool "Have symbol table"
default n
---help---
If you have a module library symbol table, then you may select this
option in order to use it. Symbol tables are required in most
cases in order to link executable programs to the base code.
config MODLIB_RELOCATION_BUFFERCOUNT
int "MODLIB Relocation Table Buffer Count"
default 256
---help---
This is an cache buffer that is used to store elf relocation table to
reduce access fs. Default: 256
config MODLIB_SYMBOL_CACHECOUNT
int "MODLIB SYMBOL Table Cache Count"
default 256
---help---
This is an cache that is used to store elf symbol table to
reduce access fs. Default: 256
if MODLIB_HAVE_SYMTAB
config MODLIB_SYMTAB_ARRAY
string "Symbol table name used by dlsym"
default "g_mod_symtab" if !EXECFUNCS_HAVE_SYMTAB
default EXECFUNCS_SYMTAB_ARRAY if EXECFUNCS_HAVE_SYMTAB
config MODLIB_NSYMBOLS_VAR
string "Name of variable holding the number of symbols"
default "g_mod_nsymbols" if !EXECFUNCS_HAVE_SYMTAB
default EXECFUNCS_NSYMBOLS_VAR if EXECFUNCS_HAVE_SYMTAB
config MODLIB_SYSTEM_SYMTAB
bool "Generate the system symbol table"
default n
endif # MODLIB_HAVE_SYMTAB
config MODLIB_LOADTO_LMA
bool "modlib load sections to LMA"
default n
---help---
Load all section to LMA not VMA, so the startup code(e.g. start.S) need
relocate .data section to the final address(VMA) and zero .bss section
by self.
config MODLIB_EXIDX_SECTNAME
string "ELF Section Name for Exception Index"
default ".ARM.exidx"
depends on CXX_EXCEPTION && ARCH_ARM
---help---
Set the name string for the exception index section on the ELF modules to
be loaded by the ELF binary loader.
This is needed to support exception handling on loadable ELF modules.
endmenu # Module library configuration