From: Ulrich Drepper Date: Wed, 12 Dec 2007 18:03:27 +0000 (+0000) Subject: [BZ #5477] X-Git-Tag: upstream/2.30~14433 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a78814a99acf70c9ccc967417a082cc8117586b4;p=external%2Fglibc.git [BZ #5477] 2007-12-12 Jakub Jelinek * 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 [BZ #5477] * io/fchmodat.c: Fix typo in stub_warning use. Patch by Petr Salinger. --- diff --git a/ChangeLog b/ChangeLog index 05780cd..69fa31b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2007-12-12 Jakub Jelinek + + * 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 + + [BZ #5477] + * io/fchmodat.c: Fix typo in stub_warning use. + Patch by Petr Salinger. + 2007-12-11 Ulrich Drepper * iconvdata/hp-thai8.c: New file. diff --git a/io/fchmodat.c b/io/fchmodat.c index 6aecf2a..6a40f5b 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 diff --git a/sysdeps/i386/i486/bits/string.h b/sysdeps/i386/i486/bits/string.h index cf5f484..9f05c7e 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 b2a3ba9..49103b9 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) {