linux/fs/Kconfig.binfmt
<<
>>
Prefs
   1# SPDX-License-Identifier: GPL-2.0-only
   2
   3menu "Executable file formats"
   4
   5config BINFMT_ELF
   6        bool "Kernel support for ELF binaries"
   7        depends on MMU
   8        select ELFCORE
   9        default y
  10        help
  11          ELF (Executable and Linkable Format) is a format for libraries and
  12          executables used across different architectures and operating
  13          systems. Saying Y here will enable your kernel to run ELF binaries
  14          and enlarge it by about 13 KB. ELF support under Linux has now all
  15          but replaced the traditional Linux a.out formats (QMAGIC and ZMAGIC)
  16          because it is portable (this does *not* mean that you will be able
  17          to run executables from different architectures or operating systems
  18          however) and makes building run-time libraries very easy. Many new
  19          executables are distributed solely in ELF format. You definitely
  20          want to say Y here.
  21
  22          Information about ELF is contained in the ELF HOWTO available from
  23          <http://www.tldp.org/docs.html#howto>.
  24
  25          If you find that after upgrading from Linux kernel 1.2 and saying Y
  26          here, you still can't run any ELF binaries (they just crash), then
  27          you'll have to install the newest ELF runtime libraries, including
  28          ld.so (check the file <file:Documentation/Changes> for location and
  29          latest version).
  30
  31config COMPAT_BINFMT_ELF
  32        def_bool y
  33        depends on COMPAT && BINFMT_ELF
  34        select ELFCORE
  35
  36config ARCH_BINFMT_ELF_STATE
  37        bool
  38
  39config ARCH_HAVE_ELF_PROT
  40        bool
  41
  42config ARCH_USE_GNU_PROPERTY
  43        bool
  44
  45config BINFMT_ELF_FDPIC
  46        bool "Kernel support for FDPIC ELF binaries"
  47        default y if !BINFMT_ELF
  48        depends on (ARM || (SUPERH && !MMU))
  49        select ELFCORE
  50        help
  51          ELF FDPIC binaries are based on ELF, but allow the individual load
  52          segments of a binary to be located in memory independently of each
  53          other. This makes this format ideal for use in environments where no
  54          MMU is available as it still permits text segments to be shared,
  55          even if data segments are not.
  56
  57          It is also possible to run FDPIC ELF binaries on MMU linux also.
  58
  59config ELFCORE
  60        bool
  61        help
  62          This option enables kernel/elfcore.o.
  63
  64config CORE_DUMP_DEFAULT_ELF_HEADERS
  65        bool "Write ELF core dumps with partial segments"
  66        default y
  67        depends on BINFMT_ELF && ELF_CORE
  68        help
  69          ELF core dump files describe each memory mapping of the crashed
  70          process, and can contain or omit the memory contents of each one.
  71          The contents of an unmodified text mapping are omitted by default.
  72
  73          For an unmodified text mapping of an ELF object, including just
  74          the first page of the file in a core dump makes it possible to
  75          identify the build ID bits in the file, without paying the i/o
  76          cost and disk space to dump all the text.  However, versions of
  77          GDB before 6.7 are confused by ELF core dump files in this format.
  78
  79          The core dump behavior can be controlled per process using
  80          the /proc/PID/coredump_filter pseudo-file; this setting is
  81          inherited.  See Documentation/filesystems/proc.rst for details.
  82
  83          This config option changes the default setting of coredump_filter
  84          seen at boot time.  If unsure, say Y.
  85
  86config BINFMT_SCRIPT
  87        tristate "Kernel support for scripts starting with #!"
  88        default y
  89        help
  90          Say Y here if you want to execute interpreted scripts starting with
  91          #! followed by the path to an interpreter.
  92
  93          You can build this support as a module; however, until that module
  94          gets loaded, you cannot run scripts.  Thus, if you want to load this
  95          module from an initramfs, the portion of the initramfs before loading
  96          this module must consist of compiled binaries only.
  97
  98          Most systems will not boot if you say M or N here.  If unsure, say Y.
  99
 100config ARCH_HAS_BINFMT_FLAT
 101        bool
 102
 103config BINFMT_FLAT
 104        bool "Kernel support for flat binaries"
 105        depends on ARCH_HAS_BINFMT_FLAT
 106        help
 107          Support uClinux FLAT format binaries.
 108
 109config BINFMT_FLAT_ARGVP_ENVP_ON_STACK
 110        bool
 111
 112config BINFMT_FLAT_OLD_ALWAYS_RAM
 113        bool
 114
 115config BINFMT_FLAT_NO_DATA_START_OFFSET
 116        bool
 117
 118config BINFMT_FLAT_OLD
 119        bool "Enable support for very old legacy flat binaries"
 120        depends on BINFMT_FLAT
 121        help
 122          Support decade old uClinux FLAT format binaries.  Unless you know
 123          you have some of those say N here.
 124
 125config BINFMT_ZFLAT
 126        bool "Enable ZFLAT support"
 127        depends on BINFMT_FLAT
 128        select ZLIB_INFLATE
 129        help
 130          Support FLAT format compressed binaries
 131
 132config BINFMT_SHARED_FLAT
 133        bool "Enable shared FLAT support"
 134        depends on BINFMT_FLAT
 135        help
 136          Support FLAT shared libraries
 137
 138config HAVE_AOUT
 139       def_bool n
 140
 141config BINFMT_AOUT
 142        tristate "Kernel support for a.out and ECOFF binaries"
 143        depends on HAVE_AOUT
 144        help
 145          A.out (Assembler.OUTput) is a set of formats for libraries and
 146          executables used in the earliest versions of UNIX.  Linux used
 147          the a.out formats QMAGIC and ZMAGIC until they were replaced
 148          with the ELF format.
 149
 150          The conversion to ELF started in 1995.  This option is primarily
 151          provided for historical interest and for the benefit of those
 152          who need to run binaries from that era.
 153
 154          Most people should answer N here.  If you think you may have
 155          occasional use for this format, enable module support above
 156          and answer M here to compile this support as a module called
 157          binfmt_aout.
 158
 159          If any crucial components of your system (such as /sbin/init
 160          or /lib/ld.so) are still in a.out format, you will have to
 161          say Y here.
 162
 163config OSF4_COMPAT
 164        bool "OSF/1 v4 readv/writev compatibility"
 165        depends on ALPHA && BINFMT_AOUT
 166        help
 167          Say Y if you are using OSF/1 binaries (like Netscape and Acrobat)
 168          with v4 shared libraries freely available from Compaq. If you're
 169          going to use shared libraries from Tru64 version 5.0 or later, say N.
 170
 171config BINFMT_MISC
 172        tristate "Kernel support for MISC binaries"
 173        help
 174          If you say Y here, it will be possible to plug wrapper-driven binary
 175          formats into the kernel. You will like this especially when you use
 176          programs that need an interpreter to run like Java, Python, .NET or
 177          Emacs-Lisp. It's also useful if you often run DOS executables under
 178          the Linux DOS emulator DOSEMU (read the DOSEMU-HOWTO, available from
 179          <http://www.tldp.org/docs.html#howto>). Once you have
 180          registered such a binary class with the kernel, you can start one of
 181          those programs simply by typing in its name at a shell prompt; Linux
 182          will automatically feed it to the correct interpreter.
 183
 184          You can do other nice things, too. Read the file
 185          <file:Documentation/admin-guide/binfmt-misc.rst> to learn how to use this
 186          feature, <file:Documentation/admin-guide/java.rst> for information about how
 187          to include Java support. and <file:Documentation/admin-guide/mono.rst> for
 188          information about how to include Mono-based .NET support.
 189
 190          To use binfmt_misc, you will need to mount it:
 191                mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc
 192
 193          You may say M here for module support and later load the module when
 194          you have use for it; the module is called binfmt_misc. If you
 195          don't know what to answer at this point, say Y.
 196
 197config COREDUMP
 198        bool "Enable core dump support" if EXPERT
 199        default y
 200        help
 201          This option enables support for performing core dumps. You almost
 202          certainly want to say Y here. Not necessary on systems that never
 203          need debugging or only ever run flawless code.
 204
 205endmenu
 206