xref: /openbmc/linux/fs/Kconfig.binfmt (revision 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2)
1*1da177e4SLinus Torvaldsconfig BINFMT_ELF
2*1da177e4SLinus Torvalds	bool "Kernel support for ELF binaries"
3*1da177e4SLinus Torvalds	depends on MMU
4*1da177e4SLinus Torvalds	default y
5*1da177e4SLinus Torvalds	---help---
6*1da177e4SLinus Torvalds	  ELF (Executable and Linkable Format) is a format for libraries and
7*1da177e4SLinus Torvalds	  executables used across different architectures and operating
8*1da177e4SLinus Torvalds	  systems. Saying Y here will enable your kernel to run ELF binaries
9*1da177e4SLinus Torvalds	  and enlarge it by about 13 KB. ELF support under Linux has now all
10*1da177e4SLinus Torvalds	  but replaced the traditional Linux a.out formats (QMAGIC and ZMAGIC)
11*1da177e4SLinus Torvalds	  because it is portable (this does *not* mean that you will be able
12*1da177e4SLinus Torvalds	  to run executables from different architectures or operating systems
13*1da177e4SLinus Torvalds	  however) and makes building run-time libraries very easy. Many new
14*1da177e4SLinus Torvalds	  executables are distributed solely in ELF format. You definitely
15*1da177e4SLinus Torvalds	  want to say Y here.
16*1da177e4SLinus Torvalds
17*1da177e4SLinus Torvalds	  Information about ELF is contained in the ELF HOWTO available from
18*1da177e4SLinus Torvalds	  <http://www.tldp.org/docs.html#howto>.
19*1da177e4SLinus Torvalds
20*1da177e4SLinus Torvalds	  If you find that after upgrading from Linux kernel 1.2 and saying Y
21*1da177e4SLinus Torvalds	  here, you still can't run any ELF binaries (they just crash), then
22*1da177e4SLinus Torvalds	  you'll have to install the newest ELF runtime libraries, including
23*1da177e4SLinus Torvalds	  ld.so (check the file <file:Documentation/Changes> for location and
24*1da177e4SLinus Torvalds	  latest version).
25*1da177e4SLinus Torvalds
26*1da177e4SLinus Torvaldsconfig BINFMT_ELF_FDPIC
27*1da177e4SLinus Torvalds	bool "Kernel support for FDPIC ELF binaries"
28*1da177e4SLinus Torvalds	default y
29*1da177e4SLinus Torvalds	depends on FRV
30*1da177e4SLinus Torvalds	help
31*1da177e4SLinus Torvalds	  ELF FDPIC binaries are based on ELF, but allow the individual load
32*1da177e4SLinus Torvalds	  segments of a binary to be located in memory independently of each
33*1da177e4SLinus Torvalds	  other. This makes this format ideal for use in environments where no
34*1da177e4SLinus Torvalds	  MMU is available as it still permits text segments to be shared,
35*1da177e4SLinus Torvalds	  even if data segments are not.
36*1da177e4SLinus Torvalds
37*1da177e4SLinus Torvalds	  It is also possible to run FDPIC ELF binaries on MMU linux also.
38*1da177e4SLinus Torvalds
39*1da177e4SLinus Torvaldsconfig BINFMT_FLAT
40*1da177e4SLinus Torvalds	tristate "Kernel support for flat binaries"
41*1da177e4SLinus Torvalds	depends on !MMU || SUPERH
42*1da177e4SLinus Torvalds	help
43*1da177e4SLinus Torvalds	  Support uClinux FLAT format binaries.
44*1da177e4SLinus Torvalds
45*1da177e4SLinus Torvaldsconfig BINFMT_ZFLAT
46*1da177e4SLinus Torvalds	bool "Enable ZFLAT support"
47*1da177e4SLinus Torvalds	depends on BINFMT_FLAT
48*1da177e4SLinus Torvalds	select ZLIB_INFLATE
49*1da177e4SLinus Torvalds	help
50*1da177e4SLinus Torvalds	  Support FLAT format compressed binaries
51*1da177e4SLinus Torvalds
52*1da177e4SLinus Torvaldsconfig BINFMT_SHARED_FLAT
53*1da177e4SLinus Torvalds	bool "Enable shared FLAT support"
54*1da177e4SLinus Torvalds	depends on BINFMT_FLAT
55*1da177e4SLinus Torvalds	help
56*1da177e4SLinus Torvalds	  Support FLAT shared libraries
57*1da177e4SLinus Torvalds
58*1da177e4SLinus Torvaldsconfig BINFMT_AOUT
59*1da177e4SLinus Torvalds	tristate "Kernel support for a.out and ECOFF binaries"
60*1da177e4SLinus Torvalds	depends on (X86 && !X86_64) || ALPHA || ARM || M68K || SPARC32
61*1da177e4SLinus Torvalds	---help---
62*1da177e4SLinus Torvalds	  A.out (Assembler.OUTput) is a set of formats for libraries and
63*1da177e4SLinus Torvalds	  executables used in the earliest versions of UNIX.  Linux used
64*1da177e4SLinus Torvalds	  the a.out formats QMAGIC and ZMAGIC until they were replaced
65*1da177e4SLinus Torvalds	  with the ELF format.
66*1da177e4SLinus Torvalds
67*1da177e4SLinus Torvalds	  The conversion to ELF started in 1995.  This option is primarily
68*1da177e4SLinus Torvalds	  provided for historical interest and for the benefit of those
69*1da177e4SLinus Torvalds	  who need to run binaries from that era.
70*1da177e4SLinus Torvalds
71*1da177e4SLinus Torvalds	  Most people should answer N here.  If you think you may have
72*1da177e4SLinus Torvalds	  occasional use for this format, enable module support above
73*1da177e4SLinus Torvalds	  and answer M here to compile this support as a module called
74*1da177e4SLinus Torvalds	  binfmt_aout.
75*1da177e4SLinus Torvalds
76*1da177e4SLinus Torvalds	  If any crucial components of your system (such as /sbin/init
77*1da177e4SLinus Torvalds	  or /lib/ld.so) are still in a.out format, you will have to
78*1da177e4SLinus Torvalds	  say Y here.
79*1da177e4SLinus Torvalds
80*1da177e4SLinus Torvaldsconfig OSF4_COMPAT
81*1da177e4SLinus Torvalds	bool "OSF/1 v4 readv/writev compatibility"
82*1da177e4SLinus Torvalds	depends on ALPHA && BINFMT_AOUT
83*1da177e4SLinus Torvalds	help
84*1da177e4SLinus Torvalds	  Say Y if you are using OSF/1 binaries (like Netscape and Acrobat)
85*1da177e4SLinus Torvalds	  with v4 shared libraries freely available from Compaq. If you're
86*1da177e4SLinus Torvalds	  going to use shared libraries from Tru64 version 5.0 or later, say N.
87*1da177e4SLinus Torvalds
88*1da177e4SLinus Torvaldsconfig BINFMT_EM86
89*1da177e4SLinus Torvalds	tristate "Kernel support for Linux/Intel ELF binaries"
90*1da177e4SLinus Torvalds	depends on ALPHA
91*1da177e4SLinus Torvalds	---help---
92*1da177e4SLinus Torvalds	  Say Y here if you want to be able to execute Linux/Intel ELF
93*1da177e4SLinus Torvalds	  binaries just like native Alpha binaries on your Alpha machine. For
94*1da177e4SLinus Torvalds	  this to work, you need to have the emulator /usr/bin/em86 in place.
95*1da177e4SLinus Torvalds
96*1da177e4SLinus Torvalds	  You can get the same functionality by saying N here and saying Y to
97*1da177e4SLinus Torvalds	  "Kernel support for MISC binaries".
98*1da177e4SLinus Torvalds
99*1da177e4SLinus Torvalds	  You may answer M to compile the emulation support as a module and
100*1da177e4SLinus Torvalds	  later load the module when you want to use a Linux/Intel binary. The
101*1da177e4SLinus Torvalds	  module will be called binfmt_em86. If unsure, say Y.
102*1da177e4SLinus Torvalds
103*1da177e4SLinus Torvaldsconfig BINFMT_SOM
104*1da177e4SLinus Torvalds	tristate "Kernel support for SOM binaries"
105*1da177e4SLinus Torvalds	depends on PARISC && HPUX
106*1da177e4SLinus Torvalds	help
107*1da177e4SLinus Torvalds	  SOM is a binary executable format inherited from HP/UX.  Say
108*1da177e4SLinus Torvalds	  Y here to be able to load and execute SOM binaries directly.
109*1da177e4SLinus Torvalds
110*1da177e4SLinus Torvaldsconfig BINFMT_MISC
111*1da177e4SLinus Torvalds	tristate "Kernel support for MISC binaries"
112*1da177e4SLinus Torvalds	---help---
113*1da177e4SLinus Torvalds	  If you say Y here, it will be possible to plug wrapper-driven binary
114*1da177e4SLinus Torvalds	  formats into the kernel. You will like this especially when you use
115*1da177e4SLinus Torvalds	  programs that need an interpreter to run like Java, Python, .NET or
116*1da177e4SLinus Torvalds	  Emacs-Lisp. It's also useful if you often run DOS executables under
117*1da177e4SLinus Torvalds	  the Linux DOS emulator DOSEMU (read the DOSEMU-HOWTO, available from
118*1da177e4SLinus Torvalds	  <http://www.tldp.org/docs.html#howto>). Once you have
119*1da177e4SLinus Torvalds	  registered such a binary class with the kernel, you can start one of
120*1da177e4SLinus Torvalds	  those programs simply by typing in its name at a shell prompt; Linux
121*1da177e4SLinus Torvalds	  will automatically feed it to the correct interpreter.
122*1da177e4SLinus Torvalds
123*1da177e4SLinus Torvalds	  You can do other nice things, too. Read the file
124*1da177e4SLinus Torvalds	  <file:Documentation/binfmt_misc.txt> to learn how to use this
125*1da177e4SLinus Torvalds	  feature, <file:Documentation/java.txt> for information about how
126*1da177e4SLinus Torvalds	  to include Java support. and <file:Documentation/mono.txt> for
127*1da177e4SLinus Torvalds          information about how to include Mono-based .NET support.
128*1da177e4SLinus Torvalds
129*1da177e4SLinus Torvalds          To use binfmt_misc, you will need to mount it:
130*1da177e4SLinus Torvalds		mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc
131*1da177e4SLinus Torvalds
132*1da177e4SLinus Torvalds	  You may say M here for module support and later load the module when
133*1da177e4SLinus Torvalds	  you have use for it; the module is called binfmt_misc. If you
134*1da177e4SLinus Torvalds	  don't know what to answer at this point, say Y.
135