summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2008-05-15 21:01:45 (GMT)
committerYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2008-05-15 21:01:45 (GMT)
commit7eb9c29a52e090558b60576630b6f9fd431fb47e (patch)
treeb634a7657f681b06b6637eef76cb48e90114f27a
parentb1fb41d2bdc51af05bfe27946f913dee09bb26e9 (diff)
Backport #635 from trunk:
Fix the EABI case for ARM. /branches/1.1/arch/arm/functions | 17 17 0 0 +++++++++++++++++ /branches/1.1/arch/arm/config.in | 3 3 0 0 +++ 2 files changed, 20 insertions(+)
-rw-r--r--arch/arm/config.in3
-rw-r--r--arch/arm/functions17
2 files changed, 20 insertions, 0 deletions
diff --git a/arch/arm/config.in b/arch/arm/config.in
index acc6c4e..093e42b 100644
--- a/arch/arm/config.in
+++ b/arch/arm/config.in
@@ -7,3 +7,6 @@ config ARCH_ARM_EABI
default n
help
Set up the toolchain so that it generates EABI-compliant binaries.
+
+config ARCH_ABI
+ default "aapcs" if ARCH_ARM_EABI
diff --git a/arch/arm/functions b/arch/arm/functions
index 464de42..e356524 100644
--- a/arch/arm/functions
+++ b/arch/arm/functions
@@ -11,4 +11,21 @@ CT_DoArchValues() {
uClibc,) CT_TARGET_SYS=uclibc;;
uClibc,y) CT_TARGET_SYS=uclibcgnueabi;;
esac
+
+ case "${CT_ARCH_ABI},${CT_ARCH_ARM_EABI}" in
+ *,) ;;
+ aapcs,y)
+ CT_DoLog DEBUG "'--with-abi=aapcs' is in fact '-mabi=aapcs-linux' when used in CFLAGS."
+ CT_ARCH_ABI_CFLAGS="-mabi=aapcs-linux"
+ ;;
+ ,y)
+ CT_DoLog WARN "Forcing ABI to 'aapcs-linux' for use with EABI."
+ CT_ARCH_WITH_ABI="--with-abi=aapcs"
+ CT_ARCH_ABI_CFLAGS="-mabi=aapcs-linux"
+ ;;
+ *,y)
+ CT_DoLog ERROR "ABI='${CT_ARCH_ABI}' not supported for EABI."
+ CT_Abort "If you know you are right, please edit 'arch/arm/functions' in crosstool-NG sources."
+ ;;
+ esac
}