From bd1c16fe501aeabea8ecedc3585750c4470e6eae Mon Sep 17 00:00:00 2001 From: Dave Murphy Date: Tue, 27 Jun 2017 18:34:13 +0100 Subject: [PATCH] provide stub __sync_synchronize --- dkarm-eabi/patches/newlib-2.5.0.patch | 76 ++++++++++++++++++++++++++- 1 file changed, 75 insertions(+), 1 deletion(-) diff --git a/dkarm-eabi/patches/newlib-2.5.0.patch b/dkarm-eabi/patches/newlib-2.5.0.patch index f19d7a6..8696000 100644 --- a/dkarm-eabi/patches/newlib-2.5.0.patch +++ b/dkarm-eabi/patches/newlib-2.5.0.patch @@ -976,7 +976,7 @@ index 0000000..48ce950 +/* symbol prefix */ +#undef __SYMBOL_PREFIX diff --git a/libgloss/libsysbase/configure b/libgloss/libsysbase/configure -new file mode 100755 +new file mode 100644 index 0000000..c4b5a79 --- /dev/null +++ b/libgloss/libsysbase/configure @@ -7635,6 +7635,80 @@ index 8572821..e6baf35 100644 { return __get_current_locale ()->ctype_ptr; } +diff --git a/newlib/libc/machine/arm/Makefile.am b/newlib/libc/machine/arm/Makefile.am +index 62ed158..7f34177 100644 +--- a/newlib/libc/machine/arm/Makefile.am ++++ b/newlib/libc/machine/arm/Makefile.am +@@ -11,7 +11,9 @@ noinst_LIBRARIES = lib.a + lib_a_SOURCES = setjmp.S access.c strcmp.S strcpy.c \ + aeabi_memcpy.c aeabi_memcpy-armv7a.S \ + aeabi_memmove.c aeabi_memmove-soft.S \ +- aeabi_memset.c aeabi_memset-soft.S aeabi_memclr.c ++ aeabi_memset.c aeabi_memset-soft.S aeabi_memclr.c \ ++ sync_synchronize.c ++ + lib_a_SOURCES += memchr-stub.c + lib_a_SOURCES += memchr.S + lib_a_SOURCES += memcpy-stub.c +diff --git a/newlib/libc/machine/arm/Makefile.in b/newlib/libc/machine/arm/Makefile.in +index 4908208..694cbb0 100644 +--- a/newlib/libc/machine/arm/Makefile.in ++++ b/newlib/libc/machine/arm/Makefile.in +@@ -76,10 +76,10 @@ am_lib_a_OBJECTS = lib_a-setjmp.$(OBJEXT) lib_a-access.$(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-memchr-stub.$(OBJEXT) \ +- lib_a-memchr.$(OBJEXT) lib_a-memcpy-stub.$(OBJEXT) \ +- lib_a-memcpy.$(OBJEXT) lib_a-strlen-stub.$(OBJEXT) \ +- lib_a-strlen.$(OBJEXT) ++ lib_a-aeabi_memclr.$(OBJEXT) lib_a-sync_synchronize.$(OBJEXT) \ ++ lib_a-memchr-stub.$(OBJEXT) lib_a-memchr.$(OBJEXT) \ ++ lib_a-memcpy-stub.$(OBJEXT) lib_a-memcpy.$(OBJEXT) \ ++ lib_a-strlen-stub.$(OBJEXT) lib_a-strlen.$(OBJEXT) + lib_a_OBJECTS = $(am_lib_a_OBJECTS) + DEFAULT_INCLUDES = -I.@am__isrc@ + depcomp = +@@ -209,8 +209,8 @@ noinst_LIBRARIES = lib.a + lib_a_SOURCES = setjmp.S access.c strcmp.S strcpy.c aeabi_memcpy.c \ + aeabi_memcpy-armv7a.S aeabi_memmove.c aeabi_memmove-soft.S \ + aeabi_memset.c aeabi_memset-soft.S aeabi_memclr.c \ +- memchr-stub.c memchr.S memcpy-stub.c memcpy.S strlen-stub.c \ +- strlen.S ++ sync_synchronize.c memchr-stub.c memchr.S memcpy-stub.c \ ++ memcpy.S strlen-stub.c strlen.S + lib_a_CCASFLAGS = $(AM_CCASFLAGS) + lib_a_CFLAGS = $(AM_CFLAGS) + ACLOCAL_AMFLAGS = -I ../../.. -I ../../../.. +@@ -374,6 +374,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-sync_synchronize.o: sync_synchronize.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sync_synchronize.o `test -f 'sync_synchronize.c' || echo '$(srcdir)/'`sync_synchronize.c ++ ++lib_a-sync_synchronize.obj: sync_synchronize.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sync_synchronize.obj `if test -f 'sync_synchronize.c'; then $(CYGPATH_W) 'sync_synchronize.c'; else $(CYGPATH_W) '$(srcdir)/sync_synchronize.c'; fi` ++ + lib_a-memchr-stub.o: memchr-stub.c + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-memchr-stub.o `test -f 'memchr-stub.c' || echo '$(srcdir)/'`memchr-stub.c + +diff --git a/newlib/libc/machine/arm/sync_synchronize.c b/newlib/libc/machine/arm/sync_synchronize.c +new file mode 100644 +index 0000000..3acc9e0 +--- /dev/null ++++ b/newlib/libc/machine/arm/sync_synchronize.c +@@ -0,0 +1,10 @@ ++#if __ARM_ARCH < 6 ++#include ++void __attribute__((weak)) ++__sync_synchronize (void) ++{ ++ __warn_references (__sync_synchronize, ++ "legacy compatible __sync_synchronize used. Not suitable for multi-threaded applications"); ++ return; ++} ++#endif diff --git a/newlib/libc/machine/arm/sys/stdio.h b/newlib/libc/machine/arm/sys/stdio.h new file mode 100644 index 0000000..4eb278e