walnux/libs/libc/elf/Kconfig
chao an 52482219c8 libc/elf: rename modlib to libelf
Renaming "modlib" to "libelf" is more in line with the implementation content,
which makes it easier for individual developers to understand the capabilities of this module.

CONFIG_LIBC_MODLIB -> CONFIG_LIBC_ELF

Signed-off-by: chao an <anchao.archer@bytedance.com>
2025-04-11 09:43:22 +08:00

119 lines
3.6 KiB
Text

#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#
config LIBC_ELF
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_ELF
config LIBC_ELF_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_LIBC_ELF_MAXDEPEND
to zero.
config LIBC_ELF_ALIGN_LOG2
int "Log2 Section Alignment"
default 2
---help---
Align all sections to this Log2 value: 0->1, 1->2, 2->4, etc.
config LIBC_ELF_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 LIBC_ELF_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 LIBC_ELF_DUMPBUFFER
bool "Dump module buffers"
default n
depends on DEBUG_INFO
---help---
Dump various module buffers for debug purposes
config LIBC_ELF_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 LIBC_ELF_RELOCATION_BUFFERCOUNT
int "LIBELF 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 LIBC_ELF_SYMBOL_CACHECOUNT
int "LIBELF 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 LIBC_ELF_HAVE_SYMTAB
config LIBC_ELF_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 LIBC_ELF_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 LIBC_ELF_SYSTEM_SYMTAB
bool "Generate the system symbol table"
default n
endif # LIBC_ELF_HAVE_SYMTAB
config LIBC_ELF_LOADTO_LMA
bool "elf 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 LIBC_ELF_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