about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog32
-rw-r--r--assert/assert-perr.c8
-rw-r--r--assert/assert.c8
-rw-r--r--include/sys/stat.h6
-rw-r--r--include/unistd.h5
-rw-r--r--include/wchar.h11
-rw-r--r--sysdeps/generic/lxstat.c5
-rw-r--r--sysdeps/generic/lxstat64.c7
-rw-r--r--sysdeps/generic/write.c6
-rw-r--r--sysdeps/mach/hurd/lxstat.c5
-rw-r--r--sysdeps/mach/hurd/lxstat64.c5
-rw-r--r--sysdeps/mach/hurd/write.c6
-rw-r--r--sysdeps/unix/common/lxstat.c5
-rw-r--r--sysdeps/unix/syscalls.list2
-rw-r--r--sysdeps/unix/sysv/aix/lxstat.c6
-rw-r--r--sysdeps/unix/sysv/aix/lxstat64.c6
-rw-r--r--sysdeps/unix/sysv/aix/write.c5
-rw-r--r--sysdeps/unix/sysv/linux/i386/lxstat.c6
-rw-r--r--sysdeps/unix/sysv/linux/ia64/lxstat.c6
-rw-r--r--sysdeps/unix/sysv/linux/lxstat.c9
-rw-r--r--sysdeps/unix/sysv/linux/lxstat64.c3
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/lxstat.c6
-rw-r--r--wcsmbs/mbrlen.c4
-rw-r--r--wcsmbs/mbrtowc.c5
24 files changed, 142 insertions, 25 deletions
diff --git a/ChangeLog b/ChangeLog
index 5590b53f01..92181ae5a4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,37 @@
 2002-04-14  Ulrich Drepper  <drepper@redhat.com>
 
+	* include/sys/stat.h: Add prototypes for __lxstat_internal and
+	__lxstat64_internal.  Add macros __lxstat and __lxstat64 if not
+	NOT_IN_libc.
+	* sysdeps/generic/lxstat.c: Use INTDEF for __lxstat.
+	* sysdeps/mach/hurd/lxstat.c: Likewise.
+	* sysdeps/unix/common/lxstat.c: Likewise.
+	* sysdeps/unix/sysv/aix/lxstat.c: Likewise.
+	* sysdeps/unix/sysv/linux/lxstat.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/lxstat.c: Likewise.
+	* sysdeps/unix/sysv/linux/ia64/lxstat.c: Likewise.
+	* sysdeps/unix/sysv/linux/s390/s390-64/lxstat.c: Likewise.
+	* sysdeps/generic/lxstat64.c: Use INTDEF for __lxstat64.
+	* sysdeps/mach/hurd/lxstat64.c: Likewise.
+	* sysdeps/unix/sysv/aix/lxstat64.c: Likewise.
+	* sysdeps/unix/sysv/linuxx/lxstat64.c: Likewise.
+
+	* include/wchar.h: Declare __mbrtowc_internal and __mbrlen_internal
+	prototypes.  Add __mbrlen and __mbrtowc macros.
+	* wcsmbs/mbrlen.c: Use INTDEF for __mbrlen.
+	* wcsmbs/mbrtowc.c: Use INTDEF for __mbrtowc.
+
+	* include/unistd.h: Add prototype for __write_internal and add
+	__libc_write macro is SHARED.
+	* sysdeps/generic/write.c: Use INTDEF for __write.
+	* sysdeps/mach/hurd/write.c: Likewise.
+	* sysdeps/unix/sysv/aix/write.c: Likewise.
+	* sysdeps/unix/syscalls.list: Add __libc_write alias.
+
+	* assert/assert.c: Replace STR_N_SIZE with something usable in
+	macro arguments.
+	* assert/assert-perr.c: Likewise.
+
 	* include/sys/socket.h: Declare __libc_sa_len_internal and define
 	SA_LEN macro to use it if not NOT_IN_libc.
 	* sysdeps/unix/sysv/linux/sa_len.c: Use INTDEF for __libc_sa_len.
diff --git a/assert/assert-perr.c b/assert/assert-perr.c
index 3846529a53..1144530640 100644
--- a/assert/assert-perr.c
+++ b/assert/assert-perr.c
@@ -75,9 +75,11 @@ __assert_perror_fail (int errnum,
       free (buf);
     }
   else
