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.
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 ();
}
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 ();
}
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);
# 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)
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__));
# 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
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,
__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
-/* 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
#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)
-/* 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
#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
__set_errno (ENOSYS);
return -1;
}
-stub_warning (lstat64)
+INTDEF(__lxstat64)
+stub_warning (__lxstat64)
#include <stub-tag.h>
-/* 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
#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)
stub_warning (write)
weak_alias (__libc_write, __write)
+INTDEF(__write)
weak_alias (__libc_write, write)
#include <stub-tag.h>
-/* 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
#include <fcntl.h>
#include <hurd.h>
+#undef __lxstat
+
int
__lxstat (int vers, const char *file, struct stat *buf)
{
return 0;
}
+INTDEF(__lxstat)
weak_alias (__lxstat, _lxstat)
-/* 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
#include "xstatconv.c"
+#undef __lxstat64
+
/* Get information about the file descriptor FD in BUF. */
int
__lxstat64 (int vers, const char *file, struct stat64 *buf)
return result;
}
+INTDEF(__lxstat64)
-/* 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
#include <unistd.h>
#include <hurd/fd.h>
+#undef __libc_write
+#undef __write
+
ssize_t
__libc_write (int fd, const void *buf, size_t nbytes)
{
}
weak_alias (__libc_write, __write)
+INTDEF(__write)
weak_alias (__libc_write, write)
/* 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
#include <sys/stat.h>
#include <bp-checks.h>
+#undef __lxstat
+
extern int __syscall_lstat (const char *__unbounded, struct stat *__unbounded);
int
return __syscall_lstat (CHECK_STRING (file), CHECK_1 (buf));
}
+INTDEF(__lxstat)
weak_alias (__lxstat, _lxstat)
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
-/* 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
#define STX_LINK 0x01
+#undef __lxstat
+
extern int statx (const char *pathname, struct stat *st, int len, int cmd);
int
assert (ver == 0);
return statx (pathname, st, sizeof (*st), STX_LINK);
}
+
+INTDEF(__lxstat)
-/* 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
#define STX_LINK 0x01
#define STX_64 0x08
+#undef __lxstat64
+
extern int statx (const char *pathname, struct stat64 *st, int len, int cmd);
int
assert (ver == 0);
return statx (pathname, st, sizeof (*st), STX_LINK | STX_64);
}
+
+INTDEF(__lxstat64)
-/* 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.
#include "kernel_proto.h"
+#undef __libc_write
+#undef __write
ssize_t
__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)
/* 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
#include <xstatconv.c>
+#undef __lxstat
+
extern int __syscall_lstat (const char *__unbounded,
struct kernel_stat *__unbounded);
#endif
}
+INTDEF(__lxstat)
weak_alias (__lxstat, _lxstat);
#ifdef XSTAT_IS_XSTAT64
#undef __lxstat64
+INTDEF(__lxstat64)
strong_alias (__lxstat, __lxstat64);
#endif
/* 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
#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. */
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);
/* 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
#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
return result;
}
+INTDEF(__lxstat)
weak_alias (__lxstat, _lxstat);
#ifdef XSTAT_IS_XSTAT64
#undef __lxstat64
+INTDEF(__lxstat64)
strong_alias (__lxstat, __lxstat64);
#endif
# include <xstatconv.c>
#endif
+#undef __lxstat64
+
extern int __syscall_lstat (const char *__unbounded,
struct kernel_stat *__unbounded);
#else
strong_alias (___lxstat64, __lxstat64);
#endif
+INTDEF2(___lxstat64, __lxstat64)
/* 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
#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. */
return INLINE_SYSCALL (lstat, 2, name, buf);
}
+INTDEF(__lxstat)
weak_alias (__lxstat, _lxstat);
#undef __lxstat64
+INTDEF(__lxstat64)
strong_alias (__lxstat, __lxstat64);
-/* 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>
#include <wchar.h>
+#undef __mbrlen
/* The mbrlen function has an internal shift state which gets used if
the PS parameter is NULL. */
{
return __mbrtowc (NULL, s, n, ps ?: &internal);
}
+INTDEF(__mbrlen)
weak_alias (__mbrlen, mbrlen)
-/* 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.
# define EILSEQ EINVAL
#endif
+#undef __mbrtowc
+
/* This is the private state used if PS is NULL. */
static mbstate_t state;
return result;
}
+INTDEF(__mbrtowc)
weak_alias (__mbrtowc, mbrtowc)