mirror of git://sourceware.org/git/glibc.git
The __NR_statfs64 syscall is supported on all architectures but
aarch64, mips64, riscv64, and x86_64. And newer ABIs also uses
the new statfs64 interface (where the struct size is used as
second argument).
So the default implementation now uses:
1. __NR_statfs64 for non-LFS call and handle overflow directly
There is no need to handle __NR_statfs since all architectures
that only support are LFS only.
2. __NR_statfs if defined or __NR_statfs64 otherwise for LFS
call.
Alpha is the only outlier, since it is a 64-bit architecture which
provides non-LFS interface and only provides __NR_statfs64 on
newer kernels (v5.1+).
Checked on x86_64-linux-gnu.
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
|
||
|---|---|---|
| .. | ||
| bits | ||
| wordsize-32 | ||
| Makefile | ||
| README | ||
| ____longjmp_chk.c | ||
| chmod.c | ||
| chown.c | ||
| dl-origin.c | ||
| dup2.c | ||
| epoll_create.c | ||
| inotify_init.c | ||
| lchown.c | ||
| link.c | ||
| mkdir.c | ||
| pipe.c | ||
| readlink.c | ||
| rmdir.c | ||
| stat-check.c | ||
| symlink.c | ||
| syscalls.list | ||
| sysdep.h | ||
| unlink.c | ||
| xstatver.h | ||
README
This hierarchy supports Linux systems using the new asm-generic/unistd.h, which removes many familiar old syscalls. For example, to implement open(), newer Linux architectures require glibc to invoke the __NR_openat syscall with AT_FDCWD. This hierarchy provides all those implementations. It also provides support for 32-bit platforms using the 64-bit kernel syscall APIs, as the 32-bit ones are no longer provided. Note that newer ILP32 environments (x32 or AArch64:ILP32, for example) are converting to use more 64-bit types in kernel syscalls, so that aspect of this support is in more flux as of this writing.