-    /* At least print a minimal message.  */
-#define STR_N_LEN(str) str, sizeof (str) - 1
-    __libc_write (STDERR_FILENO, STR_N_LEN ("Unexpected error.\n"));
+    {
+      /* At least print a minimal message.  */
+      static const char errstr[] = "Unexpected error.\n";
+      __libc_write (STDERR_FILENO, errstr, sizeof (errstr) - 1);
+    }
 
   abort ();
 }
diff --git a/assert/assert.c b/assert/assert.c
index 453d2af8a3..4f8fbfb130 100644
--- a/assert/assert.c
+++ b/assert/assert.c
@@ -73,9 +73,11 @@ __assert_fail (const char *assertion, const char *file, unsigned int line,
       free (buf);
     }
   else
-    /* At least print a minimal message.  */
-#define STR_N_LEN(str) str, sizeof (str) - 1
-    __libc_write (STDERR_FILENO, STR_N_LEN ("Unexpected error.\n"));
+    {
+      /* At least print a minimal message.  */
+      static const char errstr[] = "Unexpected error.\n";
+      __libc_write (STDERR_FILENO, errstr, sizeof (errstr) - 1);
+    }
 
   abort ();
 }
diff --git a/include/sys/stat.h b/include/sys/stat.h
index 16ae6c7125..dc9232df32 100644
--- a/include/sys/stat.h
+++ b/include/sys/stat.h
@@ -15,6 +15,10 @@ extern int __fxstat_internal (int __ver, int __fildes,
 			      struct stat *__stat_buf) attribute_hidden;
 extern int __fxstat64_internal (int __ver, int __fildes,
 				struct stat64 *__stat_buf) attribute_hidden;
