summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>2009-10-31 09:07:14 +0100
committerJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>2009-11-03 13:01:27 +0100
commit67b2697613455a09e56d77dab1ab602d4d5ac5c0 (patch)
treea915d6dc75e4687d62c149d4a1b3572d0751a480
parent73d57b1d3537075c3455ec279c7d1a44bf34ac68 (diff)
downloadbarebox-67b2697613455a09e56d77dab1ab602d4d5ac5c0.tar.gz
barebox-67b2697613455a09e56d77dab1ab602d4d5ac5c0.tar.xz
arm: add configurable AEABI support
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
-rw-r--r--arch/arm/Kconfig8
-rw-r--r--arch/arm/Makefile8
2 files changed, 15 insertions, 1 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 1ce216aa72..a3866dc165 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -54,6 +54,14 @@ source arch/arm/mach-netx/Kconfig
source arch/arm/mach-omap/Kconfig
source arch/arm/mach-s3c24xx/Kconfig
+config AEABI
+ bool "Use the ARM EABI to compile u-boot"
+ help
+ This option allows for u-boot to be compiled using the latest
+ ARM ABI (aka EABI).
+
+ To use this you need GCC version 4.0.0 or later.
+
endmenu
menu "Arm specific settings "
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 87783cb5ed..55c2dc30f2 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -27,7 +27,13 @@ arch-$(CONFIG_CPU_32v4T) :=-D__LINUX_ARM_ARCH__=4 -march=armv4t
tune-$(CONFIG_CPU_ARM920T) :=-mtune=arm9tdmi
tune-$(CONFIG_CPU_ARM926T) :=-mtune=arm9tdmi
-CPPFLAGS += $(arch-y) $(tune-y)
+ifeq ($(CONFIG_AEABI),y)
+CFLAGS_ABI :=-mabi=aapcs-linux -mno-thumb-interwork
+else
+CFLAGS_ABI :=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) $(call cc-option,-mno-thumb-interwork,)
+endif
+
+CPPFLAGS += $(CFLAGS_ABI) $(arch-y) $(tune-y)
# Machine directory name. This list is sorted alphanumerically
# by CONFIG_* macro name.