| # ARM specific configuration file |
| |
| config ARCH_ARM_MODE |
| string |
| default "arm" if ARCH_ARM_MODE_ARM |
| default "thumb" if ARCH_ARM_MODE_THUMB |
| |
| choice |
| bool |
| prompt "Default instruction set mode" |
| default ARCH_ARM_MODE_ARM |
| |
| config ARCH_ARM_MODE_ARM |
| bool |
| prompt "arm" |
| help |
| Defaults to emitting instructions in the ARM mode. |
| |
| config ARCH_ARM_MODE_THUMB |
| bool |
| prompt "thumb" |
| help |
| Defaults to emitting instructions in the THUMB mode. |
| |
| endchoice |
| |
| config ARCH_ARM_INTERWORKING |
| bool |
| prompt "Use Thumb-interworking (READ HELP)" |
| help |
| Excerpt from the gcc manual: |
| |
| > Generate code which supports calling between the ARM and Thumb |
| > instruction sets. Without this option the two instruction sets |
| > cannot be reliably used inside one program. The default is |
| > [not to use interwork], since slightly larger code is generated |
| > when [interwork] is specified. |
| |
| NOTE: Interworking in crosstool-NG is not sell-tested. Use at your |
| own risks, and report success and/or failure. |
| |
| # Until we only support EABI: |
| config ARCH_ARM_ABI_OK |
| def_bool y |
| depends on ! ARCH_ARM_EABI |
| select ARCH_SUPPORTS_WITH_ABI |
| |
| # Little trick to force EABI *and* always show the prompt |
| config ARCH_ARM_EABI_FORCE |
| bool |
| default y if ! OBSOLETE |
| select ARCH_ARM_EABI |
| |
| config ARCH_ARM_EABI |
| bool |
| prompt "Use EABI" |
| default y |
| help |
| Set up the toolchain so that it generates EABI-compliant binaries. |
| |
| If you say 'n' here, then the toolchain will generate OABI binaries. |
| OABI has long been deprecated, and is now considered legacy. |
| |
| config ARCH_ARM_TUPLE_USE_EABIHF |
| bool |
| prompt "append 'hf' to the tuple (EXPERIMENTAL)" |
| depends on ARCH_FLOAT_HW |
| depends on ARCH_ARM_EABI # Until we only support that... |
| depends on EXPERIMENTAL |
| help |
| Is you say 'y' here, then the tuple for the toolchain will end |
| up with *eabihf, instead of the usual *eabi. |
| |
| *eabihf is used to denote that the toolchain *is* using the |
| hard-float ABI, while *eabi is just an indication of using the |
| soft-float ABI. |
| |
| Ie. all one can say is: *eabihf ⊢ hard-float ABI |
| |
| Saying 'n' here does *not* impact the ability of the toolchain to |
| generate hard-float instructions with the hard-float ABI. It is a |
| purely cosmetic thing, used by distros to differentiate their |
| hard-float-ABI-using ports from their soft-float-ABI-using ports. |
| (eg. Debian Wheezy and above). |
| |
| This is an option, as not all versions of gcc/binutils do support |
| such tuple, and fail to build with *eabihf. Stock gcc version up |
| to, and including 4.7.2 have an issue or another with *eabihf. |
| |
| This option is here for the future. |
| |
| Say 'n', unless you are trying to fix gcc to properly recognise |
| the *eabihf tuples. |