public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 00/10] [f]stat[fs,vfs] consolidation
@ 2021-02-08 21:49 Adhemerval Zanella
  2021-02-08 21:49 ` [PATCH 01/10] linux: Fix STATFS_IS_STATFS64 definition Adhemerval Zanella
                   ` (10 more replies)
  0 siblings, 11 replies; 27+ messages in thread
From: Adhemerval Zanella @ 2021-02-08 21:49 UTC (permalink / raw)
  To: libc-alpha

The recent thread from OpenRISC work [1] showed that even through after
the stat refactor to add y2038 support, the default internals still do
not set a saner default ABI.

The 'generic' internal interface still assumes non-LFS support calls
and sets both the kernel_stat.h and the statfs.h with this assumption.
This is misleading and requires newer ports to override both definitions
(as done by arc and riscv32).

This a refactor set I intended to push and the idea is to make LFS only
support as default.  It requires to set XSTAT_IS_XSTAT64 to 1 and
STATFS_IS_STATFS64 to __STATFS_MATCHES_STATFS64 (the STAT_IS_KERNEL_STAT
is not really required for newer ports, only for older ones with
non-LFS ABI).

It allows to consolide the [f]stat[fs,vfs] using the same strategy done
for stat functions, with alpha being the only outlier (and the hackery
required to support moved to an alpha specific implementation).

The final patch also removes a recent addition to the 'generic' folder
(stat-check.c).  My longer plan is to remove the 'generic' folder
altogether, by consolidating the implementations, moving the outliers
to arch-specific implementations, and setting a more saner default abi
(that assumes LFS and 64-bit time).

[1] https://sourceware.org/pipermail/libc-alpha/2021-January/122167.html