+extern int __lxstat_internal (int __ver, __const char __file,
+			      struct stat *__stat_buf) attribute_hidden;
+extern int __lxstat64_internal (int __ver, __const char *__file,
+				struct stat64 *__stat_buf) attribute_hidden;
 extern __inline__ int __stat (__const char *__path, struct stat *__statbuf)
 {
   return __xstat (_STAT_VER, __path, __statbuf);
@@ -43,6 +47,8 @@ extern __inline__ int __mknod (__const char *__path, __mode_t __mode,
 
 # define __fxstat(ver, fd, buf) INTUSE(__fxstat) (ver, fd, buf)
 # define __fxstat64(ver, fd, buf) INTUSE(__fxstat64) (ver, fd, buf)
+# define __lxstat(ver, name, buf) INTUSE(__lxstat) (ver, name, buf)
+# define __lxstat64(ver, name, buf) INTUSE(__lxstat64) (ver, name, buf)
 #else
 # define fstat64(fd, buf) __fxstat64 (_STAT_VER, fd, buf)
 # define fstat(fd, buf) __fxstat (_STAT_VER, fd, buf)
diff --git a/include/unistd.h b/include/unistd.h
index fe6b8b1a7c..aaf0be0532 100644
--- a/include/unistd.h
+++ b/include/unistd.h
@@ -89,6 +89,8 @@ extern int __close (int __fd);
 extern int __close_internal (int __fd) attribute_hidden;
 extern ssize_t __read (int __fd, void *__buf, size_t __nbytes);
 extern ssize_t __write (int __fd, __const void *__buf, size_t __n);
+extern ssize_t __write_internal (int __fd, __const void *__buf, size_t __n)
+     attribute_hidden;
 extern __pid_t __fork (void);
 extern __pid_t __fork_internal (void) attribute_hidden;
 extern int __getpagesize (void) __attribute__ ((__const__));
@@ -122,6 +124,9 @@ extern void __libc_check_standard_fds (void);
 # define __getpagesize() INTUSE(__getpagesize) ()
 # define __getpgid(pid) INTUSE(__getpgid) (pid)
 # define __getpid() INTUSE(__getpid) ()
+# ifdef SHARED
+#  define __libc_write(fd, buf, n) INTUSE(__write) (fd, buf, n)
+# endif
 #endif
 
 #endif
diff --git a/include/wchar.h b/include/wchar.h
index 7ab4359ef2..c5bdf4d222 100644
--- a/include/wchar.h
+++ b/include/wchar.h
@@ -18,6 +18,12 @@ extern int __mbsinit (__const __mbstate_t *__ps);
 extern size_t __mbrtowc (wchar_t *__restrict __pwc,
 			 __const char *__restrict __s, size_t __n,
 			 __mbstate_t *__restrict __p);
+extern size_t __mbrtowc_internal (wchar_t *__restrict __pwc,
+				  __const char *__restrict __s, size_t __n,
+				  __mbstate_t *__restrict __p)
+     attribute_hidden;
+extern size_t __mbrlen_internal (__const char *__restrict __s, size_t __n,
+				 mbstate_t *__restrict __ps) attribute_hidden;
 extern size_t __wcrtomb (char *__restrict __s, wchar_t __wc,
 			 __mbstate_t *__restrict __ps);
 extern size_t __mbsrtowcs (wchar_t *__restrict __dst,
@@ -62,5 +68,10 @@ extern int __vfwprintf (__FILE *__restrict __s,
 			__gnuc_va_list __arg)
      /* __attribute__ ((__format__ (__wprintf__, 3, 0))) */;
 
+#  ifndef NOT_IN_libc
+#   define __mbrlen(s, n, ps) INTUSE(__mbrlen) (s, n, ps)
+#   define __mbrtowc(pwc, s, n, p) INTUSE(__mbrtowc) (pwc, s, n, p)
+#  endif
+
 # endif
 #endif
diff --git a/sysdeps/generic/lxstat.c b/sysdeps/generic/lxstat.c
index 61ead6ff0f..6d1da8061b 100644
--- a/sysdeps/generic/lxstat.c
+++ b/sysdeps/generic/lxstat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1992, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1992,1995,1996,1997,2002 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
@@ -18,10 +18,13 @@
 
 #include <sys/stat.h>
 
+#undef __lxstat
+
 int
 __lxstat (int version, const char *file, struct stat *buf)
 {
   return __xstat (version, file, buf);
 }
 
+INTDEF(__lxstat)
 weak_alias (__lxstat, _lxstat)
diff --git a/sysdeps/generic/lxstat64.c b/sysdeps/generic/lxstat64.c
index 03fd9fda97..8eb457dc07 100644
--- a/sysdeps/generic/lxstat64.c
+++ b/sysdeps/generic/lxstat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1995, 1996, 1997, 2002 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
@@ -20,6 +20,8 @@
 #include <stddef.h>
 #include <sys/stat.h>
 
+#undef __lxstat64
+
 /* Get file information about FILE in BUF.
    If FILE is a symbolic link, do not follow it.  */
 int
@@ -34,5 +36,6 @@ __lxstat64 (int vers, const char *file, struct stat64 *buf)
   __set_errno (ENOSYS);
   return -1;
 }
-stub_warning (lstat64)
+INTDEF(__lxstat64)
+stub_warning (__lxstat64)
 #include <stub-tag.h>
diff --git a/sysdeps/generic/write.c b/sysdeps/generic/write.c
index 893af76084..200104b5ea 100644
--- a/sysdeps/generic/write.c
+++ b/sysdeps/generic/write.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1995, 1996, 1997, 2002 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
@@ -21,6 +21,9 @@
 #include <unistd.h>
 #include <stddef.h>
 
+#undef __libc_write
+#undef __write
+
 /* Write NBYTES of BUF to FD.  Return the number written, or -1.  */
 ssize_t
 __libc_write (int fd, const void *buf, size_t nbytes)
@@ -44,5 +47,6 @@ __libc_write (int fd, const void *buf, size_t nbytes)
 stub_warning (write)
 
 weak_alias (__libc_write, __write)
+INTDEF(__write)
 weak_alias (__libc_write, write)
 #include <stub-tag.h>
diff --git a/sysdeps/mach/hurd/lxstat.c b/sysdeps/mach/hurd/lxstat.c
index a928fae7d1..3d6f981345 100644
--- a/sysdeps/mach/hurd/lxstat.c
+++ b/sysdeps/mach/hurd/lxstat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 93, 94, 95, 96, 97, 2002 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
@@ -22,6 +22,8 @@
 #include <fcntl.h>
 #include <hurd.h>
 
+#undef __lxstat
+
 int
 __lxstat (int vers, const char *file, struct stat *buf)
 {
@@ -41,4 +43,5 @@ __lxstat (int vers, const char *file, struct stat *buf)
   return 0;
 }
 
+INTDEF(__lxstat)
 weak_alias (__lxstat, _lxstat)
diff --git a/sysdeps/mach/hurd/lxstat64.c b/sysdeps/mach/hurd/lxstat64.c
index 0df4502e40..57f67c06fa 100644
--- a/sysdeps/mach/hurd/lxstat64.c
+++ b/sysdeps/mach/hurd/lxstat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2002 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
@@ -22,6 +22,8 @@
 
 #include "xstatconv.c"
 
+#undef __lxstat64
+
 /* Get information about the file descriptor FD in BUF.  */
 int
 __lxstat64 (int vers, const char *file, struct stat64 *buf)
@@ -38,3 +40,4 @@ __lxstat64 (int vers, const char *file, struct stat64 *buf)
 
   return result;
 }
+INTDEF(__lxstat64)
diff --git a/sysdeps/mach/hurd/write.c b/sysdeps/mach/hurd/write.c
index 604fffe8d0..5d6ce81436 100644
--- a/sysdeps/mach/hurd/write.c
+++ b/sysdeps/mach/hurd/write.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,92,93,94,95,97,98,99,2001 Free Software Foundation, Inc.
+/* Copyright (C) 1991-1999,2001,2002 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
@@ -20,6 +20,9 @@
 #include <unistd.h>
 #include <hurd/fd.h>
 
+#undef __libc_write
+#undef __write
+
 ssize_t
 __libc_write (int fd, const void *buf, size_t nbytes)
 {
@@ -29,4 +32,5 @@ __libc_write (int fd, const void *buf, size_t nbytes)
 }
 
 weak_alias (__libc_write, __write)
+INTDEF(__write)
 weak_alias (__libc_write, write)
diff --git a/sysdeps/unix/common/lxstat.c b/sysdeps/unix/common/lxstat.c
index 978da1bbda..98bea40a7e 100644
--- a/sysdeps/unix/common/lxstat.c
+++ b/sysdeps/unix/common/lxstat.c
@@ -1,5 +1,5 @@
 /* lxstat using old-style Unix lstat system call.
-   Copyright (C) 1991, 1995, 1996, 1997, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1991,1995,1996,1997,2000,2002 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
@@ -22,6 +22,8 @@
 #include <sys/stat.h>
 #include <bp-checks.h>
 
+#undef __lxstat
+
 extern int __syscall_lstat (const char *__unbounded, struct stat *__unbounded);
 
 int
@@ -35,4 +37,5 @@ __lxstat (int vers, const char *file, struct stat *buf)
 
   return __syscall_lstat (CHECK_STRING (file), CHECK_1 (buf));
 }
+INTDEF(__lxstat)
 weak_alias (__lxstat, _lxstat)
diff --git a/sysdeps/unix/syscalls.list b/sysdeps/unix/syscalls.list
index d922cbbe75..6b6eb5a82a 100644
--- a/sysdeps/unix/syscalls.list
+++ b/sysdeps/unix/syscalls.list
@@ -61,5 +61,5 @@ umask		-	umask		i:i	__umask		umask
 uname		-	uname		i:p	__uname		uname
 unlink		-	unlink		i:s	__unlink	unlink
 utimes		-	utimes		i:sp	__utimes	utimes
-write		-	write		i:ibn	__libc_write	__write write
+write		-	write		i:ibn	__libc_write	__write write __write_internal
 writev		-	writev		i:ipi	__writev	writev
diff --git a/sysdeps/unix/sysv/aix/lxstat.c b/sysdeps/unix/sysv/aix/lxstat.c
index bd6f6534a8..52562bd934 100644
--- a/sysdeps/unix/sysv/aix/lxstat.c
+++ b/sysdeps/unix/sysv/aix/lxstat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2000, 2002 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
@@ -21,6 +21,8 @@
 
 #define STX_LINK        0x01
 
+#undef __lxstat
+
 extern int statx (const char *pathname, struct stat *st, int len, int cmd);
 
 int
@@ -29,3 +31,5 @@ __lxstat (int ver, const char *pathname, struct stat *st)
   assert (ver == 0);
   return statx (pathname, st, sizeof (*st), STX_LINK);
 }
+
+INTDEF(__lxstat)
diff --git a/sysdeps/unix/sysv/aix/lxstat64.c b/sysdeps/unix/sysv/aix/lxstat64.c
index d6376bd260..d68b4583d2 100644
--- a/sysdeps/unix/sysv/aix/lxstat64.c
+++ b/sysdeps/unix/sysv/aix/lxstat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2000, 2002 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
@@ -22,6 +22,8 @@
 #define STX_LINK        0x01
 #define STX_64          0x08
 
+#undef __lxstat64
+
 extern int statx (const char *pathname, struct stat64 *st, int len, int cmd);
 
 int
@@ -30,3 +32,5 @@ __lxstat64 (int ver, const char *pathname, struct stat64 *st)
   assert (ver == 0);
   return statx (pathname, st, sizeof (*st), STX_LINK | STX_64);
 }
+
+INTDEF(__lxstat64)
diff --git a/sysdeps/unix/sysv/aix/write.c b/sysdeps/unix/sysv/aix/write.c
index 727ec82cfb..5a1ac101e4 100644
--- a/sysdeps/unix/sysv/aix/write.c
+++ b/sysdeps/unix/sysv/aix/write.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
 
@@ -21,6 +21,8 @@
 
 #include "kernel_proto.h"
 
+#undef __libc_write
+#undef __write
 
 ssize_t
 __write (fd, ptr, n)
@@ -30,6 +32,7 @@ __write (fd, ptr, n)
 {
   return kwrite (fd, ptr, n);
 }
+INTDEF(__write)
 /* AIX has no weak aliases (yet) but let's hope for better times.  */
 weak_alias (__write, write)
 strong_alias (__write, __libc_write)
diff --git a/sysdeps/unix/sysv/linux/i386/lxstat.c b/sysdeps/unix/sysv/linux/i386/lxstat.c
index dee4fbac73..58a837ee1c 100644
--- a/sysdeps/unix/sysv/linux/i386/lxstat.c
+++ b/sysdeps/unix/sysv/linux/i386/lxstat.c
@@ -1,5 +1,5 @@
 /* lxstat using old-style Unix lstat system call.
-   Copyright (C) 1991,95,96,97,98,2000 Free Software Foundation, Inc.
+   Copyright (C) 1991,95,96,97,98,2000,2002 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
@@ -34,6 +34,8 @@
 
 #include <xstatconv.c>
 
+#undef __lxstat
+
 extern int __syscall_lstat (const char *__unbounded,
 			    struct kernel_stat *__unbounded);
 
@@ -96,8 +98,10 @@ __lxstat (int vers, const char *name, struct stat *buf)
 #endif
 }
 
+INTDEF(__lxstat)
 weak_alias (__lxstat, _lxstat);
 #ifdef XSTAT_IS_XSTAT64
 #undef __lxstat64
+INTDEF(__lxstat64)
 strong_alias (__lxstat, __lxstat64);
 #endif
diff --git a/sysdeps/unix/sysv/linux/ia64/lxstat.c b/sysdeps/unix/sysv/linux/ia64/lxstat.c
index 925f1353e3..449682563d 100644
--- a/sysdeps/unix/sysv/linux/ia64/lxstat.c
+++ b/sysdeps/unix/sysv/linux/ia64/lxstat.c
@@ -1,5 +1,5 @@
 /* lxstat using old-style Unix fstat system call.
-   Copyright (C) 1991, 95, 96, 97, 98, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1991,95,96,97,98,2000,2002 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
@@ -29,6 +29,8 @@
 #include <sys/syscall.h>
 #include <bp-checks.h>
 
+#undef __lxstat
+
 extern int __syscall_lstat (const char *__unbounded, struct stat *__unbounded);
 
 /* Get information about the file FD in BUF.  */
@@ -38,6 +40,8 @@ __lxstat (int vers, const char *name, struct stat *buf)
   return INLINE_SYSCALL (lstat, 2, CHECK_STRING (name), CHECK_1 (buf));
 }
 
