[PATCH 2/2] io: Remove xmknod{at} implementations
Lukasz Majewski
lukma@denx.de
Tue Dec 29 10:18:13 GMT 2020
On Mon, 28 Dec 2020 16:10:13 -0300
Adhemerval Zanella via Libc-alpha <libc-alpha@sourceware.org> wrote:
> If no one opposes it, I will commit this.
>
> On 02/12/2020 16:39, Adhemerval Zanella wrote:
> > With xmknod wrapper functions removed (589260cef8), the mknod
> > functions are now properly exported, and version is done using
> > symbols versioning instead of the extra _MKNOD_* argument.
> >
> > It also allows us to consolidate Linux and Hurd mknod
> > implementation. ---
> > io/Makefile | 2 +-
> > io/mknod.c | 4 +--
> > io/mknodat.c | 5 ++-
> > io/xmknod.c | 40 ---------------------
> > io/xmknodat.c | 62
> > -------------------------------- sysdeps/mach/hurd/Makefile |
> > 1 + sysdeps/mach/hurd/mknod.c | 31 ----------------
> > sysdeps/unix/sysv/linux/Makefile | 3 +-
> > sysdeps/unix/sysv/linux/mknod.c | 28 ---------------
> > 9 files changed, 10 insertions(+), 166 deletions(-)
> > delete mode 100644 io/xmknod.c
> > delete mode 100644 io/xmknodat.c
> > delete mode 100644 sysdeps/mach/hurd/mknod.c
> > delete mode 100644 sysdeps/unix/sysv/linux/mknod.c
> >
> > diff --git a/io/Makefile b/io/Makefile
> > index 887a989c03..d3d0dcf767 100644
> > --- a/io/Makefile
> > +++ b/io/Makefile
> > @@ -34,7 +34,7 @@ routines :=
> > \ mkfifo mkfifoat
> > \ stat fstat lstat stat64
> > fstat64 lstat64 fstatat fstatat64 \ statx
> > \
> > - mknod mknodat xmknod xmknodat
> > \
> > + mknod mknodat
> > \ statfs fstatfs statfs64 fstatfs64
> > \ statvfs fstatvfs statvfs64 fstatvfs64
> > \ umask chmod fchmod lchmod fchmodat
> > \ diff --git a/io/mknod.c b/io/mknod.c
> > index 9eb4a2af7f..22566b259c 100644
> > --- a/io/mknod.c
> > +++ b/io/mknod.c
> > @@ -15,13 +15,13 @@
> > License along with the GNU C Library; if not, see
> > <https://www.gnu.org/licenses/>. */
> >
> > -#include <sys/types.h>
> > #include <sys/stat.h>
> > +#include <fcntl.h>
> >
> > int
> > __mknod (const char *path, mode_t mode, dev_t dev)
> > {
> > - return __xmknod (_MKNOD_VER, path, mode, &dev);
> > + return __mknodat (AT_FDCWD, path, mode, dev);
> > }
> > libc_hidden_def (__mknod)
> > weak_alias (__mknod, mknod)
> > diff --git a/io/mknodat.c b/io/mknodat.c
> > index 63a8068ad6..cf491f99a7 100644
> > --- a/io/mknodat.c
> > +++ b/io/mknodat.c
> > @@ -21,7 +21,10 @@
> > int
> > __mknodat (int fd, const char *path, mode_t mode, dev_t dev)
> > {
> > - return __xmknodat (_MKNOD_VER, fd, path, mode, &dev);
> > + __set_errno (ENOSYS);
> > + return -1;
> > }
> > libc_hidden_def (__mknodat)
> > weak_alias (__mknodat, mknodat)
> > +
> > +stub_warning (mknodat)
> > diff --git a/io/xmknod.c b/io/xmknod.c
> > deleted file mode 100644
> > index 832dbf778e..0000000000
> > --- a/io/xmknod.c
> > +++ /dev/null
> > @@ -1,40 +0,0 @@
> > -/* Copyright (C) 1991-2020 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
> > - <https://www.gnu.org/licenses/>. */
> > -
> > -#include <errno.h>
> > -#include <sys/types.h>
> > -#include <sys/stat.h>
> > -
> > -/* Create a device file named PATH, with permission and special
> > bits MODE
> > - and device number DEV (which can be constructed from major and
> > minor
> > - device numbers with the `makedev' macro above). */
> > -int
> > -__xmknod (int vers, const char *path, mode_t mode, dev_t *dev)
> > -{
> > - if (vers != _MKNOD_VER)
> > - {
> > - __set_errno (EINVAL);
> > - return -1;
> > - }
> > -
> > - __set_errno (ENOSYS);
> > - return -1;
> > -}
> > -stub_warning (__xmknod)
> > -
> > -weak_alias (__xmknod, _xmknod)
> > -libc_hidden_def (__xmknod)
> > diff --git a/io/xmknodat.c b/io/xmknodat.c
> > deleted file mode 100644
> > index b6c668170b..0000000000
> > --- a/io/xmknodat.c
> > +++ /dev/null
> > @@ -1,62 +0,0 @@
> > -/* Copyright (C) 2005-2020 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
> > - <https://www.gnu.org/licenses/>. */
> > -
> > -#include <errno.h>
> > -#include <fcntl.h>
> > -#include <stddef.h>
> > -#include <sys/types.h>
> > -#include <sys/stat.h>
> > -
> > -/* Create a device file named PATH relative to FD, with permission
> > and
> > - special bits MODE and device number DEV (which can be
> > constructed
> > - from major and minor device numbers with the `makedev' macro
> > - above). */
> > -int
> > -__xmknodat (int vers, int fd, const char *path, mode_t mode, dev_t
> > *dev) -{
> > - if (vers != _MKNOD_VER)
> > - {
> > - __set_errno (EINVAL);
> > - return -1;
> > - }
> > -
> > - if (path == NULL)
> > - {
> > - __set_errno (EINVAL);
> > - return -1;
> > - }
> > -
> > - if (fd != AT_FDCWD && path[0] != '/')
> > - {
> > - /* Check FD is associated with a directory. */
> > - struct stat64 st;
> > - if (__fstat64 (fd, &st) != 0)
> > - return -1;
> > -
> > - if (!S_ISDIR (st.st_mode))
> > - {
> > - __set_errno (ENOTDIR);
> > - return -1;
> > - }
> > - }
> > -
> > - __set_errno (ENOSYS);
> > - return -1;
> > -}
> > -stub_warning (__xmknodat)
> > -
> > -libc_hidden_def (__xmknodat)
> > diff --git a/sysdeps/mach/hurd/Makefile b/sysdeps/mach/hurd/Makefile
> > index 571277cf7f..90c6b0e9a3 100644
> > --- a/sysdeps/mach/hurd/Makefile
> > +++ b/sysdeps/mach/hurd/Makefile
> > @@ -201,6 +201,7 @@ sysdep_routines += f_setlk close_nocancel
> > close_nocancel_nostatus \ pread64_nocancel write_nocancel
> > pwrite64_nocancel \ wait4_nocancel \
> > xstat fxstat lxstat xstat64 fxstat64 lxstat64 \
> > + xmknod xmknodat \
> > fxstatat fxstatat64
> > endif
> >
> > diff --git a/sysdeps/mach/hurd/mknod.c b/sysdeps/mach/hurd/mknod.c
> > deleted file mode 100644
> > index 1b9c9db741..0000000000
> > --- a/sysdeps/mach/hurd/mknod.c
> > +++ /dev/null
> > @@ -1,31 +0,0 @@
> > -/* Copyright (C) 1991-2020 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
> > - <https://www.gnu.org/licenses/>. */
> > -
> > -#include <sys/stat.h>
> > -#include <fcntl.h>
> > -#include <shlib-compat.h>
> > -
> > -/* Create a device file named FILE_NAME, with permission and
> > special bits MODE
> > - and device number DEV (which can be constructed from major and
> > minor
> > - device numbers with the `makedev' macro above). */
> > -int
> > -__mknod (const char *file_name, mode_t mode, dev_t dev)
> > -{
> > - return __mknodat (AT_FDCWD, file_name, mode, dev);
> > -}
> > -libc_hidden_def (__mknod)
> > -weak_alias (__mknod, mknod)
> > diff --git a/sysdeps/unix/sysv/linux/Makefile
> > b/sysdeps/unix/sysv/linux/Makefile index 899b6c9c77..472eab700d
> > 100644 --- a/sysdeps/unix/sysv/linux/Makefile
> > +++ b/sysdeps/unix/sysv/linux/Makefile
> > @@ -63,7 +63,8 @@ sysdep_routines += adjtimex clone umount umount2
> > readahead sysctl \ process_vm_readv process_vm_writev clock_adjtime
> > \ time64-support pselect32 \
> > xstat fxstat lxstat xstat64 fxstat64 lxstat64 \
> > - fxstatat fxstatat64
> > + fxstatat fxstatat64 \
> > + xmknod xmknodat
> >
> > CFLAGS-gethostid.c = -fexceptions
> > CFLAGS-tee.c = -fexceptions -fasynchronous-unwind-tables
> > diff --git a/sysdeps/unix/sysv/linux/mknod.c
> > b/sysdeps/unix/sysv/linux/mknod.c deleted file mode 100644
> > index 7e290ddc8b..0000000000
> > --- a/sysdeps/unix/sysv/linux/mknod.c
> > +++ /dev/null
> > @@ -1,28 +0,0 @@
> > -/* Create a special or ordinary file. Linux version.
> > - Copyright (C) 2020 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
> > - <https://www.gnu.org/licenses/>. */
> > -
> > -#include <sys/stat.h>
> > -#include <fcntl.h>
> > -
> > -int
> > -__mknod (const char *path, mode_t mode, dev_t dev)
> > -{
> > - return __mknodat (AT_FDCWD, path, mode, dev);
> > -}
> > -libc_hidden_def (__mknod)
> > -weak_alias (__mknod, mknod)
> >
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <https://sourceware.org/pipermail/libc-alpha/attachments/20201229/39fdb110/attachment.sig>
More information about the Libc-alpha
mailing list