Adhemerval Zanella (10):
  linux: Fix STATFS_IS_STATFS64 definition
  linux: Set default kernel_stat.h to LFS
  linux: Set LFS statfs as default
  linux: Consolidate fstatfs implementations
  linux: Consolidate statfs implementations
  linux: Consolidate fstatvfs implementations
  linux: Consolidate statvfs implementations
  linux: Consolidate internal_statvfs
  linux: Remove overflow.h
  linux: Remove stat-check.c

 include/sys/statfs.h                          |  7 +-
 include/sys/statvfs.h                         |  3 +-
 sysdeps/unix/sysv/linux/Makefile              |  2 +-
 .../{generic/wordsize-32 => alpha}/fstatfs.c  | 13 +---
 sysdeps/unix/sysv/linux/alpha/fstatfs64.c     | 52 ++++++++++++-
 sysdeps/unix/sysv/linux/alpha/fstatvfs.c      |  1 -
 sysdeps/unix/sysv/linux/alpha/fstatvfs64.c    |  1 -
 .../sysv/linux/alpha/internal_statvfs64.c     |  1 -
 .../{generic/wordsize-32 => alpha}/statfs.c   | 16 ++--
 sysdeps/unix/sysv/linux/alpha/statfs64.c      | 52 ++++++++++++-
 sysdeps/unix/sysv/linux/alpha/statvfs.c       |  1 -
 sysdeps/unix/sysv/linux/alpha/statvfs64.c     |  1 -
 sysdeps/unix/sysv/linux/alpha/syscalls.list   |  4 -
 sysdeps/unix/sysv/linux/arc/kernel_stat.h     | 27 -------
 sysdeps/unix/sysv/linux/arm/kernel_stat.h     | 40 ++++++++++
 .../linux/{generic => csky}/bits/statfs.h     | 11 ---
 .../sysv/linux/{riscv => csky}/kernel_stat.h  | 12 ++-
 sysdeps/unix/sysv/linux/fstatat64.c           | 12 +++
 sysdeps/unix/sysv/linux/fstatfs.c             | 62 +++++++++++++++
 sysdeps/unix/sysv/linux/fstatfs64.c           | 67 +++--------------
 sysdeps/unix/sysv/linux/fstatvfs.c            | 11 ++-
 sysdeps/unix/sysv/linux/fstatvfs64.c          | 53 +++++--------
 sysdeps/unix/sysv/linux/generic/Makefile      |  2 +-
 sysdeps/unix/sysv/linux/generic/stat-check.c  | 29 -------
 .../sysv/linux/generic/wordsize-32/overflow.h | 69 -----------------
 sysdeps/unix/sysv/linux/i386/kernel_stat.h    | 40 ++++++++++
 sysdeps/unix/sysv/linux/ia64/kernel_stat.h    | 22 ------
 sysdeps/unix/sysv/linux/internal_statvfs.c    | 70 +++++++++++------
 sysdeps/unix/sysv/linux/internal_statvfs.h    |  8 +-
 sysdeps/unix/sysv/linux/internal_statvfs64.c  |  4 -
 sysdeps/unix/sysv/linux/kernel_stat.h         | 58 +++++---------
 sysdeps/unix/sysv/linux/m68k/kernel_stat.h    | 40 ++++++++++
 sysdeps/unix/sysv/linux/mips/kernel_stat.h    |  6 +-
 .../sysv/linux/mips/mips64/n64/fstatfs64.c    |  1 -
 .../sysv/linux/mips/mips64/n64/statfs64.c     |  1 -
 .../sysv/linux/mips/mips64/n64/syscalls.list  |  3 -
 sysdeps/unix/sysv/linux/nios2/bits/statfs.h   | 75 +++++++++++++++++++
 .../linux/{generic => nios2}/kernel_stat.h    | 18 ++---
 .../linux/powerpc/powerpc64/kernel_stat.h     | 22 ------
 .../sysv/linux/s390/s390-32/kernel_stat.h     | 40 ++++++++++
 .../sysv/linux/s390/s390-64/kernel_stat.h     | 22 ------
 sysdeps/unix/sysv/linux/sh/kernel_stat.h      | 40 ++++++++++
 .../sysv/linux/sparc/sparc64/kernel_stat.h    |  7 +-
 sysdeps/unix/sysv/linux/statfs.c              | 61 +++++++++++++++
 sysdeps/unix/sysv/linux/statfs64.c            | 69 ++---------------
 sysdeps/unix/sysv/linux/statvfs.c             | 11 ++-
 sysdeps/unix/sysv/linux/statvfs64.c           | 54 +++++--------
 .../unix/sysv/linux/wordsize-64/fstatfs64.c   |  1 -
 .../unix/sysv/linux/wordsize-64/fstatvfs.c    |  5 --
 .../unix/sysv/linux/wordsize-64/fstatvfs64.c  |  1 -
 .../linux/wordsize-64/internal_statvfs64.c    |  1 -
 .../unix/sysv/linux/wordsize-64/statfs64.c    |  1 -
 sysdeps/unix/sysv/linux/wordsize-64/statvfs.c |  5 --
 .../unix/sysv/linux/wordsize-64/statvfs64.c   |  1 -
 .../unix/sysv/linux/wordsize-64/syscalls.list |  2 -
 sysdeps/unix/sysv/linux/x86_64/kernel_stat.h  | 22 ------
 sysdeps/unix/sysv/linux/xstatconv.c           |  7 +-
 57 files changed, 688 insertions(+), 579 deletions(-)
 rename sysdeps/unix/sysv/linux/{generic/wordsize-32 => alpha}/fstatfs.c (76%)
 delete mode 100644 sysdeps/unix/sysv/linux/alpha/fstatvfs.c
 delete mode 100644 sysdeps/unix/sysv/linux/alpha/fstatvfs64.c
 delete mode 100644 sysdeps/unix/sysv/linux/alpha/internal_statvfs64.c
 rename sysdeps/unix/sysv/linux/{generic/wordsize-32 => alpha}/statfs.c (72%)
 delete mode 100644 sysdeps/unix/sysv/linux/alpha/statvfs.c
 delete mode 100644 sysdeps/unix/sysv/linux/alpha/statvfs64.c
 delete mode 100644 sysdeps/unix/sysv/linux/arc/kernel_stat.h
 create mode 100644 sysdeps/unix/sysv/linux/arm/kernel_stat.h
 rename sysdeps/unix/sysv/linux/{generic => csky}/bits/statfs.h (79%)
 rename sysdeps/unix/sysv/linux/{riscv => csky}/kernel_stat.h (77%)
 create mode 100644 sysdeps/unix/sysv/linux/fstatfs.c
 delete mode 100644 sysdeps/unix/sysv/linux/generic/stat-check.c
 delete mode 100644 sysdeps/unix/sysv/linux/generic/wordsize-32/overflow.h
 create mode 100644 sysdeps/unix/sysv/linux/i386/kernel_stat.h
 delete mode 100644 sysdeps/unix/sysv/linux/ia64/kernel_stat.h
 delete mode 100644 sysdeps/unix/sysv/linux/internal_statvfs64.c
 create mode 100644 sysdeps/unix/sysv/linux/m68k/kernel_stat.h
 delete mode 100644 sysdeps/unix/sysv/linux/mips/mips64/n64/fstatfs64.c
 delete mode 100644 sysdeps/unix/sysv/linux/mips/mips64/n64/statfs64.c
 create mode 100644 sysdeps/unix/sysv/linux/nios2/bits/statfs.h
 rename sysdeps/unix/sysv/linux/{generic => nios2}/kernel_stat.h (71%)
 delete mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel_stat.h
 create mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/kernel_stat.h
 delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/kernel_stat.h
 create mode 100644 sysdeps/unix/sysv/linux/sh/kernel_stat.h
 create mode 100644 sysdeps/unix/sysv/linux/statfs.c
 delete mode 100644 sysdeps/unix/sysv/linux/wordsize-64/fstatfs64.c
 delete mode 100644 sysdeps/unix/sysv/linux/wordsize-64/fstatvfs.c
 delete mode 100644 sysdeps/unix/sysv/linux/wordsize-64/fstatvfs64.c
 delete mode 100644 sysdeps/unix/sysv/linux/wordsize-64/internal_statvfs64.c
 delete mode 100644 sysdeps/unix/sysv/linux/wordsize-64/statfs64.c
 delete mode 100644 sysdeps/unix/sysv/linux/wordsize-64/statvfs.c
 delete mode 100644 sysdeps/unix/sysv/linux/wordsize-64/statvfs64.c
 delete mode 100644 sysdeps/unix/sysv/linux/x86_64/kernel_stat.h

