# # For a description of the syntax of this configuration file, # see the file kconfig-language.txt in the NuttX tools repository. # config BINFMT_DISABLE bool "Disable BINFMT support" default DEFAULT_SMALL ---help--- By default, support for loadable binary formats is built. This logic may be suppressed by defining this setting. if !BINFMT_DISABLE config PATH_INITIAL string "Initial PATH Value" default "" depends on LIBC_ENVPATH ---help--- The initial value of the PATH variable. This is the colon-separated list of absolute paths. E.g., "/bin:/usr/bin:/sbin" config BINFMT_LOADABLE bool select MODULES default n ---help--- Automatically selected if a loadable binary format is selected. config PIC bool "Executable elf position-independent support" default n ---help--- Automatically selected if the binary format requires position independent operation. config NXFLAT bool "Enable the NXFLAT Binary Format" default n select BINFMT_LOADABLE select PIC ---help--- Enable support for the NXFLAT binary format. Default: n if NXFLAT source "binfmt/libnxflat/Kconfig" endif config ELF bool "Enable the ELF Binary Format" default n select BINFMT_LOADABLE select LIBC_ELF ---help--- Enable support for the ELF binary format. Default: n if ELF config ELF_STACKSIZE int "ELF Stack Size" default DEFAULT_TASK_STACKSIZE ---help--- This is the default stack size that will be used when starting ELF binaries. config FDPIC bool "FDPIC modules" default n select PIC depends on ARCH_HAVE_ELF_FDPIC ---help--- Load ELF modules built for the FDPIC ABI. An FDPIC module places its read-only and writable segments independently, so its text can be executed directly out of flash while only the writable segment is copied to RAM, once per running instance. A filesystem that can show its media, such as XIPFS or ROMFS, gives that result. On any other filesystem the loader copies the text to RAM, and the module runs but shares nothing. Building a module needs an arm-uclinuxfdpiceabi linker. The stock arm-none-eabi compiler emits correct FDPIC objects for both C and C++, so only the link needs it. What this adds over the position independent ELF support already present is a function pointer that carries its own data base, as a two word descriptor rather than a bare code address. That is what lets a module be called back on a thread it did not create, such as the work queue worker that runs a SIGEV_THREAD notification. Selecting this makes ten libc and sched entry points that can accept a callback from a module resolve such a descriptor before storing or branching to it. Each costs a register read and a branch on a path that is not hot. This implementation covers ARM Thumb-2. endif endif config BINFMT_CONSTRUCTORS bool "C++ Static Constructor Support" default n depends on HAVE_CXX && ELF ---help--- Built-in support for C++ constructors in loaded modules. Currently only support for ELF binary formats. choice prompt "File output format" default BINFMT_ELF_RELOCATABLE ---help--- Defines the type of ELF file produced by the NuttX build system. config BINFMT_ELF_RELOCATABLE bool "Relocatable ELF" ---help--- Produce a relocatable object as output. This is also known as partial linking. config BINFMT_ELF_EXECUTABLE bool "Executable ELF" depends on ARCH_HAVE_ELF_EXECUTABLE ---help--- Produce a full linked executable object as output. endchoice config BINFMT_STORE_FILENAME bool "Store the binary filename" default n ---help--- Store the filename of the loaded binary