+INTDEF(__lxstat)
 weak_alias (__lxstat, _lxstat);
 #undef __lxstat64
+INTDEF(__lxstat64)
 strong_alias (__lxstat, __lxstat64);
diff --git a/sysdeps/unix/sysv/linux/lxstat.c b/sysdeps/unix/sysv/linux/lxstat.c
index 15824e09f5..9f92a191f1 100644
--- a/sysdeps/unix/sysv/linux/lxstat.c
+++ b/sysdeps/unix/sysv/linux/lxstat.c
@@ -1,5 +1,5 @@
 /* lxstat using old-style Unix lstat system call.
-   Copyright (C) 1991, 1995, 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1991,1995-1998,2000,2002 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
@@ -32,7 +32,10 @@
 
 #include <xstatconv.c>
 
-extern int __syscall_lstat (const char *__unbounded, struct kernel_stat *__unbounded);
+#undef __lxstat
+
+extern int __syscall_lstat (const char *__unbounded,
+			    struct kernel_stat *__unbounded);
 
 /* Get information about the file NAME in BUF.  */
 int
@@ -52,8 +55,10 @@ __lxstat (int vers, const char *name, struct stat *buf)
   return result;
 }
 
+INTDEF(__lxstat)
 weak_alias (__lxstat, _lxstat);
 #ifdef XSTAT_IS_XSTAT64
 #undef __lxstat64
