| 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 |
| |