about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/mips/fxstat.c
Commit message (Collapse)AuthorAgeFilesLines
* Update copyright dates with scripts/update-copyrightsPaul Eggert2021-01-021-1/+1
| | | | | | | | | | | | | | | | 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
* Revert "linux: Move {f}xstat{at} to compat symbols"Adhemerval Zanella2020-12-021-8/+0
| | | | | | | | | | | | | This reverts commit 20b39d59467b0c1d858e89ded8b0cebe55e22f60 to move {f}xstat{at} back to default symbols. ABIs with default symbol version of 2.33 or newer (such as riscv32) continue to just provide the stat symbols. The idea is to not force static libraries built against old glibc to update against new glibcs (since they reference the old {f}xstat{at} symbols). Checked on x86_64-linux-gnu and i686-linux-gnu.
* linux: Move {f}xstat{at} to compat symbolsAdhemerval Zanella2020-10-091-0/+8
| | | | | | | | | | | They are no interna uses anymore. The riscv32 ABI was added on 2.33, so it is safe to remove the old __{f,l}stat{at} symbols and just provide the newer {f,l}stat{at} ones. 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>
* linux: Disentangle fstatat from fxstatatAdhemerval Zanella2020-10-091-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* linux: Consolidate fxstat{64}Adhemerval Zanella2020-09-111-0/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The LFS support is implemented on fxstat64.c, instead of fxstat.c for 64-bit architectures. The fxstat.c implements the non-LFS and it is a no-op for !XSTAT_IS_XSTAT64. The generic non-LFS implementation handles two cases: 1. New kABIs which uses generic pre 64-bit time Linux ABI (csky and nios): it issuess __NR_fstat64 plus handle the overflow on st_ino, st_size, or st_blocks. It only handles _STAT_VER_KERNEL. 2. Old KABIs with old non-LFS support (arm, i386, hppa, m68k, microblaze, s390, sh, powerpc, and sparc32). For _STAT_VER_KERNEL it issues __NR_fstat, otherwise it calls __NR_fstat64 and convert to non-LFS stat struct and handle possible overflows on st_ino, st_size, or st_blocks. Also non-LFS mips is an outlier and it has its own implementation since _STAT_VER_LINUX requires a different conversion function (it uses the kernel_stat as the sysissues argument since its exported ABI is different than the kernel one for both non-LFS and LFS implementation). 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 issuess __NR_fstat for _STAT_VER_KERNEL or _STAT_VER_LINUX. 1.2. Old 64-bit kABI with defines __NR_fstat64 instead of __NR_fstat (sparc64): it issues __NR_fstat for _STAT_VER_KERNEL or __NR_fstat64 and convert to struct stat64. 1.3. New 32-bit kABIs with only 64-bit time_t support (arc and riscv32): it issuess __NR_statx and covert to struct stat64. 2. Old ABIs with XSTAT_IS_XSTAT64 being 0 (arm, csky, i386, hppa, m68k, microblaze, mips32, nios2, sh, powerpc32, and sparc32): it issues __NR_fstat64. Also, two special cases requires specific implementations: 1. alpha: it requires to handle _STAT_VER_KERNEL64 to issues __NR_fstat64 and use the kernel_stat with __NR_fstat otherwise. 2. mips64: as for non-LFS implementation its ABIs differ from glibc exported one, which requires an specific conversion function to handle the kernel_stat. 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>
* Update.Andreas Jaeger2000-02-011-80/+0
| | | | | | * sysdeps/unix/sysv/linux/mips/lxstat.c: Removed, we can use the generic function. * sysdeps/unix/sysv/linux/mips/fxstat.c: Likewise.
* Update. cvs/libc-ud-970712Ulrich Drepper1997-07-121-0/+80
1997-07-13 01:18 Ulrich Drepper <drepper@cygnus.com> * setjmp/setjmp.h: Define _setjmp and _longjmp also if __USE_XOPEN. * sysdeps/unix/sysv/linux/bits/ipc.h: Fix comment. * sysdeps/unix/sysv/linux/bits/msq.h: Likewise. * sysdeps/unix/sysv/linux/bits/sem.h: Likewise. * sysdeps/unix/sysv/linux/bits/shm.h: Likewise. * time/Makefile (routines): Add getdate. * time/time.h: Add prototype for getdate and getdate_r. * time/getdate.c: New file. Provided by Mark Kettenis <kettenis@phys.uva.nl>. 1997-06-30 14:49 H.J. Lu <hjl@gnu.ai.mit.edu> From Ralf Baechle <ralf@informatik.uni-koblenz.de> on Sat Jun 21 18:11:21 1997: * sysdeps/unix/sysv/linux/syscalls.list (swapon): Add __swapon alias. (swapoff): New. * elf/Makefile: Add linker script support. (headers): Add bits/dlfcn.h. * elf/dl-load.c (MAP_BASE_ADDR): New. * elf/dlfcn.h: Include <bits/dlfcn.h>. * elf/elf.h: Add MIPS support. * sysdeps/generic/Dist: Add entry.h. * sysdeps/generic/entry.h: New, define the entry symbol. * elf/rtld.c (_start): Include <entry.h>. Change to ENTRY_POINT. * sysdeps/generic/dl-sysdep.c (_start): Likewise. * mips/elf/start.S (_start): Likewise. * sysdeps/mips/bsd-_setjmp.S: Fix PIC. * sysdeps/mips/bsd-setjmp.S: Likewise. * sysdeps/mips/setjmp.S: Likewise. * mips/elf/start.S: Likewise. * sysdeps/unix/mips/brk.S: Likewise. * sysdeps/unix/mips/sysdep.S: Likewise. * sysdeps/unix/mips/sysdep.h: Likewise. * sysdeps/unix/mips/wait.S: Likewise. * sysdeps/mips/dl-machine.h: Update for Linux/MIPS. * sysdeps/mips/fpu_control.h: Likewise. * sysdeps/generic/bits/dlfcn.h: New file. * sysdeps/mips/rtld-ldscript.in: New for Linux/MIPS. * sysdeps/mips/rtld-parms: Likewise. * sysdeps/mips/bits/dlfcn.h: Likewise. * sysdeps/mips/mips64/rtld-parms: Likewise. * sysdeps/mips/mipsel/rtld-parms: Likewise. * sysdeps/unix/sysv/linux/mips/Dist: Likewise. * sysdeps/unix/sysv/linux/mips/Makefile: Likewise. * sysdeps/unix/sysv/linux/mips/clone.S: Likewise. * sysdeps/unix/sysv/linux/mips/entry.h: Likewise. * sysdeps/unix/sysv/linux/mips/fpregdef.h: Likewise. * sysdeps/unix/sysv/linux/mips/fxstat.c: Likewise. * sysdeps/unix/sysv/linux/mips/kernel_sigaction.h: Likewise. * sysdeps/unix/sysv/linux/mips/kernel_stat.h: Likewise. * sysdeps/unix/sysv/linux/mips/kernel_termios.h: Likewise. * sysdeps/unix/sysv/linux/mips/lxstat.c: Likewise. * sysdeps/unix/sysv/linux/mips/regdef.h: Likewise. * sysdeps/unix/sysv/linux/mips/sgidefs.h: Likewise. * sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/mips/ustat.c: Likewise. * sysdeps/unix/sysv/linux/mips/xmknod.c: Likewise. * sysdeps/unix/sysv/linux/mips/xstat.c: Likewise. * sysdeps/unix/sysv/linux/mips/bits/endian.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h: * sysdeps/unix/sysv/linux/mips/bits/ipc.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/shm.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/sigaction.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/signum.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/socket.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/stat.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/statfs.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/termios.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/time.h: Likewise. * sysdeps/unix/sysv/linux/mips/sys/acct.h: Likewise. * sysdeps/unix/sysv/linux/mips/sys/asm.h: Likewise. * sysdeps/unix/sysv/linux/mips/sys/cachectl.h: Likewise. * sysdeps/unix/sysv/linux/mips/sys/fpregdef.h: Likewise. * sysdeps/unix/sysv/linux/mips/sys/procfs.h: Likewise. * sysdeps/unix/sysv/linux/mips/sys/regdef.h: Likewise. * sysdeps/unix/sysv/linux/mips/sys/syscall.h: Likewise. * sysdeps/unix/sysv/linux/mips/sys/sysmips.h: Likewise. 1997-04-09 19:05 H.J. Lu (hjl@gnu.ai.mit.edu) * isomac.c (xstrndup): New, use it instead of strndup (). 1997-07-02 08:55 H.J. Lu <hjl@gnu.ai.mit.edu> * sysdeps/i386/dl-machine.h (elf_machine_rel): Print the program name for different sizes. 1997-07-10 15:47 Fila Kolodny <fila@ibi.com> * nis/ypclnt.c: Change references to MAXHOSTNAMELEN to NIS_MAXNAMELEN. Add include of rpcsvc/nis.h. * inet/getnameinfo.c: Delete references to MAXHOSTNAMELEN. * sysdeps/posix/getaddrinfo.c: Likewise. Change size of variable buffer to be big enough to hold an IPv6 address in printable format. 1997-07-12 18:47 Ulrich Drepper <drepper@cygnus.com> * assert/assert.h [!NDEBUG] (assert, assert_perror): Don't use || and && in tests to allow use in C++ code which overloads these operators. Reported by Istvan Marko <istvan@cmdmail.amd.com>. * configure.in: Move mips64* recognition before mips*. Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>. 1997-07-03 20:44 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * Makerules (lib%.so, $(common-objpfx)libc.so): Don't use automatic variables in dependency lists. (build-shlib): Always filter out the version script file. * extra-lib.mk ($(objpfx)$(lib).so): Depend on version script. 1997-07-12 17:56 Ulrich Drepper <drepper@cygnus.com> * login/login.c (tty_name): Test return value of ttyname_r for != 0, not < 0. * misc/ttyslot.c (ttyslot): Test return value of ttyname_r for == 0, not >= 0. * sysdeps/unix/getlogin.c (getlogin): Test return value of ttyname_r for != 0. * sysdeps/unix/getlogin_r.c (getlogin_r): Likewise. 1997-07-10 Andreas Jaeger <aj@arthur.rhein-neckar.de> * login/utmp_file.c (getutline_r_file): Fix type: compare with *result. 1997-07-11 00:21 Mark Kettenis <kettenis@phys.uva.nl> * login/Makefile (headers): Add utmpx.h and bits/utmpx.h. 1997-07-09 19:21 Mark Kettenis <kettenis@phys.uva.nl> * login/programs/utmpd.c, login/programs/database.c, login/programs/request.c: Prepare messages for internationalization. * login/programs/utmpd.c: (main): Change handling of errors in opening the database. * login/programs/database.c: (open_database, synchronize_dtatabase, initialize_database): Properly handle errors. (get_mtime): Use fstat instead of stat. All callers changed. * login/getutent_r.c: Make setutxent a weak alias for __setutxent. * login/getutent.c: Rename getutent to __getutent and make getutent a weak alias. Make getutxent a weak alias for __getutent. * login/utmpx.h: New file. * sysdeps/gnu/bits/utmp.h: Cleanup. Added comments. * sysdeps/gnu/bits/utmpx.h: New file. * stdio-common/strops.c: Partialy undo last change. Will need more investigation.