xref: /openbmc/linux/fs/Kconfig.binfmt (revision 4cea5ceb)
11da177e4SLinus Torvaldsconfig BINFMT_ELF
21da177e4SLinus Torvalds	bool "Kernel support for ELF binaries"
32919b510SDavid Howells	depends on MMU && (BROKEN || !FRV)
41da177e4SLinus Torvalds	default y
51da177e4SLinus Torvalds	---help---
61da177e4SLinus Torvalds	  ELF (Executable and Linkable Format) is a format for libraries and
71da177e4SLinus Torvalds	  executables used across different architectures and operating
81da177e4SLinus Torvalds	  systems. Saying Y here will enable your kernel to run ELF binaries
91da177e4SLinus Torvalds	  and enlarge it by about 13 KB. ELF support under Linux has now all
101da177e4SLinus Torvalds	  but replaced the traditional Linux a.out formats (QMAGIC and ZMAGIC)
111da177e4SLinus Torvalds	  because it is portable (this does *not* mean that you will be able
121da177e4SLinus Torvalds	  to run executables from different architectures or operating systems
131da177e4SLinus Torvalds	  however) and makes building run-time libraries very easy. Many new
141da177e4SLinus Torvalds	  executables are distributed solely in ELF format. You definitely
151da177e4SLinus Torvalds	  want to say Y here.
161da177e4SLinus Torvalds
171da177e4SLinus Torvalds	  Information about ELF is contained in the ELF HOWTO available from
181da177e4SLinus Torvalds	  <http://www.tldp.org/docs.html#howto>.
191da177e4SLinus Torvalds
201da177e4SLinus Torvalds	  If you find that after upgrading from Linux kernel 1.2 and saying Y
211da177e4SLinus Torvalds	  here, you still can't run any ELF binaries (they just crash), then
221da177e4SLinus Torvalds	  you'll have to install the newest ELF runtime libraries, including
231da177e4SLinus Torvalds	  ld.so (check the file <file:Documentation/Changes> for location and
241da177e4SLinus Torvalds	  latest version).
251da177e4SLinus Torvalds
26b9d36d5dSRoland McGrathconfig COMPAT_BINFMT_ELF
27b9d36d5dSRoland McGrath	bool
284cea5cebSAlexey Dobriyan	depends on COMPAT && BINFMT_ELF
29b9d36d5dSRoland McGrath
301da177e4SLinus Torvaldsconfig BINFMT_ELF_FDPIC
311da177e4SLinus Torvalds	bool "Kernel support for FDPIC ELF binaries"
321da177e4SLinus Torvalds	default y
333bc24a1aSPaul Mundt	depends on (FRV || BLACKFIN || (SUPERH32 && !MMU))
341da177e4SLinus Torvalds	help
351da177e4SLinus Torvalds	  ELF FDPIC binaries are based on ELF, but allow the individual load
361da177e4SLinus Torvalds	  segments of a binary to be located in memory independently of each
371da177e4SLinus Torvalds	  other. This makes this format ideal for use in environments where no
381da177e4SLinus Torvalds	  MMU is available as it still permits text segments to be shared,
391da177e4SLinus Torvalds	  even if data segments are not.
401da177e4SLinus Torvalds
411da177e4SLinus Torvalds	  It is also possible to run FDPIC ELF binaries on MMU linux also.
421da177e4SLinus Torvalds
431da177e4SLinus Torvaldsconfig BINFMT_FLAT
443202e181SAdrian Bunk	bool "Kernel support for flat binaries"
45b8c141e8SAdrian Bunk	depends on !MMU && (!FRV || BROKEN)
461da177e4SLinus Torvalds	help
471da177e4SLinus Torvalds	  Support uClinux FLAT format binaries.
481da177e4SLinus Torvalds
491da177e4SLinus Torvaldsconfig BINFMT_ZFLAT
501da177e4SLinus Torvalds	bool "Enable ZFLAT support"
511da177e4SLinus Torvalds	depends on BINFMT_FLAT
521da177e4SLinus Torvalds	select ZLIB_INFLATE
531da177e4SLinus Torvalds	help
541da177e4SLinus Torvalds	  Support FLAT format compressed binaries
551da177e4SLinus Torvalds
561da177e4SLinus Torvaldsconfig BINFMT_SHARED_FLAT
571da177e4SLinus Torvalds	bool "Enable shared FLAT support"
581da177e4SLinus Torvalds	depends on BINFMT_FLAT
591da177e4SLinus Torvalds	help
601da177e4SLinus Torvalds	  Support FLAT shared libraries
611da177e4SLinus Torvalds
62e17c6d56SDavid Woodhouseconfig HAVE_AOUT
63e17c6d56SDavid Woodhouse       def_bool n
64e17c6d56SDavid Woodhouse
651da177e4SLinus Torvaldsconfig BINFMT_AOUT
661da177e4SLinus Torvalds	tristate "Kernel support for a.out and ECOFF binaries"
67e17c6d56SDavid Woodhouse	depends on HAVE_AOUT
681da177e4SLinus Torvalds	---help---
691da177e4SLinus Torvalds	  A.out (Assembler.OUTput) is a set of formats for libraries and
701da177e4SLinus Torvalds	  executables used in the earliest versions of UNIX.  Linux used
711da177e4SLinus Torvalds	  the a.out formats QMAGIC and ZMAGIC until they were replaced
721da177e4SLinus Torvalds	  with the ELF format.
731da177e4SLinus Torvalds
741da177e4SLinus Torvalds	  The conversion to ELF started in 1995.  This option is primarily
751da177e4SLinus Torvalds	  provided for historical interest and for the benefit of those
761da177e4SLinus Torvalds	  who need to run binaries from that era.
771da177e4SLinus Torvalds
781da177e4SLinus Torvalds	  Most people should answer N here.  If you think you may have
791da177e4SLinus Torvalds	  occasional use for this format, enable module support above
801da177e4SLinus Torvalds	  and answer M here to compile this support as a module called
811da177e4SLinus Torvalds	  binfmt_aout.
821da177e4SLinus Torvalds
831da177e4SLinus Torvalds	  If any crucial components of your system (such as /sbin/init
841da177e4SLinus Torvalds	  or /lib/ld.so) are still in a.out format, you will have to
851da177e4SLinus Torvalds	  say Y here.
861da177e4SLinus Torvalds
871da177e4SLinus Torvaldsconfig OSF4_COMPAT
881da177e4SLinus Torvalds	bool "OSF/1 v4 readv/writev compatibility"
891da177e4SLinus Torvalds	depends on ALPHA && BINFMT_AOUT
901da177e4SLinus Torvalds	help
911da177e4SLinus Torvalds	  Say Y if you are using OSF/1 binaries (like Netscape and Acrobat)
921da177e4SLinus Torvalds	  with v4 shared libraries freely available from Compaq. If you're
931da177e4SLinus Torvalds	  going to use shared libraries from Tru64 version 5.0 or later, say N.
941da177e4SLinus Torvalds
951da177e4SLinus Torvaldsconfig BINFMT_EM86
961da177e4SLinus Torvalds	tristate "Kernel support for Linux/Intel ELF binaries"
971da177e4SLinus Torvalds	depends on ALPHA
981da177e4SLinus Torvalds	---help---
991da177e4SLinus Torvalds	  Say Y here if you want to be able to execute Linux/Intel ELF
1001da177e4SLinus Torvalds	  binaries just like native Alpha binaries on your Alpha machine. For
1011da177e4SLinus Torvalds	  this to work, you need to have the emulator /usr/bin/em86 in place.
1021da177e4SLinus Torvalds
1031da177e4SLinus Torvalds	  You can get the same functionality by saying N here and saying Y to
1041da177e4SLinus Torvalds	  "Kernel support for MISC binaries".
1051da177e4SLinus Torvalds
1061da177e4SLinus Torvalds	  You may answer M to compile the emulation support as a module and
1071da177e4SLinus Torvalds	  later load the module when you want to use a Linux/Intel binary. The
1081da177e4SLinus Torvalds	  module will be called binfmt_em86. If unsure, say Y.
1091da177e4SLinus Torvalds
1101da177e4SLinus Torvaldsconfig BINFMT_SOM
1111da177e4SLinus Torvalds	tristate "Kernel support for SOM binaries"
1121da177e4SLinus Torvalds	depends on PARISC && HPUX
1131da177e4SLinus Torvalds	help
1141da177e4SLinus Torvalds	  SOM is a binary executable format inherited from HP/UX.  Say
1151da177e4SLinus Torvalds	  Y here to be able to load and execute SOM binaries directly.
1161da177e4SLinus Torvalds
1171da177e4SLinus Torvaldsconfig BINFMT_MISC
1181da177e4SLinus Torvalds	tristate "Kernel support for MISC binaries"
1191da177e4SLinus Torvalds	---help---
1201da177e4SLinus Torvalds	  If you say Y here, it will be possible to plug wrapper-driven binary
1211da177e4SLinus Torvalds	  formats into the kernel. You will like this especially when you use
1221da177e4SLinus Torvalds	  programs that need an interpreter to run like Java, Python, .NET or
1231da177e4SLinus Torvalds	  Emacs-Lisp. It's also useful if you often run DOS executables under
1241da177e4SLinus Torvalds	  the Linux DOS emulator DOSEMU (read the DOSEMU-HOWTO, available from
1251da177e4SLinus Torvalds	  <http://www.tldp.org/docs.html#howto>). Once you have
1261da177e4SLinus Torvalds	  registered such a binary class with the kernel, you can start one of
1271da177e4SLinus Torvalds	  those programs simply by typing in its name at a shell prompt; Linux
1281da177e4SLinus Torvalds	  will automatically feed it to the correct interpreter.
1291da177e4SLinus Torvalds
1301da177e4SLinus Torvalds	  You can do other nice things, too. Read the file
1311da177e4SLinus Torvalds	  <file:Documentation/binfmt_misc.txt> to learn how to use this
1321da177e4SLinus Torvalds	  feature, <file:Documentation/java.txt> for information about how
1331da177e4SLinus Torvalds	  to include Java support. and <file:Documentation/mono.txt> for
1341da177e4SLinus Torvalds          information about how to include Mono-based .NET support.
1351da177e4SLinus Torvalds
1361da177e4SLinus Torvalds          To use binfmt_misc, you will need to mount it:
1371da177e4SLinus Torvalds		mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc
1381da177e4SLinus Torvalds
1391da177e4SLinus Torvalds	  You may say M here for module support and later load the module when
1401da177e4SLinus Torvalds	  you have use for it; the module is called binfmt_misc. If you
1411da177e4SLinus Torvalds	  don't know what to answer at this point, say Y.
142