blob: 69ec4547de9cdbc07f5f5b93436df4a302391218 [file] [log] [blame]
Improve the ARM detection to work on Thumb-only architecture
The ARM-specific assembly code doesn't build on Thumb-only
architectures such as ARMv7-M, but the configure script assumes that
if the host tuple is arm*, then it can build and use the ARM optimized
code.
This patch improves the configure.ac detection logic, by building one
of the instruction of the optimized assembly code, and using this to
decide whether or not the optimizations should be enabled.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Index: b/configure.ac
===================================================================
--- a/configure.ac
+++ b/configure.ac
@@ -101,8 +101,10 @@
alpha*)
AC_DEFINE([ARCH_ALPHA],,[alpha architecture]);;
arm*)
- arm_conditional=:
- AC_DEFINE([ARCH_ARM],,[ARM architecture]);;
+ AC_TRY_LINK([], [asm(".syntax divided\nstmfd sp!,{r4-r11,lr}")],
+ [AC_DEFINE([ARCH_ARM],,[ARM architecture])
+ use_arm_optimization=yes],
+ [use_arm_optimization=no])
esac
elif test x"$CC" = x"tendracc"; then
dnl TenDRA portability checking compiler
@@ -122,7 +124,7 @@
esac
fi
-AM_CONDITIONAL(ARCH_ARM, ${arm_conditional})
+AM_CONDITIONAL(ARCH_ARM, test "${use_arm_optimization}" = "yes")
dnl Checks for libtool - this must be done after we set cflags
AC_LIBTOOL_WIN32_DLL