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