| # |
| # 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 |