+INTDEF(__lxstat64)
 strong_alias (__lxstat, __lxstat64);
 #endif
diff --git a/sysdeps/unix/sysv/linux/lxstat64.c b/sysdeps/unix/sysv/linux/lxstat64.c
index 94540a97ab..6191af2724 100644
--- a/sysdeps/unix/sysv/linux/lxstat64.c
+++ b/sysdeps/unix/sysv/linux/lxstat64.c
@@ -32,6 +32,8 @@
 # include <xstatconv.c>
 #endif
 
+#undef __lxstat64
+
 extern int __syscall_lstat (const char *__unbounded,
 			    struct kernel_stat *__unbounded);
 
@@ -100,3 +102,4 @@ compat_symbol (libc, __old__lxstat64, __lxstat64, GLIBC_2_1);
 #else
 strong_alias (___lxstat64, __lxstat64);
 #endif
+INTDEF2(___lxstat64, __lxstat64)
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/lxstat.c b/sysdeps/unix/sysv/linux/s390/s390-64/lxstat.c
index d6bd47789b..5a86fc177a 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/lxstat.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/lxstat.c
@@ -1,5 +1,5 @@
 /* lxstat using old-style Unix fstat system call.  64 bit S/390 version.
-   Copyright (C) 2001 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2002 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
@@ -28,6 +28,8 @@
 #include <sysdep.h>
 #include <sys/syscall.h>
 
+#undef __lxstat
+
 extern int __syscall_lstat (const char *, struct stat *);
 
 /* Get information about the file FD in BUF.  */
