2010-09-11 10:42:22 +00:00
|
|
|
# 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
|
2012-12-26 19:05:19 +00:00
|
|
|
prompt "thumb"
|
2010-09-11 10:42:22 +00:00
|
|
|
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.
|
2012-12-26 19:05:19 +00:00
|
|
|
|
|
|
|
NOTE: Interworking in crosstool-NG is not sell-tested. Use at your
|
|
|
|
own risks, and report success and/or failure.
|
2010-09-11 10:42:22 +00:00
|
|
|
|
2013-01-09 23:27:13 +00:00
|
|
|
# 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
|
|
|
|
|
2010-09-11 10:42:22 +00:00
|
|
|
config ARCH_ARM_EABI
|
|
|
|
bool
|
|
|
|
prompt "Use EABI"
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
Set up the toolchain so that it generates EABI-compliant binaries.
|
2013-01-09 23:27:13 +00:00
|
|
|
|
|
|
|
If you say 'n' here, then the toolchain will generate OABI binaries.
|
|
|
|
OABI has long been deprecated, and is now considered legacy.
|
2010-09-11 10:42:22 +00:00
|
|
|
|
2013-01-09 23:11:17 +00:00
|
|
|
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.
|