40 lines
1.3 KiB
Diff
40 lines
1.3 KiB
Diff
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
|