Commit Graph

5 Commits

Author SHA1 Message Date
Adhemerval Zanella
94caafa040 io: Return EBAFD for negative file descriptor on fstat (BZ #27559)
Now that fstat is implemented on top fstatat we need to handle negative
inputs.  The implementation now rejects AT_FDCWD, which would otherwise
be accepted by the kernel.

Checked on x86_64-linux-gnu and on i686-linux-gnu.
2021-03-11 10:51:55 -03:00
Paul Eggert
2b778ceb40 Update copyright dates with scripts/update-copyrights
I used these shell commands:

../glibc/scripts/update-copyrights $PWD/../gnulib/build-aux/update-copyright
(cd ../glibc && git commit -am"[this commit message]")

and then ignored the output, which consisted lines saying "FOO: warning:
copyright statement not found" for each of 6694 files FOO.
I then removed trailing white space from benchtests/bench-pthread-locks.c
and iconvdata/tst-iconv-big5-hkscs-to-2ucs4.c, to work around this
diagnostic from Savannah:
remote: *** pre-commit check failed ...
remote: *** error: lines with trailing whitespace found
remote: error: hook declined to update refs/heads/master
2021-01-02 12:17:34 -08:00
Adhemerval Zanella
30f1c74394 linux: Implement {l}fstat{at} in terms of fstatat
Both fstatat and fstata64 calls the old fxstatat and fxstatat64
repectivelly with _STAT_VER, the one currently exported as default
for all ABIs.

Checked with a build for all affected ABIs. I also checked on x86_64,
i686, powerpc, powerpc64le, sparcv9, sparc64, s390, and s390x.

Reviewed-by: Lukasz Majewski <lukma@denx.de>
2020-10-09 17:02:06 -03:00
Roland McGrath
c43b8c4bea Wed Jan 17 11:04:58 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* io/sys/stat.h (_STAT_VER, _MKNOD_VER): New macros.
	(__xstat, __fxstat, __lxstat, __xmknod): Declare new functions.
	[__GNUC__] (stat, fstat, lstat, mknod): Define these (and __ names)
	as `extern inline's calling the `x' functions.
	* io/fstat.c: New file.
	* io/lstat.c: New file.
	* io/stat.c: New file.
	* sysdeps/generic/lstat.c: File removed.
	* sysdeps/generic/lxstat.c: New file.
	* sysdeps/mach/hurd/fstat.c: File removed.
	* sysdeps/mach/hurd/fxstat.c: New file.
	* sysdeps/mach/hurd/lstat.c: File removed.
	* sysdeps/mach/hurd/lxstat.c: New file.
	* sysdeps/mach/hurd/mknod.c: File removed.
	* sysdeps/mach/hurd/stat.c: File removed.
	* sysdeps/mach/hurd/xmknod.c: New file.
	* sysdeps/mach/hurd/xstat.c: New file.
	* sysdeps/stub/fstat.c: File removed.
	* sysdeps/stub/fxstat.c: New file.
	* sysdeps/stub/lstat.c: File removed.
	* sysdeps/stub/lxstat.c: New file.
	* sysdeps/stub/mknod.c: File removed.
	* sysdeps/stub/stat.c: File removed.
	* sysdeps/stub/xmknod.c: New file.
	* sysdeps/stub/xstat.c: New file.
	* sysdeps/unix/common/lstat.S: File removed.
	* sysdeps/unix/common/lxstat.c: New file.
	* sysdeps/unix/fstat.S: File removed.
	* sysdeps/unix/fxstat.c: New file.
	* sysdeps/unix/mknod.S: File removed.
	* sysdeps/unix/stat.S: File removed.
	* sysdeps/unix/sysv/linux/fstat.c: File removed.
	* sysdeps/unix/sysv/linux/i386/fxstat.S: File removed.
	* sysdeps/unix/sysv/linux/i386/lxstat.S: File removed.
	* sysdeps/unix/sysv/linux/i386/xmknod.S: File removed.
	* sysdeps/unix/sysv/linux/i386/xstat.S: File removed.
	* sysdeps/unix/sysv/linux/lstat.c: File removed.
	* sysdeps/unix/sysv/linux/mknod.c: File removed.
	* sysdeps/unix/sysv/linux/stat.c: File removed.
	* sysdeps/unix/sysv/sysv4/i386/fstat.S: File removed.
	* sysdeps/unix/sysv/sysv4/i386/lstat.S: File removed.
	* sysdeps/unix/sysv/sysv4/i386/mknod.S: File removed.
	* sysdeps/unix/sysv/sysv4/i386/stat.S: File removed.
	* sysdeps/unix/xmknod.c: New file.
	* sysdeps/unix/xstat.c: New file.
	* sysdeps/unix/mkfifo.c: Use __xmknod instead of __mknod.
	* misc/Makefile (routines): Remove mknod.
	* io/sys/stat.h (_STAT_VER, _MKNOD_VER): New macros.
	(__xstat, __fxstat, __lxstat, __xmknod): Declare new functions.
	[__GNUC__] (stat, fstat, lstat, mknod): Define these (and __ names)
	as `extern inline's calling the `x' functions.
	* io/fstat.c: New file.
	* io/lstat.c: New file.
	* io/stat.c: New file.
	* sysdeps/generic/lstat.c: File removed.
	* sysdeps/generic/lxstat.c: New file.
	* sysdeps/mach/hurd/fstat.c: File removed.
	* sysdeps/mach/hurd/fxstat.c: New file.
	* sysdeps/mach/hurd/lstat.c: File removed.
	* sysdeps/mach/hurd/lxstat.c: New file.
	* sysdeps/mach/hurd/mknod.c: File removed.
	* sysdeps/mach/hurd/stat.c: File removed.
	* sysdeps/mach/hurd/xmknod.c: New file.
	* sysdeps/mach/hurd/xstat.c: New file.
	* sysdeps/stub/fstat.c: File removed.
	* sysdeps/stub/fxstat.c: New file.
	* sysdeps/stub/lstat.c: File removed.
	* sysdeps/stub/lxstat.c: New file.
	* sysdeps/stub/mknod.c: File removed.
	* sysdeps/stub/stat.c: File removed.
	* sysdeps/stub/xmknod.c: New file.
	* sysdeps/stub/xstat.c: New file.
	* sysdeps/unix/common/lstat.S: File removed.
	* sysdeps/unix/common/lxstat.c: New file.
	* sysdeps/unix/fstat.S: File removed.
	* sysdeps/unix/fxstat.c: New file.
	* sysdeps/unix/mknod.S: File removed.
	* sysdeps/unix/stat.S: File removed.
	* sysdeps/unix/sysv/linux/fstat.c: File removed.
	* sysdeps/unix/sysv/linux/i386/fxstat.S: File removed.
	* sysdeps/unix/sysv/linux/i386/lxstat.S: File removed.
	* sysdeps/unix/sysv/linux/i386/xmknod.S: File removed.
	* sysdeps/unix/sysv/linux/i386/xstat.S: File removed.
	* sysdeps/unix/sysv/linux/lstat.c: File removed.
	* sysdeps/unix/sysv/linux/mknod.c: File removed.
	* sysdeps/unix/sysv/linux/stat.c: File removed.
	* sysdeps/unix/sysv/sysv4/i386/fstat.S: File removed.
	* sysdeps/unix/sysv/sysv4/i386/lstat.S: File removed.
	* sysdeps/unix/sysv/sysv4/i386/mknod.S: File removed.
	* sysdeps/unix/sysv/sysv4/i386/stat.S: File removed.
	* sysdeps/unix/xmknod.c: New file.
	* sysdeps/unix/xstat.c: New file.
	* sysdeps/unix/mkfifo.c: Use __xmknod instead of __mknod.
	* misc/Makefile (routines): Remove mknod.

	* sysdeps/ieee754/ieee754.h (union ieee854_long_double.ieee_nan):
	Add missing ; in little-endian case.
1996-01-18 00:35:55 +00:00
Roland McGrath
ff9bef7f88 Wed Oct 25 14:23:35 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* sysdeps/unix/sysv/linux/stat.c: New file.
	* sysdeps/unix/sysv/linux/fstat.c: New file.
	* sysdeps/unix/sysv/linux/lstat.c: New file.
	* sysdeps/unix/sysv/linux/i386/stat.S: File removed.
	* sysdeps/unix/sysv/linux/i386/fstat.S: File removed.
	* sysdeps/unix/sysv/linux/i386/lstat.S: File removed.
1995-10-25 19:20:45 +00:00