aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/lib/string.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-04-07 11:15:40 +0200
committerIngo Molnar <mingo@elte.hu>2009-04-07 11:15:40 +0200
commit5e34437840d33554f69380584311743b39e8fbeb (patch)
treee081135619ee146af5efb9ee883afca950df5757 /arch/s390/lib/string.c
parent77d05632baee21b1cef8730d7c06aa69601e4dca (diff)
parentd508afb437daee7cf07da085b635c44a4ebf9b38 (diff)
downloadkernel_goldelico_gta04-5e34437840d33554f69380584311743b39e8fbeb.zip
kernel_goldelico_gta04-5e34437840d33554f69380584311743b39e8fbeb.tar.gz
kernel_goldelico_gta04-5e34437840d33554f69380584311743b39e8fbeb.tar.bz2
Merge branch 'linus' into core/softlockup
Conflicts: kernel/sysctl.c
Diffstat (limited to 'arch/s390/lib/string.c')
-rw-r--r--arch/s390/lib/string.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/s390/lib/string.c b/arch/s390/lib/string.c
index ae5cf5d..4143b7c 100644
--- a/arch/s390/lib/string.c
+++ b/arch/s390/lib/string.c
@@ -44,7 +44,11 @@ static inline char *__strnend(const char *s, size_t n)
*/
size_t strlen(const char *s)
{
+#if __GNUC__ < 4
return __strend(s) - s;
+#else
+ return __builtin_strlen(s);
+#endif
}
EXPORT_SYMBOL(strlen);
@@ -70,6 +74,7 @@ EXPORT_SYMBOL(strnlen);
*/
char *strcpy(char *dest, const char *src)
{
+#if __GNUC__ < 4
register int r0 asm("0") = 0;
char *ret = dest;
@@ -78,6 +83,9 @@ char *strcpy(char *dest, const char *src)
: "+&a" (dest), "+&a" (src) : "d" (r0)
: "cc", "memory" );
return ret;
+#else
+ return __builtin_strcpy(dest, src);
+#endif
}
EXPORT_SYMBOL(strcpy);