]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/arm/Kconfig
Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/x86
[linux-2.6-omap-h63xx.git] / arch / arm / Kconfig
index 3cfd82a05b20b1fb2cd2efbe6fd3c7520c6573dd..5959e36c3b4c52ba2eaeaedf8afe9ecced20c3f2 100644 (file)
@@ -180,6 +180,7 @@ config ARCH_OMAP
 config ARCH_VERSATILE
        bool "Versatile"
        select ARM_AMBA
 config ARCH_VERSATILE
        bool "Versatile"
        select ARM_AMBA
+       select ARM_VIC
        select ICST307
        help
          This enables support for ARM Ltd Versatile board.
        select ICST307
        help
          This enables support for ARM Ltd Versatile board.
@@ -400,6 +401,38 @@ config NO_IDLE_HZ
          Currently at least OMAP, PXA2xx and SA11x0 platforms are known
          to have accurate timekeeping with dynamic tick.
 
          Currently at least OMAP, PXA2xx and SA11x0 platforms are known
          to have accurate timekeeping with dynamic tick.
 
+config AEABI
+       bool "Use the ARM EABI to compile the kernel"
+       help
+         This option allows for the kernel to be compiled using the latest
+         ARM ABI (aka EABI).  This is only useful if you are using a user
+         space environment that is also compiled with EABI.
+
+         Since there are major incompatibilities between the legacy ABI and
+         EABI, especially with regard to structure member alignment, this
+         option also changes the kernel syscall calling convention to
+         disambiguate both ABIs and allow for backward compatibility support
+         (selected with CONFIG_OABI_COMPAT).
+
+         To use this you need GCC version 4.0.0 or later.
+
+config OABI_COMPAT
+       bool "Allow old ABI binaries to run with this kernel"
+       depends on AEABI
+       default y
+       help
+         This option preserves the old syscall interface along with the
+         new (ARM EABI) one. It also provides a compatibility layer to
+         intercept syscalls that have structure arguments which layout
+         in memory differs between the legacy ABI and the new ARM EABI
+         (only for non "thumb" binaries). This option adds a tiny
+         overhead to all syscalls and produces a slightly larger kernel.
+         If you know you'll be using only pure EABI user space then you
+         can say N here. If this option is not selected and you attempt
+         to execute a legacy ABI binary then the result will be
+         UNPREDICTABLE (in fact it can be predicted that it won't work
+         at all). If in doubt say Y.
+
 config ARCH_DISCONTIGMEM_ENABLE
        bool
        default (ARCH_LH7A40X && !LH7A40X_CONTIGMEM)
 config ARCH_DISCONTIGMEM_ENABLE
        bool
        default (ARCH_LH7A40X && !LH7A40X_CONTIGMEM)
@@ -586,6 +619,7 @@ comment "At least one emulation must be selected"
 
 config FPE_NWFPE
        bool "NWFPE math emulation"
 
 config FPE_NWFPE
        bool "NWFPE math emulation"
+       depends on !AEABI || OABI_COMPAT
        ---help---
          Say Y to include the NWFPE floating point emulator in the kernel.
          This is necessary to run most binaries. Linux does not currently
        ---help---
          Say Y to include the NWFPE floating point emulator in the kernel.
          This is necessary to run most binaries. Linux does not currently
@@ -609,7 +643,7 @@ config FPE_NWFPE_XP
 
 config FPE_FASTFPE
        bool "FastFPE math emulation (EXPERIMENTAL)"
 
 config FPE_FASTFPE
        bool "FastFPE math emulation (EXPERIMENTAL)"
-       depends on !CPU_32v3 && EXPERIMENTAL
+       depends on (!AEABI || OABI_COMPAT) && !CPU_32v3 && EXPERIMENTAL
        ---help---
          Say Y here to include the FAST floating point emulator in the kernel.
          This is an experimental much faster emulator which now also has full
        ---help---
          Say Y here to include the FAST floating point emulator in the kernel.
          This is an experimental much faster emulator which now also has full
@@ -641,6 +675,7 @@ source "fs/Kconfig.binfmt"
 
 config ARTHUR
        tristate "RISC OS personality"
 
 config ARTHUR
        tristate "RISC OS personality"
+       depends on !AEABI
        help
          Say Y here to include the kernel code necessary if you want to run
          Acorn RISC OS/Arthur binaries under Linux. This code is still very
        help
          Say Y here to include the kernel code necessary if you want to run
          Acorn RISC OS/Arthur binaries under Linux. This code is still very