config/arch/arm.in.2
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Thu Jan 10 00:27:13 2013 +0100 (2013-01-10)
changeset 3159 fb71cad4b085
parent 3158 1161ea79915b
permissions -rw-r--r--
arch/arm: OABI is no more, switch to only EABI

Well, leave the prompt as an OBSOLETE thing, scheduled to
be removed soon.

As an indication OABI lives its last days, gcc-4.8 will no
longer recognise non-EABI targets.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
     1 # ARM specific configuration file
     2 
     3 config ARCH_ARM_MODE
     4     string
     5     default "arm"   if ARCH_ARM_MODE_ARM
     6     default "thumb" if ARCH_ARM_MODE_THUMB
     7 
     8 choice
     9     bool
    10     prompt "Default instruction set mode"
    11     default ARCH_ARM_MODE_ARM
    12 
    13 config ARCH_ARM_MODE_ARM
    14     bool
    15     prompt "arm"
    16     help
    17       Defaults to emitting instructions in the ARM mode.
    18 
    19 config ARCH_ARM_MODE_THUMB
    20     bool
    21     prompt "thumb"
    22     help
    23       Defaults to emitting instructions in the THUMB mode.
    24 
    25 endchoice
    26 
    27 config ARCH_ARM_INTERWORKING
    28     bool
    29     prompt "Use Thumb-interworking (READ HELP)"
    30     help
    31       Excerpt from the gcc manual:
    32       
    33       > Generate code which supports calling between the ARM and Thumb
    34       > instruction sets. Without this option the two instruction sets
    35       > cannot be reliably used inside one program. The default is
    36       > [not to use interwork], since slightly larger code is generated
    37       > when [interwork] is specified.
    38       
    39       NOTE: Interworking in crosstool-NG is not sell-tested. Use at your
    40             own risks, and report success and/or failure.
    41 
    42 # Until we only support EABI:
    43 config ARCH_ARM_ABI_OK
    44     def_bool y
    45     depends on ! ARCH_ARM_EABI
    46     select ARCH_SUPPORTS_WITH_ABI
    47 
    48 # Little trick to force EABI *and* always show the prompt
    49 config ARCH_ARM_EABI_FORCE
    50     bool
    51     default y if ! OBSOLETE
    52     select ARCH_ARM_EABI
    53 
    54 config ARCH_ARM_EABI
    55     bool
    56     prompt "Use EABI"
    57     default y
    58     help
    59       Set up the toolchain so that it generates EABI-compliant binaries.
    60       
    61       If you say 'n' here, then the toolchain will generate OABI binaries.
    62       OABI has long been deprecated, and is now considered legacy.
    63 
    64 config ARCH_ARM_TUPLE_USE_EABIHF
    65     bool
    66     prompt "append 'hf' to the tuple (EXPERIMENTAL)"
    67     depends on ARCH_FLOAT_HW
    68     depends on ARCH_ARM_EABI    # Until we only support that...
    69     depends on EXPERIMENTAL
    70     help
    71       Is you say 'y' here, then the tuple for the toolchain will end
    72       up with *eabihf, instead of the usual *eabi.
    73 
    74       *eabihf is used to denote that the toolchain *is* using the
    75       hard-float ABI, while *eabi is just an indication of using the
    76       soft-float ABI.
    77 
    78       Ie. all one can say is:  *eabihf ⊢ hard-float ABI
    79 
    80       Saying 'n' here does *not* impact the ability of the toolchain to
    81       generate hard-float instructions with the hard-float ABI. It is a
    82       purely cosmetic thing, used by distros to differentiate their
    83       hard-float-ABI-using ports from their soft-float-ABI-using ports.
    84       (eg. Debian Wheezy and above).
    85 
    86       This is an option, as not all versions of gcc/binutils do support
    87       such tuple, and fail to build with *eabihf. Stock gcc version up
    88       to, and including 4.7.2 have an issue or another with *eabihf.
    89 
    90       This option is here for the future.
    91 
    92       Say 'n', unless you are trying to fix gcc to properly recognise
    93       the *eabihf tuples.