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 28b9d36d5dSRoland McGrath depends on COMPAT && MMU 29b9d36d5dSRoland McGrath 301da177e4SLinus Torvaldsconfig BINFMT_ELF_FDPIC 311da177e4SLinus Torvalds bool "Kernel support for FDPIC ELF binaries" 321da177e4SLinus Torvalds default y 33*3bc24a1aSPaul 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 621da177e4SLinus Torvaldsconfig BINFMT_AOUT 631da177e4SLinus Torvalds tristate "Kernel support for a.out and ECOFF binaries" 647fa30315SDavid Howells depends on ARCH_SUPPORTS_AOUT && \ 65ec98c6b9SDavid S. Miller (X86_32 || ALPHA || ARM || M68K) 661da177e4SLinus Torvalds ---help--- 671da177e4SLinus Torvalds A.out (Assembler.OUTput) is a set of formats for libraries and 681da177e4SLinus Torvalds executables used in the earliest versions of UNIX. Linux used 691da177e4SLinus Torvalds the a.out formats QMAGIC and ZMAGIC until they were replaced 701da177e4SLinus Torvalds with the ELF format. 711da177e4SLinus Torvalds 721da177e4SLinus Torvalds The conversion to ELF started in 1995. This option is primarily 731da177e4SLinus Torvalds provided for historical interest and for the benefit of those 741da177e4SLinus Torvalds who need to run binaries from that era. 751da177e4SLinus Torvalds 761da177e4SLinus Torvalds Most people should answer N here. If you think you may have 771da177e4SLinus Torvalds occasional use for this format, enable module support above 781da177e4SLinus Torvalds and answer M here to compile this support as a module called 791da177e4SLinus Torvalds binfmt_aout. 801da177e4SLinus Torvalds 811da177e4SLinus Torvalds If any crucial components of your system (such as /sbin/init 821da177e4SLinus Torvalds or /lib/ld.so) are still in a.out format, you will have to 831da177e4SLinus Torvalds say Y here. 841da177e4SLinus Torvalds 851da177e4SLinus Torvaldsconfig OSF4_COMPAT 861da177e4SLinus Torvalds bool "OSF/1 v4 readv/writev compatibility" 871da177e4SLinus Torvalds depends on ALPHA && BINFMT_AOUT 881da177e4SLinus Torvalds help 891da177e4SLinus Torvalds Say Y if you are using OSF/1 binaries (like Netscape and Acrobat) 901da177e4SLinus Torvalds with v4 shared libraries freely available from Compaq. If you're 911da177e4SLinus Torvalds going to use shared libraries from Tru64 version 5.0 or later, say N. 921da177e4SLinus Torvalds 931da177e4SLinus Torvaldsconfig BINFMT_EM86 941da177e4SLinus Torvalds tristate "Kernel support for Linux/Intel ELF binaries" 951da177e4SLinus Torvalds depends on ALPHA 961da177e4SLinus Torvalds ---help--- 971da177e4SLinus Torvalds Say Y here if you want to be able to execute Linux/Intel ELF 981da177e4SLinus Torvalds binaries just like native Alpha binaries on your Alpha machine. For 991da177e4SLinus Torvalds this to work, you need to have the emulator /usr/bin/em86 in place. 1001da177e4SLinus Torvalds 1011da177e4SLinus Torvalds You can get the same functionality by saying N here and saying Y to 1021da177e4SLinus Torvalds "Kernel support for MISC binaries". 1031da177e4SLinus Torvalds 1041da177e4SLinus Torvalds You may answer M to compile the emulation support as a module and 1051da177e4SLinus Torvalds later load the module when you want to use a Linux/Intel binary. The 1061da177e4SLinus Torvalds module will be called binfmt_em86. If unsure, say Y. 1071da177e4SLinus Torvalds 1081da177e4SLinus Torvaldsconfig BINFMT_SOM 1091da177e4SLinus Torvalds tristate "Kernel support for SOM binaries" 1101da177e4SLinus Torvalds depends on PARISC && HPUX 1111da177e4SLinus Torvalds help 1121da177e4SLinus Torvalds SOM is a binary executable format inherited from HP/UX. Say 1131da177e4SLinus Torvalds Y here to be able to load and execute SOM binaries directly. 1141da177e4SLinus Torvalds 1151da177e4SLinus Torvaldsconfig BINFMT_MISC 1161da177e4SLinus Torvalds tristate "Kernel support for MISC binaries" 1171da177e4SLinus Torvalds ---help--- 1181da177e4SLinus Torvalds If you say Y here, it will be possible to plug wrapper-driven binary 1191da177e4SLinus Torvalds formats into the kernel. You will like this especially when you use 1201da177e4SLinus Torvalds programs that need an interpreter to run like Java, Python, .NET or 1211da177e4SLinus Torvalds Emacs-Lisp. It's also useful if you often run DOS executables under 1221da177e4SLinus Torvalds the Linux DOS emulator DOSEMU (read the DOSEMU-HOWTO, available from 1231da177e4SLinus Torvalds <http://www.tldp.org/docs.html#howto>). Once you have 1241da177e4SLinus Torvalds registered such a binary class with the kernel, you can start one of 1251da177e4SLinus Torvalds those programs simply by typing in its name at a shell prompt; Linux 1261da177e4SLinus Torvalds will automatically feed it to the correct interpreter. 1271da177e4SLinus Torvalds 1281da177e4SLinus Torvalds You can do other nice things, too. Read the file 1291da177e4SLinus Torvalds <file:Documentation/binfmt_misc.txt> to learn how to use this 1301da177e4SLinus Torvalds feature, <file:Documentation/java.txt> for information about how 1311da177e4SLinus Torvalds to include Java support. and <file:Documentation/mono.txt> for 1321da177e4SLinus Torvalds information about how to include Mono-based .NET support. 1331da177e4SLinus Torvalds 1341da177e4SLinus Torvalds To use binfmt_misc, you will need to mount it: 1351da177e4SLinus Torvalds mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc 1361da177e4SLinus Torvalds 1371da177e4SLinus Torvalds You may say M here for module support and later load the module when 1381da177e4SLinus Torvalds you have use for it; the module is called binfmt_misc. If you 1391da177e4SLinus Torvalds don't know what to answer at this point, say Y. 140