summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2013-04-29 16:06:10 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2013-05-15 19:35:53 +0100
commit049f3e84d34bfc37f25c91715f2e24a90fb8665e (patch)
tree574e09c5100c0e7ef651f7d277f9deb6ca0ef98f
parent9394c1c65e61eb6f4c1c99f342b49e451ec337b6 (diff)
downloadlinux-049f3e84d34bfc37f25c91715f2e24a90fb8665e.tar.gz
linux-049f3e84d34bfc37f25c91715f2e24a90fb8665e.tar.bz2
linux-049f3e84d34bfc37f25c91715f2e24a90fb8665e.zip
ARM: 7705/1: use optimized do_div only for EABI
In OABI configurations, some uses of the do_div function cause gcc to run out of registers. To work around that, we can force the use of the out-of-line version for configurations that build a OABI kernel. Without this patch, building netx_defconfig results in: net/core/pktgen.c: In function 'pktgen_if_show': net/core/pktgen.c:682:2775: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm' net/core/pktgen.c:682:3153: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm' net/core/pktgen.c:682:2775: error: 'asm' operand has impossible constraints net/core/pktgen.c:682:3153: error: 'asm' operand has impossible constraints Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r--arch/arm/include/asm/div64.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm/include/asm/div64.h b/arch/arm/include/asm/div64.h
index fe92ccf1d0b0..191ada6e4d2d 100644
--- a/arch/arm/include/asm/div64.h
+++ b/arch/arm/include/asm/div64.h
@@ -46,7 +46,7 @@
__rem; \
})
-#if __GNUC__ < 4
+#if __GNUC__ < 4 || !defined(CONFIG_AEABI)
/*
* gcc versions earlier than 4.0 are simply too problematic for the