diff options
Diffstat (limited to 'config/arch/arm')
-rw-r--r-- | config/arch/arm/config.in | 26 | ||||
-rw-r--r-- | config/arch/arm/functions | 17 |
2 files changed, 43 insertions, 0 deletions
diff --git a/config/arch/arm/config.in b/config/arch/arm/config.in new file mode 100644 index 0000000..a3c3d97 --- /dev/null +++ b/config/arch/arm/config.in @@ -0,0 +1,26 @@ +# ARM specific configuration file + +config ARCH_arm + select ARCH_SUPPORTS_BOTH_ENDIAN + select ARCH_DEFAULT_LE + select ARCH_SUPPORT_ARCH + select ARCH_SUPPORT_CPU + select ARCH_SUPPORT_TUNE + select ARCH_SUPPORT_FPU + help + The ARM architecture, as defined by: + http://www.arm.com/ + +config ARCH_ARM_EABI + bool + prompt "Use EABI" + default n + help + Set up the toolchain so that it generates EABI-compliant binaries. + +config ARCH_ARM_ABI_OK + bool + default y + depends on ! ARCH_ARM_EABI + select ARCH_SUPPORT_ABI + diff --git a/config/arch/arm/functions b/config/arch/arm/functions new file mode 100644 index 0000000..a1b8542 --- /dev/null +++ b/config/arch/arm/functions @@ -0,0 +1,17 @@ +# Compute ARM-specific values + +CT_DoArchValues() { + # The architecture part of the tuple: + CT_TARGET_ARCH="${CT_ARCH}${target_endian_eb}" + + # The system part of the tuple: + case "${CT_LIBC},${CT_ARCH_ARM_EABI}" in + *glibc,y) CT_TARGET_SYS=gnueabi;; + uClibc,y) CT_TARGET_SYS=uclibcgnueabi;; + none,y) CT_TARGET_SYS=eabi;; + esac + + # In case we're EABI, do *not* specify any ABI! + # which means, either we do not have an ABI specified, or we're not EABI. + CT_TestOrAbort "Internal error: CT_ARCH_ABI should not be set for EABI build." -z "${CT_ARCH_ABI}" -o -z "${CT_ARCH_ARM_EABI}" +} |