Skip to content

Commit

Permalink
Update.
Browse files Browse the repository at this point in the history
	* 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.
  • Loading branch information
Ulrich Drepper committed Apr 15, 2002
1 parent 08f6007 commit fab656f
Show file tree
Hide file tree
Showing 24 changed files with 142 additions and 25 deletions.
32 changes: 32 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,5 +1,37 @@
2002-04-14 Ulrich Drepper <[email protected]>

* 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.
Expand Down
8 changes: 5 additions & 3 deletions assert/assert-perr.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 ();
}
8 changes: 5 additions & 3 deletions assert/assert.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 ();
}
Expand Down
6 changes: 6 additions & 0 deletions include/sys/stat.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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)
Expand Down
5 changes: 5 additions & 0 deletions include/unistd.h
Original file line number Diff line number Diff line change
Expand Up @@ -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__));
Expand Down Expand Up @@ -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
11 changes: 11 additions & 0 deletions include/wchar.h
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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
5 changes: 4 additions & 1 deletion sysdeps/generic/lxstat.c
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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)
7 changes: 5 additions & 2 deletions sysdeps/generic/lxstat64.c
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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
Expand All @@ -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>
6 changes: 5 additions & 1 deletion sysdeps/generic/write.c
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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)
Expand All @@ -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>
5 changes: 4 additions & 1 deletion sysdeps/mach/hurd/lxstat.c
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -22,6 +22,8 @@
#include <fcntl.h>
#include <hurd.h>

#undef __lxstat

int
__lxstat (int vers, const char *file, struct stat *buf)
{
Expand All @@ -41,4 +43,5 @@ __lxstat (int vers, const char *file, struct stat *buf)
return 0;
}

INTDEF(__lxstat)
weak_alias (__lxstat, _lxstat)
5 changes: 4 additions & 1 deletion sysdeps/mach/hurd/lxstat64.c
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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)
Expand All @@ -38,3 +40,4 @@ __lxstat64 (int vers, const char *file, struct stat64 *buf)

return result;
}
INTDEF(__lxstat64)
6 changes: 5 additions & 1 deletion sysdeps/mach/hurd/write.c
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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)
{
Expand All @@ -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)
5 changes: 4 additions & 1 deletion sysdeps/unix/common/lxstat.c
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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
Expand All @@ -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)
2 changes: 1 addition & 1 deletion sysdeps/unix/syscalls.list
Original file line number Diff line number Diff line change
Expand Up @@ -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
6 changes: 5 additions & 1 deletion sysdeps/unix/sysv/aix/lxstat.c
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -21,6 +21,8 @@

#define STX_LINK 0x01

#undef __lxstat

extern int statx (const char *pathname, struct stat *st, int len, int cmd);

int
Expand All @@ -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)
6 changes: 5 additions & 1 deletion sysdeps/unix/sysv/aix/lxstat64.c
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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
Expand All @@ -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)
5 changes: 4 additions & 1 deletion sysdeps/unix/sysv/aix/write.c
Original file line number Diff line number Diff line change
@@ -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 <[email protected]>, 1999.
Expand All @@ -21,6 +21,8 @@

#include "kernel_proto.h"

#undef __libc_write
#undef __write

ssize_t
__write (fd, ptr, n)
Expand All @@ -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)
6 changes: 5 additions & 1 deletion sysdeps/unix/sysv/linux/i386/lxstat.c
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -34,6 +34,8 @@

#include <xstatconv.c>

#undef __lxstat

extern int __syscall_lstat (const char *__unbounded,
struct kernel_stat *__unbounded);

Expand Down Expand Up @@ -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
Loading

0 comments on commit fab656f

Please sign in to comment.