summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Zankel <chris@zankel.net>2012-12-05 19:36:36 +0000
committerPeter Korsgaard <jacmet@sunsite.dk>2012-12-31 16:52:38 +0100
commitb95825e626259b86d943573426991b3af0f0c19f (patch)
treecaf8be9422a89fb18ba6d70365228c116aa2feba
parent4e3dd2f881ce89dc69035d411dd36865c82e1fef (diff)
downloadbuildroot-novena-b95825e626259b86d943573426991b3af0f0c19f.tar.gz
buildroot-novena-b95825e626259b86d943573426991b3af0f0c19f.zip
xtensa: add -mlongcalls to CFLAGS for xtensa
The longcalls option allows calls across a greater range of addresses. This option may degrade both code size and performance, but the linker can generally optimize away the unnecessary overhead when a call ends up within range Signed-off-by: Chris Zankel <chris@zankel.net> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
-rw-r--r--package/Makefile.in9
1 files changed, 9 insertions, 0 deletions
diff --git a/package/Makefile.in b/package/Makefile.in
index 8dea51eff..4281773a3 100644
--- a/package/Makefile.in
+++ b/package/Makefile.in
@@ -56,6 +56,15 @@ TARGET_ABI+=-mabi=spe -mfloat-gprs=double -Wa,-me500mc
endif
endif
+# Use longcalls option for Xtensa globally.
+# The 'longcalls' option allows calls across a greater range of addresses,
+# and is required for some packages. While this option can degrade both
+# code size and performance, the linker can usually optimize away the
+# overhead when a call ends up within a certain range.
+ifeq ($(BR2_xtensa),y)
+TARGET_ABI += -mlongcalls
+endif
+
STAGING_DIR=$(HOST_DIR)/usr/$(GNU_TARGET_NAME)/sysroot
TARGET_OPTIMIZATION:=$(call qstrip,$(BR2_TARGET_OPTIMIZATION))