* 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.
This commit is contained in:
Ulrich Drepper 2002-04-15 05:35:10 +00:00
parent 08f600749e
commit fab656f5a7
24 changed files with 142 additions and 25 deletions

View file

@ -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.

View file

@ -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 ();
}

View file

@ -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 ();
}

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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>

View file

@ -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>

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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

View file

@ -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);

View file

@ -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

View file

@ -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)

View file

@ -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);

View file

@ -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)

View file

@ -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)