diff options
-rw-r--r-- | ChangeLog | 13 | ||||
-rw-r--r-- | io/fchmodat.c | 4 | ||||
-rw-r--r-- | sysdeps/i386/i486/bits/string.h | 7 | ||||
-rw-r--r-- | sysdeps/s390/bits/string.h | 14 |
4 files changed, 34 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog index 05780cdd3a..69fa31bff5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2007-12-12 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/i386/i486/bits/string.h (memmove): Define as macro. + (memmove): Rename to __memmove_g, with __asm__ ("memmove"). + * sysdeps/s390/bits/string.h (__strlen_g, __strcpy_g, __strncpy_g, + __strcat_g, __strncat_g): Add __asm__. + +2007-12-12 Ulrich Drepper <drepper@redhat.com> + + [BZ #5477] + * io/fchmodat.c: Fix typo in stub_warning use. + Patch by Petr Salinger. + 2007-12-11 Ulrich Drepper <drepper@redhat.com> * iconvdata/hp-thai8.c: New file. diff --git a/io/fchmodat.c b/io/fchmodat.c index 6aecf2ac23..6a40f5baff 100644 --- a/io/fchmodat.c +++ b/io/fchmodat.c @@ -1,5 +1,5 @@ /* Change the protections of file relative to open directory. Stub version. - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2007 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -45,6 +45,6 @@ fchmodat (fd, file, mode, flag) __set_errno (ENOSYS); return -1; } -stub_warning (fchownat) +stub_warning (fchmodat) #include <stub-tag.h> diff --git a/sysdeps/i386/i486/bits/string.h b/sysdeps/i386/i486/bits/string.h index cf5f4847fa..9f05c7e655 100644 --- a/sysdeps/i386/i486/bits/string.h +++ b/sysdeps/i386/i486/bits/string.h @@ -145,8 +145,13 @@ __memcpy_g (void *__dest, __const void *__src, size_t __n) #ifndef _FORCE_INLINES /* Copy N bytes of SRC to DEST, guaranteeing correct behavior for overlapping strings. */ +#define memmove(dest, src, n) __memmove_g (dest, src, n) + +__STRING_INLINE void *__memmove_g (void *, __const void *, size_t) + __asm__ ("memmove"); + __STRING_INLINE void * -memmove (void *__dest, __const void *__src, size_t __n) +__memmove_g (void *__dest, __const void *__src, size_t __n) { register unsigned long int __d0, __d1, __d2; register void *__tmp = __dest; diff --git a/sysdeps/s390/bits/string.h b/sysdeps/s390/bits/string.h index b2a3ba9c98..49103b9438 100644 --- a/sysdeps/s390/bits/string.h +++ b/sysdeps/s390/bits/string.h @@ -42,6 +42,8 @@ #ifndef _FORCE_INLINES #define strlen(str) __strlen_g ((str)) +__STRING_INLINE size_t __strlen_g (__const char *) __asm__ ("strlen"); + __STRING_INLINE size_t __strlen_g (__const char *__str) { @@ -63,6 +65,8 @@ __strlen_g (__const char *__str) #ifndef _FORCE_INLINES #define strcpy(dest, src) __strcpy_g ((dest), (src)) +__STRING_INLINE char *__strcpy_g (char *, __const char *) __asm ("strcpy"); + __STRING_INLINE char * __strcpy_g (char *__dest, __const char *__src) { @@ -81,6 +85,9 @@ __strcpy_g (char *__dest, __const char *__src) #ifndef _FORCE_INLINES #define strncpy(dest, src, n) __strncpy_g ((dest), (src), (n)) +__STRING_INLINE char *__strncpy_g (char *, __const char *, size_t) + __asm__ ("strncpy"); + __STRING_INLINE char * __strncpy_g (char *__dest, __const char *__src, size_t __n) { @@ -122,8 +129,10 @@ __strncpy_g (char *__dest, __const char *__src, size_t __n) #ifndef _FORCE_INLINES #define strcat(dest, src) __strcat_g ((dest), (src)) +__STRING_INLINE char *__strcat_g (char *, __const char *) __asm__ ("strcat"); + __STRING_INLINE char * -__strcat_g(char *__dest, const char *__src) +__strcat_g (char *__dest, __const char *__src) { char *__ret = __dest; char *__ptr, *__tmp; @@ -152,6 +161,9 @@ __strcat_g(char *__dest, const char *__src) #ifndef _FORCE_INLINES #define strncat(dest, src, n) __strncat_g ((dest), (src), (n)) +__STRING_INLINE char *__strncat_g (char *, __const char *, size_t) + __asm__ ("strncat"); + __STRING_INLINE char * __strncat_g (char *__dest, __const char *__src, size_t __n) { |