diff --git a/newlib/ChangeLog b/newlib/ChangeLog index f8e51a78a..fac2fdb04 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,3 +1,14 @@ +2015-11-06 Marcus Shawcroft + + * libc/machine/arm/Makefile.am: Drop MEMCPY_SRC and MEMCPY_OBJ. + * libc/machine/arm/Makefile.in: Regenerate. + * libc/machine/arm/configure.in: Remove HAVE_ARMV8A, HAVE_ARMV7A and + HAVE_ARM7M. + * libc/machine/arm/configure: Regenerate. + * libc/machine/arm/memcpy-stub.c: New. + * libc/machine/arm/memcpy.c: Adjust copyright year. Adjust comments. + Include acle-compat.h. + 2015-11-06 Olivier Martin * libc/include/stdlib.h (mktemp): Change attribute to deprecated. diff --git a/newlib/libc/machine/arm/Makefile.am b/newlib/libc/machine/arm/Makefile.am index 0eb1cf12f..70afdf140 100644 --- a/newlib/libc/machine/arm/Makefile.am +++ b/newlib/libc/machine/arm/Makefile.am @@ -29,39 +29,19 @@ MEMCHR_SRC= MEMCHR_OBJ= endif -if OPT_SIZE -MEMCPY_SRC= -MEMCPY_OBJ= -else -if HAVE_ARMV8A -MEMCPY_SRC=memcpy.S -MEMCPY_OBJ=$(lpfx)memcpy.o -else -if HAVE_ARMV7A -MEMCPY_SRC=memcpy.S -MEMCPY_OBJ=$(lpfx)memcpy.o -else -if HAVE_ARMV7M -MEMCPY_SRC=memcpy.S -MEMCPY_OBJ=$(lpfx)memcpy.o -else -MEMCPY_SRC= -MEMCPY_OBJ= -endif !HAVE_ARMV7M -endif !HAVE_ARMV7A -endif !HAVE_ARMV8A -endif !OPT_SIZE - lib_a_SOURCES = setjmp.S access.c strcmp.S strcpy.c \ - $(MEMCPY_SRC) $(MEMCHR_SRC) $(STRLEN_SRC) \ + $(MEMCHR_SRC) $(STRLEN_SRC) \ strlen-armv7.S aeabi_memcpy.c aeabi_memcpy-armv7a.S \ aeabi_memmove.c aeabi_memmove-soft.S \ aeabi_memset.c aeabi_memset-soft.S aeabi_memclr.c +lib_a_SOURCES += memcpy-stub.c +lib_a_SOURCES += memcpy.S lib_a_CCASFLAGS=$(AM_CCASFLAGS) lib_a_CFLAGS = $(AM_CFLAGS) -lib_a_LIBADD = $(STRLEN_OBJ) $(MEMCHR_OBJ) $(MEMCPY_OBJ) -lib_a_DEPENDENCIES = $(STRLEN_OBJ) $(MEMCHR_OBJ) $(MEMCPY_OBJ) +lib_a_LIBADD = $(STRLEN_OBJ) $(MEMCHR_OBJ) + +lib_a_DEPENDENCIES = $(STRLEN_OBJ) $(MEMCHR_OBJ) ACLOCAL_AMFLAGS = -I ../../.. -I ../../../.. CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/machine/arm/Makefile.in b/newlib/libc/machine/arm/Makefile.in index 81dea3099..8b69c1207 100644 --- a/newlib/libc/machine/arm/Makefile.in +++ b/newlib/libc/machine/arm/Makefile.in @@ -71,27 +71,20 @@ lib_a_AR = $(AR) $(ARFLAGS) @HAVE_THUMB1_FALSE@am__DEPENDENCIES_1 = $(lpfx)strlen.o @HAVE_THUMB1_TRUE@@OPT_SIZE_TRUE@am__DEPENDENCIES_1 = $(lpfx)strlen.o @HAVE_ARMV7_TRUE@am__DEPENDENCIES_2 = $(lpfx)memchr.o -@HAVE_ARMV7A_FALSE@@HAVE_ARMV7M_TRUE@@HAVE_ARMV8A_FALSE@@OPT_SIZE_FALSE@am__DEPENDENCIES_3 = $(lpfx)memcpy.o -@HAVE_ARMV7A_TRUE@@HAVE_ARMV8A_FALSE@@OPT_SIZE_FALSE@am__DEPENDENCIES_3 = $(lpfx)memcpy.o -@HAVE_ARMV8A_TRUE@@OPT_SIZE_FALSE@am__DEPENDENCIES_3 = \ -@HAVE_ARMV8A_TRUE@@OPT_SIZE_FALSE@ $(lpfx)memcpy.o -@HAVE_ARMV7A_FALSE@@HAVE_ARMV7M_TRUE@@HAVE_ARMV8A_FALSE@@OPT_SIZE_FALSE@am__objects_1 = lib_a-memcpy.$(OBJEXT) -@HAVE_ARMV7A_TRUE@@HAVE_ARMV8A_FALSE@@OPT_SIZE_FALSE@am__objects_1 = lib_a-memcpy.$(OBJEXT) -@HAVE_ARMV8A_TRUE@@OPT_SIZE_FALSE@am__objects_1 = \ -@HAVE_ARMV8A_TRUE@@OPT_SIZE_FALSE@ lib_a-memcpy.$(OBJEXT) -@HAVE_ARMV7_TRUE@am__objects_2 = lib_a-memchr.$(OBJEXT) -@HAVE_THUMB1_FALSE@am__objects_3 = lib_a-strlen.$(OBJEXT) -@HAVE_THUMB1_TRUE@@OPT_SIZE_TRUE@am__objects_3 = \ +@HAVE_ARMV7_TRUE@am__objects_1 = lib_a-memchr.$(OBJEXT) +@HAVE_THUMB1_FALSE@am__objects_2 = lib_a-strlen.$(OBJEXT) +@HAVE_THUMB1_TRUE@@OPT_SIZE_TRUE@am__objects_2 = \ @HAVE_THUMB1_TRUE@@OPT_SIZE_TRUE@ lib_a-strlen.$(OBJEXT) am_lib_a_OBJECTS = lib_a-setjmp.$(OBJEXT) lib_a-access.$(OBJEXT) \ lib_a-strcmp.$(OBJEXT) lib_a-strcpy.$(OBJEXT) $(am__objects_1) \ - $(am__objects_2) $(am__objects_3) lib_a-strlen-armv7.$(OBJEXT) \ + $(am__objects_2) lib_a-strlen-armv7.$(OBJEXT) \ lib_a-aeabi_memcpy.$(OBJEXT) \ lib_a-aeabi_memcpy-armv7a.$(OBJEXT) \ lib_a-aeabi_memmove.$(OBJEXT) \ lib_a-aeabi_memmove-soft.$(OBJEXT) \ lib_a-aeabi_memset.$(OBJEXT) lib_a-aeabi_memset-soft.$(OBJEXT) \ - lib_a-aeabi_memclr.$(OBJEXT) + lib_a-aeabi_memclr.$(OBJEXT) lib_a-memcpy-stub.$(OBJEXT) \ + lib_a-memcpy.$(OBJEXT) lib_a_OBJECTS = $(am_lib_a_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = @@ -228,26 +221,15 @@ noinst_LIBRARIES = lib.a @HAVE_ARMV7_TRUE@MEMCHR_SRC = memchr.S @HAVE_ARMV7_FALSE@MEMCHR_OBJ = @HAVE_ARMV7_TRUE@MEMCHR_OBJ = $(lpfx)memchr.o -@HAVE_ARMV7A_FALSE@@HAVE_ARMV7M_FALSE@@HAVE_ARMV8A_FALSE@@OPT_SIZE_FALSE@MEMCPY_SRC = -@HAVE_ARMV7A_FALSE@@HAVE_ARMV7M_TRUE@@HAVE_ARMV8A_FALSE@@OPT_SIZE_FALSE@MEMCPY_SRC = memcpy.S -@HAVE_ARMV7A_TRUE@@HAVE_ARMV8A_FALSE@@OPT_SIZE_FALSE@MEMCPY_SRC = memcpy.S -@HAVE_ARMV8A_TRUE@@OPT_SIZE_FALSE@MEMCPY_SRC = memcpy.S -@OPT_SIZE_TRUE@MEMCPY_SRC = -@HAVE_ARMV7A_FALSE@@HAVE_ARMV7M_FALSE@@HAVE_ARMV8A_FALSE@@OPT_SIZE_FALSE@MEMCPY_OBJ = -@HAVE_ARMV7A_FALSE@@HAVE_ARMV7M_TRUE@@HAVE_ARMV8A_FALSE@@OPT_SIZE_FALSE@MEMCPY_OBJ = $(lpfx)memcpy.o -@HAVE_ARMV7A_TRUE@@HAVE_ARMV8A_FALSE@@OPT_SIZE_FALSE@MEMCPY_OBJ = $(lpfx)memcpy.o -@HAVE_ARMV8A_TRUE@@OPT_SIZE_FALSE@MEMCPY_OBJ = $(lpfx)memcpy.o -@OPT_SIZE_TRUE@MEMCPY_OBJ = -lib_a_SOURCES = setjmp.S access.c strcmp.S strcpy.c \ - $(MEMCPY_SRC) $(MEMCHR_SRC) $(STRLEN_SRC) \ - strlen-armv7.S aeabi_memcpy.c aeabi_memcpy-armv7a.S \ - aeabi_memmove.c aeabi_memmove-soft.S \ - aeabi_memset.c aeabi_memset-soft.S aeabi_memclr.c - +lib_a_SOURCES = setjmp.S access.c strcmp.S strcpy.c $(MEMCHR_SRC) \ + $(STRLEN_SRC) strlen-armv7.S aeabi_memcpy.c \ + aeabi_memcpy-armv7a.S aeabi_memmove.c aeabi_memmove-soft.S \ + aeabi_memset.c aeabi_memset-soft.S aeabi_memclr.c \ + memcpy-stub.c memcpy.S lib_a_CCASFLAGS = $(AM_CCASFLAGS) lib_a_CFLAGS = $(AM_CFLAGS) -lib_a_LIBADD = $(STRLEN_OBJ) $(MEMCHR_OBJ) $(MEMCPY_OBJ) -lib_a_DEPENDENCIES = $(STRLEN_OBJ) $(MEMCHR_OBJ) $(MEMCPY_OBJ) +lib_a_LIBADD = $(STRLEN_OBJ) $(MEMCHR_OBJ) +lib_a_DEPENDENCIES = $(STRLEN_OBJ) $(MEMCHR_OBJ) ACLOCAL_AMFLAGS = -I ../../.. -I ../../../.. CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host MEMCPY_DEP = memcpy-armv7a.S memcpy-armv7m.S @@ -330,12 +312,6 @@ lib_a-strcmp.o: strcmp.S lib_a-strcmp.obj: strcmp.S $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-strcmp.obj `if test -f 'strcmp.S'; then $(CYGPATH_W) 'strcmp.S'; else $(CYGPATH_W) '$(srcdir)/strcmp.S'; fi` -lib_a-memcpy.o: memcpy.S - $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-memcpy.o `test -f 'memcpy.S' || echo '$(srcdir)/'`memcpy.S - -lib_a-memcpy.obj: memcpy.S - $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-memcpy.obj `if test -f 'memcpy.S'; then $(CYGPATH_W) 'memcpy.S'; else $(CYGPATH_W) '$(srcdir)/memcpy.S'; fi` - lib_a-memchr.o: memchr.S $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-memchr.o `test -f 'memchr.S' || echo '$(srcdir)/'`memchr.S @@ -366,6 +342,12 @@ lib_a-aeabi_memset-soft.o: aeabi_memset-soft.S lib_a-aeabi_memset-soft.obj: aeabi_memset-soft.S $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-aeabi_memset-soft.obj `if test -f 'aeabi_memset-soft.S'; then $(CYGPATH_W) 'aeabi_memset-soft.S'; else $(CYGPATH_W) '$(srcdir)/aeabi_memset-soft.S'; fi` +lib_a-memcpy.o: memcpy.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-memcpy.o `test -f 'memcpy.S' || echo '$(srcdir)/'`memcpy.S + +lib_a-memcpy.obj: memcpy.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-memcpy.obj `if test -f 'memcpy.S'; then $(CYGPATH_W) 'memcpy.S'; else $(CYGPATH_W) '$(srcdir)/memcpy.S'; fi` + .c.o: $(COMPILE) -c $< @@ -414,6 +396,12 @@ lib_a-aeabi_memclr.o: aeabi_memclr.c lib_a-aeabi_memclr.obj: aeabi_memclr.c $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-aeabi_memclr.obj `if test -f 'aeabi_memclr.c'; then $(CYGPATH_W) 'aeabi_memclr.c'; else $(CYGPATH_W) '$(srcdir)/aeabi_memclr.c'; fi` +lib_a-memcpy-stub.o: memcpy-stub.c + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-memcpy-stub.o `test -f 'memcpy-stub.c' || echo '$(srcdir)/'`memcpy-stub.c + +lib_a-memcpy-stub.obj: memcpy-stub.c + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-memcpy-stub.obj `if test -f 'memcpy-stub.c'; then $(CYGPATH_W) 'memcpy-stub.c'; else $(CYGPATH_W) '$(srcdir)/memcpy-stub.c'; fi` + ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ diff --git a/newlib/libc/machine/arm/configure b/newlib/libc/machine/arm/configure index 9f82c7f22..eb6236111 100755 --- a/newlib/libc/machine/arm/configure +++ b/newlib/libc/machine/arm/configure @@ -565,12 +565,6 @@ ac_unique_file="Makefile.am" ac_subst_vars='LTLIBOBJS LIBOBJS CFLAGS -HAVE_ARMV7M_FALSE -HAVE_ARMV7M_TRUE -HAVE_ARMV8A_FALSE -HAVE_ARMV8A_TRUE -HAVE_ARMV7A_FALSE -HAVE_ARMV7A_TRUE HAVE_ARMV7_FALSE HAVE_ARMV7_TRUE OPT_SIZE_FALSE @@ -3549,132 +3543,6 @@ else fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether armv7a processor is supported" >&5 -$as_echo_n "checking whether armv7a processor is supported... " >&6; } -if ${acnewlib_cv_armv7a_processor+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat > conftest.c <&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_armv7a_processor=yes; -else - acnewlib_cv_armv7a_processor=no; -fi -rm -f conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acnewlib_cv_armv7a_processor" >&5 -$as_echo "$acnewlib_cv_armv7a_processor" >&6; } - - if test x"$acnewlib_cv_armv7a_processor" = x"yes"; then - HAVE_ARMV7A_TRUE= - HAVE_ARMV7A_FALSE='#' -else - HAVE_ARMV7A_TRUE='#' - HAVE_ARMV7A_FALSE= -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 <&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 : - $as_echo_n "(cached) " >&6 -else - cat > conftest.c <&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_armv7m_processor=yes; -else - acnewlib_cv_armv7m_processor=no; -fi -rm -f conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acnewlib_cv_armv7m_processor" >&5 -$as_echo "$acnewlib_cv_armv7m_processor" >&6; } - - if test x"$acnewlib_cv_armv7m_processor" = x"yes"; then - HAVE_ARMV7M_TRUE= - HAVE_ARMV7M_FALSE='#' -else - HAVE_ARMV7M_TRUE='#' - HAVE_ARMV7M_FALSE= -fi - - ac_config_files="$ac_config_files Makefile" @@ -3877,18 +3745,6 @@ if test -z "${HAVE_ARMV7_TRUE}" && test -z "${HAVE_ARMV7_FALSE}"; then as_fn_error $? "conditional \"HAVE_ARMV7\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -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 -fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 diff --git a/newlib/libc/machine/arm/configure.in b/newlib/libc/machine/arm/configure.in index 69fbe2b03..b76f731c8 100644 --- a/newlib/libc/machine/arm/configure.in +++ b/newlib/libc/machine/arm/configure.in @@ -86,81 +86,6 @@ rm -f conftest*]) AM_CONDITIONAL(HAVE_ARMV7, test x"$acnewlib_cv_armv7_processor" = x"yes") -dnl Check for whether ARM_ARCH_7A is defined. -AC_CACHE_CHECK(whether armv7a processor is supported, - acnewlib_cv_armv7a_processor, [dnl -cat > conftest.c <&AS_MESSAGE_LOG_FD]) -then - acnewlib_cv_armv7a_processor=yes; -else - acnewlib_cv_armv7a_processor=no; -fi -rm -f conftest*]) - -AM_CONDITIONAL(HAVE_ARMV7A, test x"$acnewlib_cv_armv7a_processor" = x"yes") - -dnl Check for whether ARM_ARCH_8A is defined. -AC_CACHE_CHECK(whether armv8a processor is supported, - acnewlib_cv_armv8a_processor, [dnl -cat > conftest.c <&AS_MESSAGE_LOG_FD]) -then - acnewlib_cv_armv8a_processor=yes; -else - acnewlib_cv_armv8a_processor=no; -fi -rm -f conftest*]) - -AM_CONDITIONAL(HAVE_ARMV8A, test x"$acnewlib_cv_armv8a_processor" = x"yes") - -dnl Check for whether ARM_ARCH_7M is defined. -AC_CACHE_CHECK(whether armv7m processor is supported, - acnewlib_cv_armv7m_processor, [dnl -cat > conftest.c <&AS_MESSAGE_LOG_FD]) -then - acnewlib_cv_armv7m_processor=yes; -else - acnewlib_cv_armv7m_processor=no; -fi -rm -f conftest*]) - -AM_CONDITIONAL(HAVE_ARMV7M, test x"$acnewlib_cv_armv7m_processor" = x"yes") - AC_SUBST(CFLAGS) AC_CONFIG_FILES([Makefile]) diff --git a/newlib/libc/machine/arm/memcpy-stub.c b/newlib/libc/machine/arm/memcpy-stub.c new file mode 100644 index 000000000..52a0f91bd --- /dev/null +++ b/newlib/libc/machine/arm/memcpy-stub.c @@ -0,0 +1,41 @@ +/* Copyright (c) 2015 ARM Ltd. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the Linaro nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ + +/* The structure of the following #if #else #endif conditional chain + must match the chain in memcpy.S. */ + +#include "acle-compat.h" + +#if (defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)) +# include "../../string/memcpy.c" +#elif (__ARM_ARCH >= 7 && __ARM_ARCH_PROFILE == 'A' \ + && defined (__ARM_FEATURE_UNALIGNED)) +/* Defined in memcpy.S. */ +#elif __ARM_ARCH >= 7 && __ARM_ARCH_PROFILE == 'M' +/* Defined in memcpy.S. */ +#else +# include "../../string/memcpy.c" +#endif diff --git a/newlib/libc/machine/arm/memcpy.S b/newlib/libc/machine/arm/memcpy.S index b1bab88bf..d9d5810a7 100644 --- a/newlib/libc/machine/arm/memcpy.S +++ b/newlib/libc/machine/arm/memcpy.S @@ -26,27 +26,22 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED) - /* Leave this field blank. So the memcpy() is not defined, and this will - automatically pull in the default C definition of memcpy() from - ../../string/memcpy.c. No need to include this file explicitely. - The lib_a-memcpy.o will not be generated, so it won't replace the default - lib_a-memcpy.o which is generated by ../../string/memcpy.c. - See the commands in configure.in and Makefile.am for more details. +/* The structure of the following #if #else #endif conditional chain + must match the chain in memcpy-stub.c. */ - However, if we need to rewrite this function to be more efficient, we - can add the corresponding assembly code into this field and change the - commands in configure.in and Makefile.am to allow the corresponding - lib_a-memcpy.o to be generated. - */ +#include "acle-compat.h" + +#if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED) + /* Defined in memcpy-stub.c. */ #elif (__ARM_ARCH >= 7 && __ARM_ARCH_PROFILE == 'A' \ && defined (__ARM_FEATURE_UNALIGNED)) #include "memcpy-armv7a.S" -#elif defined (__ARM_ARCH_7M__) || defined (__ARM_ARCH_7EM__) +#elif __ARM_ARCH >= 7 && __ARM_ARCH_PROFILE == 'M' #include "memcpy-armv7m.S" #else - /* Leave this filed blank. See the commands above. */ + /* Defined in memcpy-stub.c. */ + #endif