Message ID | 1524523018-7216-2-git-send-email-adhemerval.zanella@linaro.org |
---|---|
State | New |
Headers | show |
Series | [1/2] Deprecate sysctl syscall interface | expand |
Again, this is the wrong way to obsolete something - a new symbol version should not be added as part of deprecation. And, any deprecation needs a NEWS enty. -- Joseph S. Myers joseph@codesourcery.com
On 23/04/2018 20:16, Joseph Myers wrote: > Again, this is the wrong way to obsolete something - a new symbol version > should not be added as part of deprecation. And, any deprecation needs a > NEWS enty. > Below it is an updated patch which addresses the issues you brought. --- As for sysctl, ustat has been deprecated in favor of fstatfs. Newer ports which uses generic interface builds a stub version which returns ENOSYS. This patch deprecate ustat interface by issuing ENOSYS as default and adds compat symbol for architectures which still defines __NR_ustat. Checked on x86_64-linux-gnu and i686-linux-gnu. Also checked with a check-abi on all affected ABIs. * NEWS: Add ustat.h deprecation entry. * bits/ustat.h: Remove file. * misc/sys/ustat.h: Likewise. * misc/ustat.h: Likewise. * sysdeps/unix/sysv/linux/generic/ustat.c: Likewise. * misc/Makefile (headers): Remove ustat.h and sys/ustat.h. * misc/ustat.c (__ustat): Rename to __old_ustat and export only in compatibility mode. * sysdeps/unix/sysv/linux/ustat.c (__ustat): Likewise. * sysdeps/unix/sysv/linux/mips/ustat.c: Define DEV_TO_KDEV and use generic Linux implementation. --- ChangeLog | 12 ++++++++ NEWS | 5 ++++ bits/ustat.h | 30 -------------------- misc/Makefile | 2 +- misc/sys/ustat.h | 37 ------------------------ misc/ustat.c | 22 ++++++++++++--- misc/ustat.h | 1 - sysdeps/unix/sysv/linux/generic/ustat.c | 32 --------------------- sysdeps/unix/sysv/linux/mips/ustat.c | 21 +++++--------- sysdeps/unix/sysv/linux/ustat.c | 50 +++++++++++++++++++++++---------- 10 files changed, 78 insertions(+), 134 deletions(-) delete mode 100644 bits/ustat.h delete mode 100644 misc/sys/ustat.h delete mode 100644 misc/ustat.h delete mode 100644 sysdeps/unix/sysv/linux/generic/ustat.c diff --git a/NEWS b/NEWS index ffe3bb4..f8cd879 100644 --- a/NEWS +++ b/NEWS @@ -62,6 +62,11 @@ Deprecated and removed features, and other changes affecting compatibility: of /proc/sys. A compatibility symbol is still provided, however it is not being defined for static linking or for new ports. + * The header file <ustat.h> is no longer installed. Software should + be updated to use 'statfs' instead. A compatibility symbol is still + provided, however it is not being defined for static linking or for + new ports. + Changes to build and runtime requirements: [Add changes to build and runtime requirements here] diff --git a/bits/ustat.h b/bits/ustat.h deleted file mode 100644 index ac9acca..0000000 --- a/bits/ustat.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright (C) 1997-2018 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#ifndef _SYS_USTAT_H -# error "Never include <bits/ustat.h> directly; use <sys/ustat.h> instead." -#endif - -#include <sys/types.h> - -struct ustat - { - __daddr_t f_tfree; /* Number of free blocks. */ - __ino_t f_tinode; /* Number of free inodes. */ - char f_fname[6]; - char f_fpack[6]; - }; diff --git a/misc/Makefile b/misc/Makefile index a5076b3..a1d568b 100644 --- a/misc/Makefile +++ b/misc/Makefile @@ -31,7 +31,7 @@ headers := sys/uio.h bits/uio-ext.h bits/uio_lim.h \ sys/mman.h sys/param.h bits/param.h \ fstab.h mntent.h search.h err.h error.h \ sys/queue.h sysexits.h syscall.h sys/syscall.h sys/swap.h \ - sys/select.h ustat.h sys/ustat.h bits/ustat.h sys/sysinfo.h \ + sys/select.h sys/sysinfo.h \ regexp.h bits/select.h bits/mman.h sys/xattr.h \ syslog.h sys/syslog.h \ bits/syslog.h bits/syslog-ldbl.h bits/syslog-path.h bits/error.h \ diff --git a/misc/sys/ustat.h b/misc/sys/ustat.h deleted file mode 100644 index 828ca41..0000000 --- a/misc/sys/ustat.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Header describing obsolete `ustat' interface. - Copyright (C) 1996-2018 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -/* - * This interface is obsolete. Use <sys/statfs.h> instead. - */ - -#ifndef _SYS_USTAT_H -#define _SYS_USTAT_H 1 - -#include <features.h> - -#include <sys/types.h> -#include <bits/ustat.h> - -__BEGIN_DECLS - -extern int ustat (__dev_t __dev, struct ustat *__ubuf) __THROW; - -__END_DECLS - -#endif /* sys/ustat.h */ diff --git a/misc/ustat.c b/misc/ustat.c index e5abeda..717d6d7 100644 --- a/misc/ustat.c +++ b/misc/ustat.c @@ -16,14 +16,28 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#include <unistd.h> -#include <errno.h> -#include <sys/ustat.h> +#include <shlib-compat.h> + +/* This deprecated syscall is no longer used (replaced with fstat). */ +#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_28) + +# include <unistd.h> +# include <errno.h> + +struct ustat + { + __daddr_t f_tfree; /* Number of free blocks. */ + __ino_t f_tinode; /* Number of free inodes. */ + char f_fname[6]; + char f_fpack[6]; +}; int -ustat (dev_t dev, struct ustat *ust) +__old_ustat (dev_t dev, struct ustat *ust) { __set_errno (ENOSYS); return -1; } stub_warning (ustat) +compat_symbol (libc, __old_ustat, ustat, GLIBC_2_0); +#endif diff --git a/misc/ustat.h b/misc/ustat.h deleted file mode 100644 index cba150e..0000000 --- a/misc/ustat.h +++ /dev/null @@ -1 +0,0 @@ -#include <sys/ustat.h> diff --git a/sysdeps/unix/sysv/linux/generic/ustat.c b/sysdeps/unix/sysv/linux/generic/ustat.c deleted file mode 100644 index d4f9c89..0000000 --- a/sysdeps/unix/sysv/linux/generic/ustat.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (C) 2011-2018 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#include <errno.h> -#include <sys/ustat.h> - -#include <sysdep.h> -#include <sys/syscall.h> - -/* This deprecated syscall is no longer used (replaced with fstat). */ -int -ustat (dev_t dev, struct ustat *ubuf) -{ - __set_errno (ENOSYS); - return -1; -} -stub_warning (ustat) diff --git a/sysdeps/unix/sysv/linux/mips/ustat.c b/sysdeps/unix/sysv/linux/mips/ustat.c index 1f597c9..786a5ef 100644 --- a/sysdeps/unix/sysv/linux/mips/ustat.c +++ b/sysdeps/unix/sysv/linux/mips/ustat.c @@ -16,20 +16,13 @@ License along with the GNU C Library. If not, see <http://www.gnu.org/licenses/>. */ -#include <errno.h> -#include <sys/ustat.h> #include <sys/sysmacros.h> -#include <sysdep.h> -#include <sys/syscall.h> +#define DEV_TO_KDEV(__dev) \ + ({ \ + unsigned long k_dev; \ + k_dev = ((major (dev) & 0xff) << 8) | (minor (dev) & 0xff); \ + k_dev; \ + }) -int -ustat (dev_t dev, struct ustat *ubuf) -{ - unsigned long k_dev; - - /* We must convert the value to dev_t type used by the kernel. */ - k_dev = ((major (dev) & 0xff) << 8) | (minor (dev) & 0xff); - - return INLINE_SYSCALL (ustat, 2, k_dev, ubuf); -} +#include <sysdeps/unix/sysv/linux/ustat.c> diff --git a/sysdeps/unix/sysv/linux/ustat.c b/sysdeps/unix/sysv/linux/ustat.c index 8e73faa..accbc86 100644 --- a/sysdeps/unix/sysv/linux/ustat.c +++ b/sysdeps/unix/sysv/linux/ustat.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1997-2018 Free Software Foundation, Inc. +/* Get filesystem statistics (deprecated). Linux version. + Copyright (C) 1997-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -16,22 +17,41 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#include <errno.h> -#include <sys/ustat.h> -#include <sys/sysmacros.h> +#include <shlib-compat.h> -#include <sysdep.h> -#include <sys/syscall.h> +/* This deprecated syscall is no longer used (replaced with fstat). */ +#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_28) -int -ustat (dev_t dev, struct ustat *ubuf) -{ - unsigned long long int k_dev; +# include <sysdep.h> +# include <errno.h> + +# ifndef DEV_TO_KDEV +# define DEV_TO_KDEV(__dev) \ + ({ \ + unsigned long long int k_dev; \ + k_dev = dev & ((1ULL << 32) - 1); \ + if (k_dev != dev) \ + return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL); \ + (unsigned int) k_dev; \ + }) +# endif - /* We must convert the value to dev_t type used by the kernel. */ - k_dev = dev & ((1ULL << 32) - 1); - if (k_dev != dev) - return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL); +struct ustat +{ + __daddr_t f_tfree; /* Number of free blocks. */ + __ino_t f_tinode; /* Number of free inodes. */ + char f_fname[6]; + char f_fpack[6]; +}; - return INLINE_SYSCALL (ustat, 2, (unsigned int) k_dev, ubuf); +int +__old_ustat (dev_t dev, struct ustat *ubuf) +{ +# ifdef __NR_ustat + return INLINE_SYSCALL_CALL (ustat, DEV_TO_KDEV (dev), ubuf); +# else + return INLINE_SYSCALL_ERROR_RETURN_VALUE (ENOSYS); +# endif } +compat_symbol (libc, __old_ustat, ustat, GLIBC_2_0); +#endif /* SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_28) */ -- 2.7.4
On Wed, 25 Apr 2018, Adhemerval Zanella wrote: > This patch deprecate ustat interface by issuing ENOSYS as default > and adds compat symbol for architectures which still defines > __NR_ustat. Again, ENOSYS is nothing to do with deprecation. > +/* This deprecated syscall is no longer used (replaced with fstat). */ All these comments are inaccurate (should reference statfs etc., not fstat). -- Joseph S. Myers joseph@codesourcery.com
On 25/04/2018 11:47, Joseph Myers wrote: > On Wed, 25 Apr 2018, Adhemerval Zanella wrote: > >> This patch deprecate ustat interface by issuing ENOSYS as default >> and adds compat symbol for architectures which still defines >> __NR_ustat. > > Again, ENOSYS is nothing to do with deprecation. I will change to This patch deprecates ustat interface by removing ustat.h related headers, adding a compatibility symbol, and avoiding new ports to build and provide the symbol. > >> +/* This deprecated syscall is no longer used (replaced with fstat). */ > > All these comments are inaccurate (should reference statfs etc., not > fstat). > Ack.
On 04/25/2018 07:59 PM, Adhemerval Zanella wrote: > This patch deprecates ustat interface by removing ustat.h related headers, > adding a compatibility symbol, and avoiding new ports to build and provide > the symbol. Perhaps mirror what we said before, e.g. this? > * The obsolete functions bdflush, create_module, get_kernel_syms, > query_module and uselib are no longer available to newly linked binaries; > the header <sys/kdaemon.h> has been removed. These functions and header > were specific to systems using the Linux kernel and could not usefully be > used with the GNU C Library on systems with version 2.6 or later of the > Linux kernel. Thanks, Florian
On 29/04/2018 18:08, Florian Weimer wrote: > On 04/25/2018 07:59 PM, Adhemerval Zanella wrote: >> This patch deprecates ustat interface by removing ustat.h related headers, >> adding a compatibility symbol, and avoiding new ports to build and provide >> the symbol. > > Perhaps mirror what we said before, e.g. this? > >> * The obsolete functions bdflush, create_module, get_kernel_syms, >> query_module and uselib are no longer available to newly linked binaries; >> the header <sys/kdaemon.h> has been removed. These functions and header >> were specific to systems using the Linux kernel and could not usefully be >> used with the GNU C Library on systems with version 2.6 or later of the >> Linux kernel. Alright, I will change to: * The obsolete function ustat is no longer available to newly linked binaries; the headers <ustat.h> and <sys/ustat.h> have been removed. This function has been deprecated in favor of fstatfs and statfs.
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index 09fc772..d757897 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -2056,6 +2056,7 @@ GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/arm/libc.abilist b/sysdeps/unix/sysv/linux/arm/libc.abilist index 35741a8..a52db8b 100644 --- a/sysdeps/unix/sysv/linux/arm/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/libc.abilist @@ -132,6 +132,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _Exit F GLIBC_2.4 _IO_2_1_stderr_ D 0xa0 diff --git a/sysdeps/unix/sysv/linux/generic/ustat.c b/sysdeps/unix/sysv/linux/generic/ustat.c deleted file mode 100644 index d4f9c89..0000000 --- a/sysdeps/unix/sysv/linux/generic/ustat.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (C) 2011-2018 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#include <errno.h> -#include <sys/ustat.h> - -#include <sysdep.h> -#include <sys/syscall.h> - -/* This deprecated syscall is no longer used (replaced with fstat). */ -int -ustat (dev_t dev, struct ustat *ubuf) -{ - __set_errno (ENOSYS); - return -1; -} -stub_warning (ustat) diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index 1da5f49..d43a2fa 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -1896,6 +1896,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index 2a1c99c..b17a8f9 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2066,6 +2066,7 @@ GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist index 8b51692..9e255b0 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -1930,6 +1930,7 @@ GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index d26f322..d8d05b2 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -133,6 +133,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _Exit F GLIBC_2.4 _IO_2_1_stderr_ D 0x98 diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist index 04dcf51..5888c38 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -2010,6 +2010,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/microblaze/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/libc.abilist index dd4656c..02d50f5 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libc.abilist @@ -2131,3 +2131,4 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index 836fdab..9a80189 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -2014,6 +2014,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist index e68ef0e..a7b7d23 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -2019,6 +2019,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist index 5983ac1..12721da 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist @@ -133,6 +133,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 _Exit F GLIBC_2.3 _IO_2_1_stderr_ D 0xe0 diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index fad7b94..96c38d6 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -2024,6 +2024,7 @@ GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index 8e88894..59832c1 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -1925,6 +1925,7 @@ GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/sh/libc.abilist b/sysdeps/unix/sysv/linux/sh/libc.abilist index 4b8f56f..790ef22 100644 --- a/sysdeps/unix/sysv/linux/sh/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/libc.abilist @@ -1900,6 +1900,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index 5bb6028..6873735 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -2017,6 +2017,7 @@ GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index 1ea1a9e..6a58857 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -1954,6 +1954,7 @@ GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/ustat.c b/sysdeps/unix/sysv/linux/ustat.c index 8e73faa..1fcec18 100644 --- a/sysdeps/unix/sysv/linux/ustat.c +++ b/sysdeps/unix/sysv/linux/ustat.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1997-2018 Free Software Foundation, Inc. +/* Get filesystem statistics (deprecated). Linux version. + Copyright (C) 1997-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -16,15 +17,25 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#include <errno.h> #include <sys/ustat.h> -#include <sys/sysmacros.h> - #include <sysdep.h> -#include <sys/syscall.h> +#include <errno.h> +#include <shlib-compat.h> +/* This deprecated syscall is no longer used (replaced with fstat). */ +int +__deprecated_ustat (dev_t dev, struct ustat *ubuf) +{ + __set_errno (ENOSYS); + return -1; +} +#ifndef __NR_ustat +weak_alias (__deprecated_ustat, ustat) +#else +versioned_symbol (libc, __deprecated_ustat, ustat, GLIBC_2_28); +# if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_28) int -ustat (dev_t dev, struct ustat *ubuf) +__old_ustat (dev_t dev, struct ustat *ubuf) { unsigned long long int k_dev; @@ -33,5 +44,9 @@ ustat (dev_t dev, struct ustat *ubuf) if (k_dev != dev) return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL); - return INLINE_SYSCALL (ustat, 2, (unsigned int) k_dev, ubuf); + return INLINE_SYSCALL_CALL (ustat, (unsigned int) k_dev, ubuf); } +compat_symbol (libc, __old_ustat, ustat, GLIBC_2_0); +# endif /* SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_28) */ +#endif /* __NR_ustat */ +stub_warning (ustat) diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index 576d3bd..5c682ac 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -1907,6 +1907,7 @@ GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index 31d612f..cc7bb7c 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2149,3 +2149,4 @@ GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 ustat F