summaryrefslogtreecommitdiffstats
path: root/newlib/libc/machine/arm/configure
diff options
context:
space:
mode:
authorMarcus Shawcroft <marcus.shawcroft@arm.com>2015-11-03 11:02:15 +0000
committerMarcus Shawcroft <marcus.shawcroft@arm.com>2015-11-03 11:04:55 +0000
commit0a4019eed22c1d84a87dd39370e56db2f19fe35a (patch)
tree7fb6c959e8e09f50930302e5d233a1bba59b4472 /newlib/libc/machine/arm/configure
parent06312793945e184036b9491767b9eacac9be3890 (diff)
downloadcygnal-0a4019eed22c1d84a87dd39370e56db2f19fe35a.tar.gz
cygnal-0a4019eed22c1d84a87dd39370e56db2f19fe35a.tar.bz2
cygnal-0a4019eed22c1d84a87dd39370e56db2f19fe35a.zip
[ARM] Select appropriate memcpy implementation for ARMv8-a.
The newlib configury logic that detects architecture version and chooses an appropriate memcpy implementation does not consider ARMv8-a. This patch adds configury logic to detect ARMv8-a along with the associated changes in Makefile.am and memcpy.
Diffstat (limited to 'newlib/libc/machine/arm/configure')
-rwxr-xr-xnewlib/libc/machine/arm/configure48
1 files changed, 48 insertions, 0 deletions
diff --git a/newlib/libc/machine/arm/configure b/newlib/libc/machine/arm/configure
index 48551009c..9f82c7f22 100755
--- a/newlib/libc/machine/arm/configure
+++ b/newlib/libc/machine/arm/configure
@@ -567,6 +567,8 @@ LIBOBJS
CFLAGS
HAVE_ARMV7M_FALSE
HAVE_ARMV7M_TRUE
+HAVE_ARMV8A_FALSE
+HAVE_ARMV8A_TRUE
HAVE_ARMV7A_FALSE
HAVE_ARMV7A_TRUE
HAVE_ARMV7_FALSE
@@ -3589,6 +3591,48 @@ else
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether armv8a processor is supported" >&5
+$as_echo_n "checking whether armv8a processor is supported... " >&6; }
+if ${acnewlib_cv_armv8a_processor+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat > conftest.c <<EOF
+
+#if defined (__ARM_ARCH_8A__) && defined (__ARM_FEATURE_UNALIGNED)
+ #define HAVE_ARMV8A
+ #else
+ #error "ARMV8A is not supported."
+#endif
+int main () {
+ return 0;
+}
+EOF
+if { ac_try='${CC} $CFLAGS $CPPFLAGS -c -o conftest.o conftest.c
+ 1>&5'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }
+then
+ acnewlib_cv_armv8a_processor=yes;
+else
+ acnewlib_cv_armv8a_processor=no;
+fi
+rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acnewlib_cv_armv8a_processor" >&5
+$as_echo "$acnewlib_cv_armv8a_processor" >&6; }
+
+ if test x"$acnewlib_cv_armv8a_processor" = x"yes"; then
+ HAVE_ARMV8A_TRUE=
+ HAVE_ARMV8A_FALSE='#'
+else
+ HAVE_ARMV8A_TRUE='#'
+ HAVE_ARMV8A_FALSE=
+fi
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether armv7m processor is supported" >&5
$as_echo_n "checking whether armv7m processor is supported... " >&6; }
if ${acnewlib_cv_armv7m_processor+:} false; then :
@@ -3837,6 +3881,10 @@ if test -z "${HAVE_ARMV7A_TRUE}" && test -z "${HAVE_ARMV7A_FALSE}"; then
as_fn_error $? "conditional \"HAVE_ARMV7A\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${HAVE_ARMV8A_TRUE}" && test -z "${HAVE_ARMV8A_FALSE}"; then
+ as_fn_error $? "conditional \"HAVE_ARMV8A\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${HAVE_ARMV7M_TRUE}" && test -z "${HAVE_ARMV7M_FALSE}"; then
as_fn_error $? "conditional \"HAVE_ARMV7M\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5