diff --git a/dietlibc-0.31.20080212-strlen.patch b/dietlibc-0.31.20080212-strlen.patch index e012463..eca2a3e 100644 --- a/dietlibc-0.31.20080212-strlen.patch +++ b/dietlibc-0.31.20080212-strlen.patch @@ -107,7 +107,7 @@ diff -upN dietlibc-0.31.20080212/lib/strstr.c.strlen dietlibc-0.31.20080212/lib/ for (i=hl-nl+1; __likely(i); --i) { diff -upN dietlibc-0.31.20080212/lib/strlen.c.strlen dietlibc-0.31.20080212/lib/strlen.c --- dietlibc-0.31.20080212/lib/strlen.c.strlen 2003-08-19 21:34:18.000000000 +0200 -+++ dietlibc-0.31.20080212/lib/strlen.c 2008-02-14 21:27:31.000000000 +0100 ++++ dietlibc-0.31.20080212/lib/strlen.c 2008-02-14 21:31:09.000000000 +0100 @@ -1,6 +1,7 @@ #include #include "dietfeatures.h" @@ -116,7 +116,7 @@ diff -upN dietlibc-0.31.20080212/lib/strlen.c.strlen dietlibc-0.31.20080212/lib/ #ifdef WANT_SMALL_STRING_ROUTINES size_t strlen(const char *s) { -@@ -10,38 +11,87 @@ size_t strlen(const char *s) { +@@ -10,38 +11,88 @@ size_t strlen(const char *s) { return i; } #else @@ -161,6 +161,7 @@ diff -upN dietlibc-0.31.20080212/lib/strlen.c.strlen dietlibc-0.31.20080212/lib/ - word += (word << 8) + (word << 16); - t += word >> 26; +#if __BYTE_ORDER == __LITTLE_ENDIAN ++ (void)mask; + switch (sizeof(word)) { + case 8: + /* word & 0x8080808080808080 == word */ @@ -178,7 +179,7 @@ diff -upN dietlibc-0.31.20080212/lib/strlen.c.strlen dietlibc-0.31.20080212/lib/ + t += word >> 26; + break; + -+ default: { char exc[sizeof(word)==8]; } ++ default: { char exc[sizeof(word)==8]; (void)exc; } + } #else - if ((word & 0x80800000) == 0) { @@ -211,7 +212,7 @@ diff -upN dietlibc-0.31.20080212/lib/strlen.c.strlen dietlibc-0.31.20080212/lib/ + } + break; + -+ default: { char exc[sizeof(word)==8]; } ++ default: { char exc[sizeof(word)==8]; (void)exc; } } - if ((word & 0x80000000) == 0) t += 1; #endif