The kernel configuration file has a section named Executable file formats / Emulations. The file is named /boot/config-`uname -r` on some Linux distributions like Fedora for example.
Some of the available options for 3.14.12 x86 (64 bit) are:
- CONFIG_BINFMT_ELF
CONFIG_BINFMT_SCRIPT
Say Y here if you want to execute interpreted scripts starting with
#! followed by the path to an interpreter.
CONFIG_IA32_EMULATION
Include code to run legacy 32-bit programs under a 64-bit kernel.
CONFIG_IA32_AOUT:
Support old a.out binaries in the 32bit emulation.
CONFIG_X86_X32:
Include code to run binaries for the x32 native 32-bit ABI for
64-bit processors. An x32 process gets access to the full 64-bit
register file and wide data path while leaving pointers at 32
bits for smaller memory footprint.
kernel-3.14.1-200.fc20.x86_64 comes with this configuration:
CONFIG_BINFMT_ELF=y
CONFIG_COMPAT_BINFMT_ELF=y
CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
CONFIG_BINFMT_SCRIPT=y
# CONFIG_HAVE_AOUT is not set
CONFIG_BINFMT_MISC=m
CONFIG_COREDUMP=y
CONFIG_IA32_EMULATION=y
# CONFIG_IA32_AOUT is not set
# CONFIG_X86_X32 is not set