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