Fix compilation and eabi issues 
 | 
  
 | 
Since we are not linking with libc anymore, we need to define our own memset, 
 | 
strlen and memcpy. Also, as we are using a *libc compiler, we need to "handle" 
 | 
exceptions (mostly division by 0) by defining raise() and 
 | 
__aeabi_unwind_cpp_pr0. 
 | 
  
 | 
Signed-off-by: Alexandre Belloni <abelloni@adeneo-embedded.com> 
 | 
--- 
 | 
 csps/lpc32xx/bsps/ea3250/source/libnosys_gnu.c  |   41 +++++++++++++++++++++++ 
 | 
 csps/lpc32xx/bsps/fdi3250/source/libnosys_gnu.c |   41 +++++++++++++++++++++++ 
 | 
 csps/lpc32xx/bsps/phy3250/source/libnosys_gnu.c |   41 +++++++++++++++++++++++ 
 | 
 3 files changed, 123 insertions(+), 0 deletions(-) 
 | 
  
 | 
diff --git a/csps/lpc32xx/bsps/ea3250/source/libnosys_gnu.c b/csps/lpc32xx/bsps/ea3250/source/libnosys_gnu.c 
 | 
index 385b0ab..f1f0a0a 100644 
 | 
--- a/csps/lpc32xx/bsps/ea3250/source/libnosys_gnu.c 
 | 
+++ b/csps/lpc32xx/bsps/ea3250/source/libnosys_gnu.c 
 | 
@@ -25,6 +25,7 @@ 
 | 
 #include <errno.h> 
 | 
 #include <sys/times.h> 
 | 
 #include <sys/stat.h> 
 | 
+#include <sys/types.h> 
 | 
  
 | 
 /* errno definition */ 
 | 
 #undef errno 
 | 
@@ -125,4 +126,44 @@ int _write(int file, char *ptr, int len){ 
 | 
     return 0; 
 | 
 } 
 | 
  
 | 
+void * memset(void * s,int c,size_t count) 
 | 
+{ 
 | 
+        char *xs = (char *) s; 
 | 
+ 
 | 
+        while (count--) 
 | 
+                *xs++ = c; 
 | 
+ 
 | 
+        return s; 
 | 
+} 
 | 
+ 
 | 
+ 
 | 
+size_t strlen(const char * s) 
 | 
+{ 
 | 
+        const char *sc; 
 | 
+ 
 | 
+        for (sc = s; *sc != '\0'; ++sc) 
 | 
+                /* nothing */; 
 | 
+        return sc - s; 
 | 
+} 
 | 
+ 
 | 
+void * memcpy(void * dest,const void *src,size_t count) 
 | 
+{ 
 | 
+        char *tmp = (char *) dest, *s = (char *) src; 
 | 
+ 
 | 
+        while (count--) 
 | 
+                *tmp++ = *s++; 
 | 
+ 
 | 
+        return dest; 
 | 
+} 
 | 
+ 
 | 
+ 
 | 
+/* Dummy functions to avoid linker complaints */ 
 | 
+void __aeabi_unwind_cpp_pr0(void) 
 | 
+{ 
 | 
+}; 
 | 
+ 
 | 
+void raise(void) 
 | 
+{ 
 | 
+}; 
 | 
+ 
 | 
 #endif /*__GNUC__*/ 
 | 
diff --git a/csps/lpc32xx/bsps/fdi3250/source/libnosys_gnu.c b/csps/lpc32xx/bsps/fdi3250/source/libnosys_gnu.c 
 | 
index 385b0ab..f1f0a0a 100644 
 | 
--- a/csps/lpc32xx/bsps/fdi3250/source/libnosys_gnu.c 
 | 
+++ b/csps/lpc32xx/bsps/fdi3250/source/libnosys_gnu.c 
 | 
@@ -25,6 +25,7 @@ 
 | 
 #include <errno.h> 
 | 
 #include <sys/times.h> 
 | 
 #include <sys/stat.h> 
 | 