-- 
2.25.1


^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2021-02-11 20:33 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-08 21:49 [PATCH 00/10] [f]stat[fs,vfs] consolidation Adhemerval Zanella
2021-02-08 21:49 ` [PATCH 01/10] linux: Fix STATFS_IS_STATFS64 definition Adhemerval Zanella
2021-02-11  0:37   ` Carlos O'Donell
2021-02-08 21:49 ` [PATCH 02/10] linux: Set default kernel_stat.h to LFS Adhemerval Zanella
2021-02-11  0:37   ` Carlos O'Donell
2021-02-08 21:49 ` [PATCH 03/10] linux: Set LFS statfs as default Adhemerval Zanella
2021-02-11  0:37   ` Carlos O'Donell
2021-02-08 21:49 ` [PATCH 04/10] linux: Consolidate fstatfs implementations Adhemerval Zanella
2021-02-11  0:38   ` Carlos O'Donell
2021-02-08 21:49 ` [PATCH 05/10] linux: Consolidate statfs implementations Adhemerval Zanella
2021-02-11  0:38   ` Carlos O'Donell
2021-02-08 21:49 ` [PATCH 06/10] linux: Consolidate fstatvfs implementations Adhemerval Zanella
2021-02-11  0:38   ` Carlos O'Donell
2021-02-08 21:49 ` [PATCH 07/10] linux: Consolidate statvfs implementations Adhemerval Zanella
2021-02-11  0:38   ` Carlos O'Donell
2021-02-08 21:49 ` [PATCH 08/10] linux: Consolidate internal_statvfs Adhemerval Zanella
2021-02-11  0:38   ` Carlos O'Donell
2021-02-08 21:49 ` [PATCH 09/10] linux: Remove overflow.h Adhemerval Zanella
2021-02-11  0:38   ` Carlos O'Donell
2021-02-08 21:49 ` [PATCH 10/10] linux: Remove stat-check.c Adhemerval Zanella
2021-02-11  0:38   ` Carlos O'Donell
2021-02-11  0:37 ` [PATCH 00/10] [f]stat[fs,vfs] consolidation Carlos O'Donell
2021-02-11 20:08   ` Joseph Myers
2021-02-11 20:13     ` Carlos O'Donell
2021-02-11 20:17       ` Adhemerval Zanella
2021-02-11 20:30         ` Carlos O'Donell
2021-02-11 20:32           ` DJ Delorie

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).