glibc/sysdeps/unix/sysv/linux/mips
Adhemerval Zanella 6073bae64c linux: Disentangle fstatat from fxstatat
It implements all the required syscall for the all Linux kABIS on
fstatat{64} instead of calling fxstatat{64}.

On non-LFS implementation, it handles 3 cases:

  1. New kABIs which uses generic pre 64-bit time Linux ABI (csky and
     nios): it issues __NR_fstat64 plus handle the overflow on st_ino,
     st_size, or st_blocks.

  2. Old KABIs with old non-LFS support (arm, i386, hppa, m68k,
     microblaze, mips32, s390, sh, powerpc, and sparc32): it issues
     __NR_fstatat64 and convert the result to struct stat.

  3. 64-bit kABI outliers (mips64 and mips64-n32): it issues
     __NR_newfstatat and convert the result to struct stat.

The generic LFS implementation handles multiple cases:

  1. XSTAT_IS_XSTAT64 being 1:

    1.1. 64-bit kABI (aarch64, ia64, powerpc64*, s390x, riscv64, and
         x86_64): it issues __NR_newfstatat.

    1.2. 64-bit kABI outlier (alpha): it issues __NR_fstatat64.

    1.3. 64-bit kABI outlier where struct stat64 does not match kernel
         one (sparc64): it issues __NR_fstatat64 and convert the result
         to struct stat64.

    1.4. 32-bit kABI with default 64-bit time_t (arc, riscv32): it
         issues __NR_statx and convert the result to struct stat64.

  2. Old ABIs with XSTAT_IS_XSTAT64 being 0:

    2.1. All kABIs with non-LFS support (arm, csky, i386, hppa, m68k,
         microblaze, nios2, sh, powerpc32, and sparc32): it issues
         __NR_fstatat64.

    2.2. 64-bit kABI outliers (mips64 and mips64-n32): it issues
         __NR_newfstatat and convert the result to struct stat64.

It allows to remove all the hidden definitions from the {f,l}xstat{64}
(some are still kept because Hurd requires it).

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
..
bits linux: Move the struct stat{64} to struct_stat.h 2020-10-09 17:02:06 -03:00
mips32 Remove mknod wrapper functions, move them to symbols 2020-10-09 17:02:06 -03:00
mips64 linux: Disentangle fstatat from fxstatat 2020-10-09 17:02:06 -03:00
sys Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
____longjmp_chk.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
_test_and_set.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
brk.c linux: Remove INTERNAL_SYSCALL_DECL 2020-02-14 21:12:45 -03:00
clone.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
configure Replace Minumum/minumum with Minimum/minimum 2020-10-06 05:15:11 -07:00
configure.ac Replace Minumum/minumum with Minimum/minimum 2020-10-06 05:15:11 -07:00
dl-cache.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dl-static.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
errlist-compat.c signal: Move sys_errlist to a compat symbol 2020-07-07 14:10:58 -03:00
fxstat.c linux: Disentangle fstatat from fxstatat 2020-10-09 17:02:06 -03:00
getcontext.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
getrlimit64.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
getsysstats.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
Implies NPTL is no longer an add-on! 2014-07-07 09:29:06 -07:00
kernel_rt_sigframe.h Rename struct ucontext tag (bug 21457). 2017-06-26 22:03:58 +00:00
kernel_sigaction.h linux: Consolidate sigaction implementation 2018-04-05 17:09:50 -03:00
kernel_stat.h linux: Define STAT64_IS_KERNEL_STAT64 2020-09-11 14:35:11 -03:00
kernel_termios.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
kernel-features.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
ldsodefs.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
libc-abis MIPS support for GNU hash 2019-08-29 20:11:42 +00:00
lxstat.c linux: Disentangle fstatat from fxstatat 2020-10-09 17:02:06 -03:00
makecontext.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
Makefile elf: Move vDSO setup to rtld (BZ#24967) 2020-01-03 11:22:07 -03:00
mmap_info.h posix: Fix large mmap64 offset for mips64n32 (BZ#24699) 2019-07-10 16:52:50 -03:00
pipe.S Move mips from ports to libc. 2014-02-10 23:30:21 +00:00
readelflib.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
register-dump.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
setcontext.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
setrlimit64.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
shlib-versions Remove --enable-obsolete-nsl configure flag 2020-07-08 17:25:57 +02:00
sigcontextinfo.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
struct_kernel_msqid64_ds.h sysv: linux: Add 64-bit time_t variant for msgctl 2020-07-09 12:05:40 -03:00
struct_kernel_semid64_ds.h sysv: linux: Add 64-bit time_t variant for semctl 2020-07-09 12:05:35 -03:00
struct_kernel_shmid64_ds.h sysv: linux: Add 64-bit time_t variant for shmctl 2020-07-09 12:05:47 -03:00
swapcontext.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
syscalls.list Consolidate Linux send implementation 2017-03-09 15:22:06 +01:00
sysdep.h mips: Use Linux kABI for syscall return 2020-02-14 21:09:12 -03:00
ucontext_i.sym Move mips from ports to libc. 2014-02-10 23:30:21 +00:00
unwind-arch.h mips: Fix bracktrace result for signal frames 2020-02-18 10:39:03 -03:00
ustat.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
Versions signal: Move sys_errlist to a compat symbol 2020-07-07 14:10:58 -03:00
vfork.S Linux: Use system call tables during build 2020-01-02 10:18:23 +01:00
xstat.c linux: Disentangle fstatat from fxstatat 2020-10-09 17:02:06 -03:00
xstatconv.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
xstatver.h Remove mknod wrapper functions, move them to symbols 2020-10-09 17:02:06 -03:00