+#include <sys/types.h> 
 | 
  
 | 
 /* errno definition */ 
 | 
 #undef errno 
 | 
@@ -125,4 +126,44 @@ int _write(int file, char *ptr, int len){ 
 | 
     return 0; 
 | 
 } 
 | 
  
 | 
+void * memset(void * s,int c,size_t count) 
 | 
+{ 
 | 
+        char *xs = (char *) s; 
 | 
+ 
 | 
+        while (count--) 
 | 
+                *xs++ = c; 
 | 
+ 
 | 
+        return s; 
 | 
+} 
 | 
+ 
 | 
+ 
 | 
+size_t strlen(const char * s) 
 | 
+{ 
 | 
+        const char *sc; 
 | 
+ 
 | 
+        for (sc = s; *sc != '\0'; ++sc) 
 | 
+                /* nothing */; 
 | 
+        return sc - s; 
 | 
+} 
 | 
+ 
 | 
+void * memcpy(void * dest,const void *src,size_t count) 
 | 
+{ 
 | 
+        char *tmp = (char *) dest, *s = (char *) src; 
 | 
+ 
 | 
+        while (count--) 
 | 
+                *tmp++ = *s++; 
 | 
+ 
 | 
+        return dest; 
 | 
+} 
 | 
+ 
 | 
+ 
 | 
+/* Dummy functions to avoid linker complaints */ 
 | 
+void __aeabi_unwind_cpp_pr0(void) 
 | 
+{ 
 | 
+}; 
 | 
+ 
 | 
+void raise(void) 
 | 
+{ 
 | 
+}; 
 | 
+ 
 | 
 #endif /*__GNUC__*/ 
 | 
diff --git a/csps/lpc32xx/bsps/phy3250/source/libnosys_gnu.c b/csps/lpc32xx/bsps/phy3250/source/libnosys_gnu.c 
 | 
index cfdb674..6b50c60 100644 
 | 
--- a/csps/lpc32xx/bsps/phy3250/source/libnosys_gnu.c 
 | 
+++ b/csps/lpc32xx/bsps/phy3250/source/libnosys_gnu.c 
 | 
@@ -25,6 +25,7 @@ 
 | 
 #include <errno.h> 
 | 
 #include <sys/times.h> 
 | 
 #include <sys/stat.h> 
 | 
+#include <sys/types.h> 
 | 
  
 | 
 /* errno definition */ 
 | 
 #undef errno 
 | 
@@ -125,4 +126,44 @@ int _write(int file, char *ptr, int len){ 
 | 
     return 0; 
 | 
 } 
 | 
  
 | 
+void * memset(void * s,int c,size_t count) 
 | 
+{ 
 | 
+        char *xs = (char *) s; 
 | 
+ 
 | 
+        while (count--) 
 | 
+                *xs++ = c; 
 | 
+ 
 | 
+        return s; 
 | 
+} 
 | 
+ 
 | 
+ 
 | 
+size_t strlen(const char * s) 
 | 
+{ 
 | 
+        const char *sc; 
 | 
+ 
 | 
+        for (sc = s; *sc != '\0'; ++sc) 
 | 
+                /* nothing */; 
 | 
+        return sc - s; 
 | 
+} 
 | 
+ 
 | 
+void * memcpy(void * dest,const void *src,size_t count) 
 | 
+{ 
 | 
+        char *tmp = (char *) dest, *s = (char *) src; 
 | 
+ 
 | 
+        while (count--) 
 | 
+                *tmp++ = *s++; 
 | 
+ 
 | 
+        return dest; 
 | 
+} 
 | 
+ 
 | 
+ 
 | 
+/* Dummy functions to avoid linker complaints */ 
 | 
+void __aeabi_unwind_cpp_pr0(void) 
 | 
+{ 
 | 
+}; 
 | 
+ 
 | 
+void raise(void) 
 | 
+{ 
 | 
+}; 
 | 
+ 
 | 
 #endif /*__GNUC__*/ 
 | 
--  
 | 
1.7.7.3 
 |