@@ -37,6 +39,8 @@ __lxstat (int vers, const char *name, struct stat *buf)
   return INLINE_SYSCALL (lstat, 2, name, buf);
 }
 
+INTDEF(__lxstat)
 weak_alias (__lxstat, _lxstat);
 #undef __lxstat64
+INTDEF(__lxstat64)
 strong_alias (__lxstat, __lxstat64);
diff --git a/wcsmbs/mbrlen.c b/wcsmbs/mbrlen.c
index 52f92bb9dc..ff7f6628a5 100644
--- a/wcsmbs/mbrlen.c
+++ b/wcsmbs/mbrlen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>
 
@@ -19,6 +19,7 @@
 
 #include <wchar.h>
 
+#undef __mbrlen
 
 /* The mbrlen function has an internal shift state which gets used if
    the PS parameter is NULL.  */
@@ -33,4 +34,5 @@ __mbrlen (s, n, ps)
 {
   return __mbrtowc (NULL, s, n, ps ?: &internal);
 }
+INTDEF(__mbrlen)
 weak_alias (__mbrlen, mbrlen)
diff --git a/wcsmbs/mbrtowc.c b/wcsmbs/mbrtowc.c
index 965535fcd5..a2a31872c8 100644
--- a/wcsmbs/mbrtowc.c
+++ b/wcsmbs/mbrtowc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1996,1997,1998,1999,2000,2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
 
@@ -29,6 +29,8 @@
 # define EILSEQ EINVAL
 #endif
 
+#undef __mbrtowc
+
 /* This is the private state used if PS is NULL.  */
 static mbstate_t state;
 
@@ -104,4 +106,5 @@ __mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
 
   return result;
 }
+INTDEF(__mbrtowc)
 weak_alias (__mbrtowc, mbrtowc)