sanify stat API & ABI
commit31aad3d5eef8afdd8d390503003884229aeb227d
authorLauri Tirkkonen <lotheac@iki.fi>
Mon, 15 Apr 2019 21:05:25 +0000 (16 00:05 +0300)
committerLauri Tirkkonen <lotheac@iki.fi>
Mon, 15 Apr 2019 23:15:54 +0000 (16 02:15 +0300)
treeaa05560d615a9287d3c1cc425a028dd33c026c3c
parentf0dc29fc5255d90cbff75e9ec85dea10ffde054d
sanify stat API & ABI

- clean up sys/stat.h & remove stat_impl.h
 - use our new shiny feature test macros
 - use struct timespec instead of timestruc_t
 - don't bother supporting !defined(__STDC__)
- reduce the number of struct stat definitions; in particular, change
  the 32-bit stat ABI to have the same members as it does on 64-bit. the
  sizes are still different for now because of struct alignment, dev_t
  and timespec32/timespec64, but this could change later.
 - a new 'struct stat32' is used for this (for the kernel only).
- remove the source compat stat *64 functions. the aliased syms remain
  in libc until recompiles can be done.

as this breaks the current 32-bit ABI, the libc fstatat, fstat, lstat,
stat symbols become transitional wrappers that convert the struct
returned by the kernel into the old ABI, and newly compiled 32-bit
programs will use those symbols with the suffix _new. we don't intend to
keep the "_new" symbols, rather this transitional interface and the
compat symbols will be removed once we've recompiled things we depend
on.
arch/x86/include/sys/Makefile
arch/x86/include/sys/stat_impl.h [deleted file]
include/stdlib.h
include/sys/stat.h
kernel/os/sysent.c
kernel/syscall/stat.c
usr/src/lib/libc/port/mapfile-vers
usr/src/lib/libc/port/sys/stat.c
usr/src/pkg/manifests/system-header.mf