From 6be3032048ee2466511d2384fcf2d28b856219b2 Mon Sep 17 00:00:00 2001 From: Jussi Kivilinna Date: Tue, 4 Feb 2014 17:50:48 +0200 Subject: Fix ARMv6 detection when CFLAGS modify target CPU architecture * configure.ac (gcry_cv_cc_arm_arch_is_v6): Use compiler test instead of preprocessor test. -- Old test was using C preprocessor to check ARM version macros and missed fact that using different CFLAGS affect those macros (CFLAGS are not passed to preprocessor checks). Signed-off-by: Jussi Kivilinna --- configure.ac | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'configure.ac') diff --git a/configure.ac b/configure.ac index 62544533..a447859d 100644 --- a/configure.ac +++ b/configure.ac @@ -1307,8 +1307,10 @@ AC_CACHE_CHECK([whether compiler is configured for ARMv6 or newer architecture], [if test "$mpi_cpu_arch" != "arm" ; then gcry_cv_cc_arm_arch_is_v6="n/a" else - AC_EGREP_CPP(yes, - [#if defined(__arm__) && \ + gcry_cv_cc_arm_arch_is_v6=no + AC_COMPILE_IFELSE([AC_LANG_SOURCE( + [[ + #if defined(__arm__) && \ ((defined(__ARM_ARCH) && __ARM_ARCH >= 6) \ || defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) \ || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) \ @@ -1316,9 +1318,13 @@ AC_CACHE_CHECK([whether compiler is configured for ARMv6 or newer architecture], || defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) \ || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) \ || defined(__ARM_ARCH_7EM__)) - yes + /* empty */ + #else + /* fail compile if not ARMv6. */ + not_armv6 not_armv6 = (not_armv6)not_armv6; #endif - ], gcry_cv_cc_arm_arch_is_v6=yes, gcry_cv_cc_arm_arch_is_v6=no) + ]])], + [gcry_cv_cc_arm_arch_is_v6=yes]) fi]) if test "$gcry_cv_cc_arm_arch_is_v6" = "yes" ; then AC_DEFINE(HAVE_ARM_ARCH_V6,1, -- cgit v1.2.1