xref: /OK3568_Linux_fs/buildroot/boot/lpc32xxcdl/lpc32xxcdl-2.11-libnosys_gnu.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunFix compilation and eabi issues
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunSince we are not linking with libc anymore, we need to define our own memset,
4*4882a593Smuzhiyunstrlen and memcpy. Also, as we are using a *libc compiler, we need to "handle"
5*4882a593Smuzhiyunexceptions (mostly division by 0) by defining raise() and
6*4882a593Smuzhiyun__aeabi_unwind_cpp_pr0.
7*4882a593Smuzhiyun
8*4882a593SmuzhiyunSigned-off-by: Alexandre Belloni <abelloni@adeneo-embedded.com>
9*4882a593Smuzhiyun---
10*4882a593Smuzhiyun csps/lpc32xx/bsps/ea3250/source/libnosys_gnu.c  |   41 +++++++++++++++++++++++
11*4882a593Smuzhiyun csps/lpc32xx/bsps/fdi3250/source/libnosys_gnu.c |   41 +++++++++++++++++++++++
12*4882a593Smuzhiyun csps/lpc32xx/bsps/phy3250/source/libnosys_gnu.c |   41 +++++++++++++++++++++++
13*4882a593Smuzhiyun 3 files changed, 123 insertions(+), 0 deletions(-)
14*4882a593Smuzhiyun
15*4882a593Smuzhiyundiff --git a/csps/lpc32xx/bsps/ea3250/source/libnosys_gnu.c b/csps/lpc32xx/bsps/ea3250/source/libnosys_gnu.c
16*4882a593Smuzhiyunindex 385b0ab..f1f0a0a 100644
17*4882a593Smuzhiyun--- a/csps/lpc32xx/bsps/ea3250/source/libnosys_gnu.c
18*4882a593Smuzhiyun+++ b/csps/lpc32xx/bsps/ea3250/source/libnosys_gnu.c
19*4882a593Smuzhiyun@@ -25,6 +25,7 @@
20*4882a593Smuzhiyun #include <errno.h>
21*4882a593Smuzhiyun #include <sys/times.h>
22*4882a593Smuzhiyun #include <sys/stat.h>
23*4882a593Smuzhiyun+#include <sys/types.h>
24*4882a593Smuzhiyun
25*4882a593Smuzhiyun /* errno definition */
26*4882a593Smuzhiyun #undef errno
27*4882a593Smuzhiyun@@ -125,4 +126,44 @@ int _write(int file, char *ptr, int len){
28*4882a593Smuzhiyun     return 0;
29*4882a593Smuzhiyun }
30*4882a593Smuzhiyun
31*4882a593Smuzhiyun+void * memset(void * s,int c,size_t count)
32*4882a593Smuzhiyun+{
33*4882a593Smuzhiyun+        char *xs = (char *) s;
34*4882a593Smuzhiyun+
35*4882a593Smuzhiyun+        while (count--)
36*4882a593Smuzhiyun+                *xs++ = c;
37*4882a593Smuzhiyun+
38*4882a593Smuzhiyun+        return s;
39*4882a593Smuzhiyun+}
40*4882a593Smuzhiyun+
41*4882a593Smuzhiyun+
42*4882a593Smuzhiyun+size_t strlen(const char * s)
43*4882a593Smuzhiyun+{
44*4882a593Smuzhiyun+        const char *sc;
45*4882a593Smuzhiyun+
46*4882a593Smuzhiyun+        for (sc = s; *sc != '\0'; ++sc)
47*4882a593Smuzhiyun+                /* nothing */;
48*4882a593Smuzhiyun+        return sc - s;
49*4882a593Smuzhiyun+}
50*4882a593Smuzhiyun+
51*4882a593Smuzhiyun+void * memcpy(void * dest,const void *src,size_t count)
52*4882a593Smuzhiyun+{
53*4882a593Smuzhiyun+        char *tmp = (char *) dest, *s = (char *) src;
54*4882a593Smuzhiyun+
55*4882a593Smuzhiyun+        while (count--)
56*4882a593Smuzhiyun+                *tmp++ = *s++;
57*4882a593Smuzhiyun+
58*4882a593Smuzhiyun+        return dest;
59*4882a593Smuzhiyun+}
60*4882a593Smuzhiyun+
61*4882a593Smuzhiyun+
62*4882a593Smuzhiyun+/* Dummy functions to avoid linker complaints */
63*4882a593Smuzhiyun+void __aeabi_unwind_cpp_pr0(void)
64*4882a593Smuzhiyun+{
65*4882a593Smuzhiyun+};
66*4882a593Smuzhiyun+
67*4882a593Smuzhiyun+void raise(void)
68*4882a593Smuzhiyun+{
69*4882a593Smuzhiyun+};
70*4882a593Smuzhiyun+
71*4882a593Smuzhiyun #endif /*__GNUC__*/
72*4882a593Smuzhiyundiff --git a/csps/lpc32xx/bsps/fdi3250/source/libnosys_gnu.c b/csps/lpc32xx/bsps/fdi3250/source/libnosys_gnu.c
73*4882a593Smuzhiyunindex 385b0ab..f1f0a0a 100644
74*4882a593Smuzhiyun--- a/csps/lpc32xx/bsps/fdi3250/source/libnosys_gnu.c
75*4882a593Smuzhiyun+++ b/csps/lpc32xx/bsps/fdi3250/source/libnosys_gnu.c
76*4882a593Smuzhiyun@@ -25,6 +25,7 @@
77*4882a593Smuzhiyun #include <errno.h>
78*4882a593Smuzhiyun #include <sys/times.h>
79*4882a593Smuzhiyun #include <sys/stat.h>
80*4882a593Smuzhiyun+#include <sys/types.h>
81*4882a593Smuzhiyun
82*4882a593Smuzhiyun /* errno definition */
83*4882a593Smuzhiyun #undef errno
84*4882a593Smuzhiyun@@ -125,4 +126,44 @@ int _write(int file, char *ptr, int len){
85*4882a593Smuzhiyun     return 0;
86*4882a593Smuzhiyun }
87*4882a593Smuzhiyun
88*4882a593Smuzhiyun+void * memset(void * s,int c,size_t count)
89*4882a593Smuzhiyun+{
90*4882a593Smuzhiyun+        char *xs = (char *) s;
91*4882a593Smuzhiyun+
92*4882a593Smuzhiyun+        while (count--)
93*4882a593Smuzhiyun+                *xs++ = c;
94*4882a593Smuzhiyun+
95*4882a593Smuzhiyun+        return s;
96*4882a593Smuzhiyun+}
97*4882a593Smuzhiyun+
98*4882a593Smuzhiyun+
99*4882a593Smuzhiyun+size_t strlen(const char * s)
100*4882a593Smuzhiyun+{
101*4882a593Smuzhiyun+        const char *sc;
102*4882a593Smuzhiyun+
103*4882a593Smuzhiyun+        for (sc = s; *sc != '\0'; ++sc)
104*4882a593Smuzhiyun+                /* nothing */;
105*4882a593Smuzhiyun+        return sc - s;
106*4882a593Smuzhiyun+}
107*4882a593Smuzhiyun+
108*4882a593Smuzhiyun+void * memcpy(void * dest,const void *src,size_t count)
109*4882a593Smuzhiyun+{
110*4882a593Smuzhiyun+        char *tmp = (char *) dest, *s = (char *) src;
111*4882a593Smuzhiyun+
112*4882a593Smuzhiyun+        while (count--)
113*4882a593Smuzhiyun+                *tmp++ = *s++;
114*4882a593Smuzhiyun+
115*4882a593Smuzhiyun+        return dest;
116*4882a593Smuzhiyun+}
117*4882a593Smuzhiyun+
118*4882a593Smuzhiyun+
119*4882a593Smuzhiyun+/* Dummy functions to avoid linker complaints */
120*4882a593Smuzhiyun+void __aeabi_unwind_cpp_pr0(void)
121*4882a593Smuzhiyun+{
122*4882a593Smuzhiyun+};
123*4882a593Smuzhiyun+
124*4882a593Smuzhiyun+void raise(void)
125*4882a593Smuzhiyun+{
126*4882a593Smuzhiyun+};
127*4882a593Smuzhiyun+
128*4882a593Smuzhiyun #endif /*__GNUC__*/
129*4882a593Smuzhiyundiff --git a/csps/lpc32xx/bsps/phy3250/source/libnosys_gnu.c b/csps/lpc32xx/bsps/phy3250/source/libnosys_gnu.c
130*4882a593Smuzhiyunindex cfdb674..6b50c60 100644
131*4882a593Smuzhiyun--- a/csps/lpc32xx/bsps/phy3250/source/libnosys_gnu.c
132*4882a593Smuzhiyun+++ b/csps/lpc32xx/bsps/phy3250/source/libnosys_gnu.c
133*4882a593Smuzhiyun@@ -25,6 +25,7 @@
134*4882a593Smuzhiyun #include <errno.h>
135*4882a593Smuzhiyun #include <sys/times.h>
136*4882a593Smuzhiyun #include <sys/stat.h>
137*4882a593Smuzhiyun+#include <sys/types.h>
138*4882a593Smuzhiyun
139*4882a593Smuzhiyun /* errno definition */
140*4882a593Smuzhiyun #undef errno
141*4882a593Smuzhiyun@@ -125,4 +126,44 @@ int _write(int file, char *ptr, int len){
142*4882a593Smuzhiyun     return 0;
143*4882a593Smuzhiyun }
144*4882a593Smuzhiyun
145*4882a593Smuzhiyun+void * memset(void * s,int c,size_t count)
146*4882a593Smuzhiyun+{
147*4882a593Smuzhiyun+        char *xs = (char *) s;
148*4882a593Smuzhiyun+
149*4882a593Smuzhiyun+        while (count--)
150*4882a593Smuzhiyun+                *xs++ = c;
151*4882a593Smuzhiyun+
152*4882a593Smuzhiyun+        return s;
153*4882a593Smuzhiyun+}
154*4882a593Smuzhiyun+
155*4882a593Smuzhiyun+
156*4882a593Smuzhiyun+size_t strlen(const char * s)
157*4882a593Smuzhiyun+{
158*4882a593Smuzhiyun+        const char *sc;
159*4882a593Smuzhiyun+
160*4882a593Smuzhiyun+        for (sc = s; *sc != '\0'; ++sc)
161*4882a593Smuzhiyun+                /* nothing */;
162*4882a593Smuzhiyun+        return sc - s;
163*4882a593Smuzhiyun+}
164*4882a593Smuzhiyun+
165*4882a593Smuzhiyun+void * memcpy(void * dest,const void *src,size_t count)
166*4882a593Smuzhiyun+{
167*4882a593Smuzhiyun+        char *tmp = (char *) dest, *s = (char *) src;
168*4882a593Smuzhiyun+
169*4882a593Smuzhiyun+        while (count--)
170*4882a593Smuzhiyun+                *tmp++ = *s++;
171*4882a593Smuzhiyun+
172*4882a593Smuzhiyun+        return dest;
173*4882a593Smuzhiyun+}
174*4882a593Smuzhiyun+
175*4882a593Smuzhiyun+
176*4882a593Smuzhiyun+/* Dummy functions to avoid linker complaints */
177*4882a593Smuzhiyun+void __aeabi_unwind_cpp_pr0(void)
178*4882a593Smuzhiyun+{
179*4882a593Smuzhiyun+};
180*4882a593Smuzhiyun+
181*4882a593Smuzhiyun+void raise(void)
182*4882a593Smuzhiyun+{
183*4882a593Smuzhiyun+};
184*4882a593Smuzhiyun+
185*4882a593Smuzhiyun #endif /*__GNUC__*/
186*4882a593Smuzhiyun--
187*4882a593Smuzhiyun1.7.7.3
188*4882a593Smuzhiyun
189