summaryrefslogtreecommitdiffstats
path: root/toolchain/uClibc/uClibc-0.9.28.3-ppc-string-ops.patch
diff options
context:
space:
mode:
authorPeter Korsgaard <jacmet@sunsite.dk>2008-03-27 10:23:13 +0000
committerPeter Korsgaard <jacmet@sunsite.dk>2008-03-27 10:23:13 +0000
commitca89923ee022c4c3ebf0f50df40e93f840021cbb (patch)
tree94efbbce0e7ff78bbd7a05e42f3ae54f3bc6fd4a /toolchain/uClibc/uClibc-0.9.28.3-ppc-string-ops.patch
parent9e0fe4b8858612ea84954f52c64b1d2c7fe99fdf (diff)
downloadbuildroot-novena-ca89923ee022c4c3ebf0f50df40e93f840021cbb.tar.gz
buildroot-novena-ca89923ee022c4c3ebf0f50df40e93f840021cbb.zip
uClibc 0.9.28.3: use optimized string ops on ppc
Use optimized string ops instead of dummy generic ones on PPC.
Diffstat (limited to 'toolchain/uClibc/uClibc-0.9.28.3-ppc-string-ops.patch')
-rw-r--r--toolchain/uClibc/uClibc-0.9.28.3-ppc-string-ops.patch56
1 files changed, 56 insertions, 0 deletions
diff --git a/toolchain/uClibc/uClibc-0.9.28.3-ppc-string-ops.patch b/toolchain/uClibc/uClibc-0.9.28.3-ppc-string-ops.patch
new file mode 100644
index 000000000..0311e3ba0
--- /dev/null
+++ b/toolchain/uClibc/uClibc-0.9.28.3-ppc-string-ops.patch
@@ -0,0 +1,56 @@
+diff -urpN uClibc-0.9.28.3/libc/string/powerpc/string.c uClibc-0.9.28.3-patched/libc/string/powerpc/string.c
+--- uClibc-0.9.28.3/libc/string/powerpc/string.c 2005-06-21 16:03:15.000000000 +0200
++++ uClibc-0.9.28.3-patched/libc/string/powerpc/string.c 2008-03-27 00:22:16.000000000 +0100
+@@ -32,7 +32,7 @@
+ #include <locale.h> /* for __LOCALE_C_ONLY */
+
+ #ifdef L_memcpy
+-void attribute_hidden *__memcpy(void *to, const void *from, size_t n)
++void *memcpy(void *to, const void *from, size_t n)
+ /* PPC can do pre increment and load/store, but not post increment and load/store.
+ Therefore use *++ptr instead of *ptr++. */
+ {
+@@ -87,11 +87,10 @@ void attribute_hidden *__memcpy(void *to
+ goto copy_chunks;
+ goto lessthan8;
+ }
+-strong_alias(__memcpy, memcpy);
+ #endif
+
+ #ifdef L_memmove
+-void attribute_hidden *__memmove(void *to, const void *from, size_t n)
++void *memmove(void *to, const void *from, size_t n)
+ {
+ unsigned long rem, chunks, tmp1, tmp2;
+ unsigned char *tmp_to;
+@@ -142,7 +141,6 @@ void attribute_hidden *__memmove(void *t
+ goto copy_chunks;
+ goto lessthan8;
+ }
+-strong_alias(__memmove, memmove);
+ #endif
+
+ #ifdef L_memset
+@@ -156,7 +154,7 @@ static inline int expand_byte_word(int c
+ : "=r" (c) : "0" (c));
+ return c;
+ }
+-void attribute_hidden *__memset(void *to, int c, size_t n)
++void *memset(void *to, int c, size_t n)
+ {
+ unsigned long rem, chunks;
+ unsigned char *tmp_to;
+@@ -202,12 +200,10 @@ void attribute_hidden *__memset(void *to
+ goto copy_chunks;
+ goto lessthan8;
+ }
+-strong_alias(__memset, memset);
+ #endif
+
+ #ifdef L_bzero
+-weak_alias(__bzero,bzero);
+-void __bzero(void *s, size_t n)
++void bzero(void *s, size_t n)
+ {
+ (void)memset(s, 0, n);
+ }