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 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