nuttx-apps/examples/elf/Kconfig

155 lines
5.2 KiB
Plaintext

#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#
config EXAMPLES_ELF
bool "ELF Loader Example"
default n
select LIBC_EXECFUNCS
depends on ELF
---help---
Enable the ELF loader example
if EXAMPLES_ELF
choice
prompt "ELF File System"
default EXAMPLES_ELF_ROMFS if FS_ROMFS && BUILD_FLAT
default EXAMPLES_ELF_CROMFS if !FS_ROMFS && FS_CROMFS && BUILD_FLAT
default EXAMPLES_ELF_EXTERN if (!FS_ROMFS && !FS_CROMFS) || !BUILD_FLAT
config EXAMPLES_ELF_ROMFS
bool "ROMFS"
depends on FS_ROMFS && BUILD_FLAT
---help---
Automatically generates and mounts an internal ROMFS file
system
config EXAMPLES_ELF_CROMFS
bool "CROMFS"
depends on FS_CROMFS && BUILD_FLAT
---help---
Automatically generates and mounts an internal CROMFS file
system
config EXAMPLES_ELF_EXTERN
bool "External File system"
---help---
The file system is assumed to reside on some external media
such as an SD card or a USB FLASH drive. In this case, that
external file system must be created manually by copying the
files in apps/examples/elf/tests/romfs to the volume.
The external volume can optionally be mounted by the test if
the CONFIG_EXAMPLES_FSMOUNT option is also selected.
endchoice # ROM File System
config EXAMPLES_ELF_FSMOUNT
bool "Mount external file system"
default y
depends on EXAMPLES_ELF_EXTERN
---help---
Automatically mount the external file system using the block
device provided by CONFIG_EXAMPLES_ELF_DEVPATH and the file
system type specified by CONFIG_EXAMPLES_ELF_FSTYPE.
config EXAMPLES_ELF_FSREMOVEABLE
bool "Removable file system"
default n
depends on EXAMPLES_ELF_FSMOUNT
---help---
If the external file system is on removable media such as an
SD card or a USB FLASH driver, then this option may be selected
to build in logic to wait for the media to be installed and
initialized before trying to mount it.
config EXAMPLES_ELF_DEVMINOR
int "ROMFS Minor Device Number"
default 0
depends on EXAMPLES_ELF_ROMFS
---help---
The minor device number of the ROMFS block. For example, the N in
/dev/ramN. Used for registering the RAM block driver that will hold
the ROMFS file system containing the ELF executables to be tested.
Default: 0
config EXAMPLES_ELF_FSTYPE
string "External file system type"
default "vfat"
depends on EXAMPLES_ELF_FSMOUNT
---help---
The type of the external file system as will be used in the mount()
command. Default: "vfat"
config EXAMPLES_ELF_DEVPATH
string "Block driver device path"
default "/dev/ram0" if EXAMPLES_ELF_ROMFS
default "/dev/mmcsd0" if EXAMPLES_ELF_FSMOUNT
depends on EXAMPLES_ELF_ROMFS || EXAMPLES_ELF_FSMOUNT
---help---
The path to the ROMFS/External block driver device. This must match
EXAMPLES_ELF_DEVMINOR for the case of ROMFS. Used for mounting the
file system containing the ELF executables to be tested. Default:
"/dev/ram0" for ROMFS, "/dev/mmcsd0" for the external file system.
config EXAMPLES_ELF_NOSTRIP
bool "Do not strip debug symbols"
default n
depends on DEBUG_SYMBOLS
---help---
By default, if debug symbols are enabled (via CONFIG_DEBUG_SYMBOLS), then the
ELF executables will also retain debug symbols in the resulting ELF binaries.
Select this option if you do not want that behavior, this option will permit
debug symbols in the base code but will strip debug symbols out of the ELF
binaries for a smaller ROM file system image.
config EXAMPLES_ELF_SYSCALL
bool "Link with SYSCALL library"
default n
depends on LIB_SYSCALL
---help---
Link with the SYSCALL library. By default, all undefined symbols
must be provided via a symbol table. But if this option is
selected, then each ELF test program will link with the SYSCALL
library and will interface with the OS system calls. In this case,
those symbols will not be undefined. If the SYSCALL library is
available then you probably will want to select this option.
config EXAMPLES_ELF_LIBC
bool "Link with LIBC"
default n
---help---
Link with the C library (and also math library if it was built).
By default, all undefined symbols must be provided via a symbol
table. But if this option is selected, then each ELF test program
will link with the C library and will not require symbol table
entries. You probably will NOT want this option, however,
because it will substantially increase the size of code. For
example, a separate copy of printf() would be linked with every
program greatly increasing the total code size. This option is
primarily intended only for testing.
config EXAMPLES_ELF_CXXINITIALIZE
bool "C++ Initialization"
default y
depends on HAVE_CXX && HAVE_CXXINITIALIZE
---help---
By default, if CONFIG_HAVE_CXX and CONFIG_HAVE_CXXINITIALIZE are
defined, then this example will call the NuttX function to
initialize static C++ constructors. This option may be disabled,
however, if that static initialization was performed elsewhere.
config EXAMPLES_ELF_UCLIBCXX
bool "uClibc++ is installed"
default n
depends on UCLIBCXX
---help---
By default, uClibc++ is not installed and configured. If the
user installs and configures the C++ standard library, this
example will compile the demos using it.
endif