* [PATCH 1/2] io: Remove xstat implementations
@ 2020-12-02 19:39 Adhemerval Zanella
2020-12-02 19:39 ` [PATCH 2/2] io: Remove xmknod{at} implementations Adhemerval Zanella
2020-12-28 19:10 ` [PATCH 1/2] io: Remove xstat implementations Adhemerval Zanella
0 siblings, 2 replies; 6+ messages in thread
From: Adhemerval Zanella @ 2020-12-02 19:39 UTC (permalink / raw)
To: libc-alpha
With xstat wrapper functions removed (8ed005daf0), the stat functions
are now properly exported, and version is done using symbols versioning
instead of the extra _STAT_* argument.
---
io/Makefile | 3 +-
io/fstat.c | 3 +-
io/fstat64.c | 3 +-
io/fstatat.c | 18 ++++++++++--
io/fstatat64.c | 18 ++++++++++--
io/fxstat.c | 48 -------------------------------
io/fxstat64.c | 47 ------------------------------
io/fxstatat.c | 48 -------------------------------
io/fxstatat64.c | 49 --------------------------------
io/lstat.c | 3 +-
io/lstat64.c | 3 +-
io/lxstat.c | 26 -----------------
io/lxstat64.c | 30 -------------------
io/stat.c | 3 +-
io/stat64.c | 3 +-
io/xstat.c | 37 ------------------------
io/xstat64.c | 36 -----------------------
sysdeps/mach/hurd/Makefile | 4 ++-
sysdeps/unix/sysv/linux/Makefile | 4 ++-
19 files changed, 45 insertions(+), 341 deletions(-)
delete mode 100644 io/fxstat.c
delete mode 100644 io/fxstat64.c
delete mode 100644 io/fxstatat.c
delete mode 100644 io/fxstatat64.c
delete mode 100644 io/lxstat.c
delete mode 100644 io/lxstat64.c
delete mode 100644 io/xstat.c
delete mode 100644 io/xstat64.c
diff --git a/io/Makefile b/io/Makefile
index 33f5b0b867..887a989c03 100644
--- a/io/Makefile
+++ b/io/Makefile
@@ -33,9 +33,8 @@ routines := \
utime \
mkfifo mkfifoat \
stat fstat lstat stat64 fstat64 lstat64 fstatat fstatat64 \
- xstat fxstat lxstat xstat64 fxstat64 lxstat64 statx \
+ statx \
mknod mknodat xmknod xmknodat \
- fxstatat fxstatat64 \
statfs fstatfs statfs64 fstatfs64 \
statvfs fstatvfs statvfs64 fstatvfs64 \
umask chmod fchmod lchmod fchmodat \
diff --git a/io/fstat.c b/io/fstat.c
index c392ebe35b..065e6f8f68 100644
--- a/io/fstat.c
+++ b/io/fstat.c
@@ -17,11 +17,10 @@
#include <sys/stat.h>
-#undef __fstat
int
__fstat (int fd, struct stat *buf)
{
- return __fxstat (_STAT_VER, fd, buf);
+ return __fstatat (fd, "", buf, AT_EMPTY_PATH);
}
weak_alias (__fstat, fstat)
diff --git a/io/fstat64.c b/io/fstat64.c
index 8f9a6a4ad0..505123ee0e 100644
--- a/io/fstat64.c
+++ b/io/fstat64.c
@@ -17,11 +17,10 @@
#include <sys/stat.h>
-#undef __fstat64
int
__fstat64 (int fd, struct stat64 *buf)
{
- return __fxstat64 (_STAT_VER, fd, buf);
+ return __fstatat64 (fd, "", buf, AT_EMPTY_PATH);
}
hidden_def (__fstat64)
weak_alias (__fstat64, fstat64)
diff --git a/io/fstatat.c b/io/fstatat.c
index 19242b7d5d..07f4afb996 100644
--- a/io/fstatat.c
+++ b/io/fstatat.c
@@ -16,12 +16,26 @@
<https://www.gnu.org/licenses/>. */
#include <sys/stat.h>
+#include <errno.h>
-#undef __fstatat
int
__fstatat (int fd, const char *file, struct stat *buf, int flag)
{
- return __fxstatat (_STAT_VER, fd, file, buf, flag);
+ if (fd < 0 && fd != AT_FDCWD)
+ {
+ __set_errno (EBADF);
+ return -1;
+ }
+ if (buf == NULL || (flag & ~AT_SYMLINK_NOFOLLOW) != 0)
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ __set_errno (ENOSYS);
+ return -1;
}
weak_alias (__fstatat, fstatat)
+
+stub_warning (fstatat)
diff --git a/io/fstatat64.c b/io/fstatat64.c
index 0e0312fd19..3b5a7528b7 100644
--- a/io/fstatat64.c
+++ b/io/fstatat64.c
@@ -16,12 +16,26 @@
<https://www.gnu.org/licenses/>. */
#include <sys/stat.h>
+#include <errno.h>
-#undef __fstatat64
int
__fstatat64 (int fd, const char *file, struct stat64 *buf, int flag)
{
- return __fxstatat64 (_STAT_VER, fd, file, buf, flag);
+ if (fd < 0 && fd != AT_FDCWD)
+ {
+ __set_errno (EBADF);
+ return -1;
+ }
+ if (buf == NULL || (flag & ~AT_SYMLINK_NOFOLLOW) != 0)
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ __set_errno (ENOSYS);
+ return -1;
}
hidden_def (__fstatat64)
weak_alias (__fstatat64, fstatat64)
+
+stub_warning (fstatat64)
diff --git a/io/fxstat.c b/io/fxstat.c
deleted file mode 100644
index 2ebb34c0be..0000000000
--- a/io/fxstat.c
+++ /dev/null
@@ -1,48 +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 <stddef.h>
-#include <sys/stat.h>
-
-/* Get information about the file descriptor FD in BUF. */
-int
-__fxstat (int vers, int fd, struct stat *buf)
-{
- if (vers != _STAT_VER)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- if (fd < 0)
- {
- __set_errno (EBADF);
- return -1;
- }
- else if (buf == NULL)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- __set_errno (ENOSYS);
- return -1;
-}
-stub_warning (fstat)
-hidden_def (__fxstat)
-weak_alias (__fxstat, _fxstat)
diff --git a/io/fxstat64.c b/io/fxstat64.c
deleted file mode 100644
index 6059ed0ee3..0000000000
--- a/io/fxstat64.c
+++ /dev/null
@@ -1,47 +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 <stddef.h>
-#include <sys/stat.h>
-
-/* Get information about the file descriptor FD in BUF. */
-int
-__fxstat64 (int vers, int fd, struct stat64 *buf)
-{
- if (vers != _STAT_VER)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- if (fd < 0)
- {
- __set_errno (EBADF);
- return -1;
- }
- else if (buf == NULL)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- __set_errno (ENOSYS);
- return -1;
-}
-hidden_def (__fxstat64)
-stub_warning (fstat64)
diff --git a/io/fxstatat.c b/io/fxstatat.c
deleted file mode 100644
index aac9d31143..0000000000
--- a/io/fxstatat.c
+++ /dev/null
@@ -1,48 +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/stat.h>
-
-/* Get information about the file descriptor FD in BUF. */
-int
-__fxstatat (int vers, int fd, const char *filename, struct stat *buf, int flag)
-{
- if (vers != _STAT_VER)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- if (fd < 0 && fd != AT_FDCWD)
- {
- __set_errno (EBADF);
- return -1;
- }
- if (buf == NULL || (flag & ~AT_SYMLINK_NOFOLLOW) != 0)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- __set_errno (ENOSYS);
- return -1;
-}
-libc_hidden_def (__fxstatat)
-stub_warning (fstatat)
diff --git a/io/fxstatat64.c b/io/fxstatat64.c
deleted file mode 100644
index 5e3aa382c4..0000000000
--- a/io/fxstatat64.c
+++ /dev/null
@@ -1,49 +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/stat.h>
-
-/* Get information about the file descriptor FD in BUF. */
-int
-__fxstatat64 (int vers, int fd, const char *filename, struct stat64 *buf,
- int flag)
-{
- if (vers != _STAT_VER)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- if (fd < 0 && fd != AT_FDCWD)
- {
- __set_errno (EBADF);
- return -1;
- }
- if (buf == NULL || (flag & ~AT_SYMLINK_NOFOLLOW) != 0)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- __set_errno (ENOSYS);
- return -1;
-}
-libc_hidden_def (__fxstatat64)
-stub_warning (fstatat64)
diff --git a/io/lstat.c b/io/lstat.c
index bdd60bedb6..abb4a14831 100644
--- a/io/lstat.c
+++ b/io/lstat.c
@@ -17,11 +17,10 @@
#include <sys/stat.h>
-#undef __lstat
int
__lstat (const char *file, struct stat *buf)
{
- return __lxstat (_STAT_VER, file, buf);
+ return __fstatat (AT_FDCWD, file, buf, AT_SYMLINK_NOFOLLOW);
}
weak_alias (__lstat, lstat)
diff --git a/io/lstat64.c b/io/lstat64.c
index 0e571f6075..d244e793b2 100644
--- a/io/lstat64.c
+++ b/io/lstat64.c
@@ -17,11 +17,10 @@
#include <sys/stat.h>
-#undef __lstat64
int
__lstat64 (const char *file, struct stat64 *buf)
{
- return __lxstat64 (_STAT_VER, file, buf);
+ return __fstatat64 (AT_FDCWD, file, buf, AT_SYMLINK_NOFOLLOW);
}
hidden_def (__lstat64)
weak_alias (__lstat64, lstat64)
diff --git a/io/lxstat.c b/io/lxstat.c
deleted file mode 100644
index e38336e674..0000000000
--- a/io/lxstat.c
+++ /dev/null
@@ -1,26 +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>
-
-int
-__lxstat (int version, const char *file, struct stat *buf)
-{
- return __xstat (version, file, buf);
-}
-hidden_def (__lxstat)
-weak_alias (__lxstat, _lxstat)
diff --git a/io/lxstat64.c b/io/lxstat64.c
deleted file mode 100644
index 97dae35efe..0000000000
--- a/io/lxstat64.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* lxstat64 -- get file metadata, not following symlinks. Stub version.
- 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 <stddef.h>
-#include <sys/stat.h>
-
-/* Get file information about FILE in BUF.
- If FILE is a symbolic link, do not follow it. */
-int
-__lxstat64 (int vers, const char *file, struct stat64 *buf)
-{
- return __xstat64 (vers, file, buf);
-}
-hidden_def (__lxstat64)
diff --git a/io/stat.c b/io/stat.c
index 78dbfb3b8f..9c0a8b0baf 100644
--- a/io/stat.c
+++ b/io/stat.c
@@ -17,11 +17,10 @@
#include <sys/stat.h>
-#undef __stat
int
__stat (const char *file, struct stat *buf)
{
- return __xstat (_STAT_VER, file, buf);
+ return __fstatat (AT_FDCWD, file, buf, 0);
}
weak_alias (__stat, stat)
diff --git a/io/stat64.c b/io/stat64.c
index 102dcc5d5a..ea47e13754 100644
--- a/io/stat64.c
+++ b/io/stat64.c
@@ -17,11 +17,10 @@
#include <sys/stat.h>
-#undef __stat64
int
__stat64 (const char *file, struct stat64 *buf)
{
- return __xstat64 (_STAT_VER, file, buf);
+ return __fstatat64 (AT_FDCWD, file, buf, 0);
}
hidden_def (__stat64)
weak_alias (__stat64, stat64)
diff --git a/io/xstat.c b/io/xstat.c
deleted file mode 100644
index 25edcf8b45..0000000000
--- a/io/xstat.c
+++ /dev/null
@@ -1,37 +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/stat.h>
-#include <stddef.h>
-
-/* Get file information about FILE in BUF. */
-int
-__xstat (int vers, const char *file, struct stat *buf)
-{
- if (vers != _STAT_VER || file == NULL || buf == NULL)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- __set_errno (ENOSYS);
- return -1;
-}
-hidden_def (__xstat)
-stub_warning (stat)
-weak_alias (__xstat, _xstat)
diff --git a/io/xstat64.c b/io/xstat64.c
deleted file mode 100644
index 898b574ee5..0000000000
--- a/io/xstat64.c
+++ /dev/null
@@ -1,36 +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/stat.h>
-#include <stddef.h>
-
-/* Get file information about FILE in BUF. */
-int
-__xstat64 (int vers, const char *file, struct stat64 *buf)
-{
- if (vers != _STAT_VER || file == NULL || buf == NULL)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- __set_errno (ENOSYS);
- return -1;
-}
-hidden_def (__xstat64)
-stub_warning (stat64)
diff --git a/sysdeps/mach/hurd/Makefile b/sysdeps/mach/hurd/Makefile
index 9c53db3783..571277cf7f 100644
--- a/sysdeps/mach/hurd/Makefile
+++ b/sysdeps/mach/hurd/Makefile
@@ -199,7 +199,9 @@ ifeq (io, $(subdir))
sysdep_routines += f_setlk close_nocancel close_nocancel_nostatus \
fcntl_nocancel open_nocancel openat_nocancel read_nocancel \
pread64_nocancel write_nocancel pwrite64_nocancel \
- wait4_nocancel
+ wait4_nocancel \
+ xstat fxstat lxstat xstat64 fxstat64 lxstat64 \
+ fxstatat fxstatat64
endif
ifeq (misc, $(subdir))
diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
index 09604e128b..899b6c9c77 100644
--- a/sysdeps/unix/sysv/linux/Makefile
+++ b/sysdeps/unix/sysv/linux/Makefile
@@ -61,7 +61,9 @@ sysdep_routines += adjtimex clone umount umount2 readahead sysctl \
open_by_handle_at mlock2 pkey_mprotect pkey_set pkey_get \
timerfd_gettime timerfd_settime prctl \
process_vm_readv process_vm_writev clock_adjtime \
- time64-support pselect32
+ time64-support pselect32 \
+ xstat fxstat lxstat xstat64 fxstat64 lxstat64 \
+ fxstatat fxstatat64
CFLAGS-gethostid.c = -fexceptions
CFLAGS-tee.c = -fexceptions -fasynchronous-unwind-tables
--
2.25.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 2/2] io: Remove xmknod{at} implementations
2020-12-02 19:39 [PATCH 1/2] io: Remove xstat implementations Adhemerval Zanella
@ 2020-12-02 19:39 ` Adhemerval Zanella
2020-12-28 19:10 ` Adhemerval Zanella
2020-12-28 19:10 ` [PATCH 1/2] io: Remove xstat implementations Adhemerval Zanella
1 sibling, 1 reply; 6+ messages in thread
From: Adhemerval Zanella @ 2020-12-02 19:39 UTC (permalink / raw)
To: libc-alpha
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)
--
2.25.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] io: Remove xstat implementations
2020-12-02 19:39 [PATCH 1/2] io: Remove xstat implementations Adhemerval Zanella
2020-12-02 19:39 ` [PATCH 2/2] io: Remove xmknod{at} implementations Adhemerval Zanella
@ 2020-12-28 19:10 ` Adhemerval Zanella
2020-12-29 10:17 ` Lukasz Majewski
1 sibling, 1 reply; 6+ messages in thread
From: Adhemerval Zanella @ 2020-12-28 19:10 UTC (permalink / raw)
To: libc-alpha
If no one opposes it, I will commit this.
On 02/12/2020 16:39, Adhemerval Zanella wrote:
> With xstat wrapper functions removed (8ed005daf0), the stat functions
> are now properly exported, and version is done using symbols versioning
> instead of the extra _STAT_* argument.
> ---
> io/Makefile | 3 +-
> io/fstat.c | 3 +-
> io/fstat64.c | 3 +-
> io/fstatat.c | 18 ++++++++++--
> io/fstatat64.c | 18 ++++++++++--
> io/fxstat.c | 48 -------------------------------
> io/fxstat64.c | 47 ------------------------------
> io/fxstatat.c | 48 -------------------------------
> io/fxstatat64.c | 49 --------------------------------
> io/lstat.c | 3 +-
> io/lstat64.c | 3 +-
> io/lxstat.c | 26 -----------------
> io/lxstat64.c | 30 -------------------
> io/stat.c | 3 +-
> io/stat64.c | 3 +-
> io/xstat.c | 37 ------------------------
> io/xstat64.c | 36 -----------------------
> sysdeps/mach/hurd/Makefile | 4 ++-
> sysdeps/unix/sysv/linux/Makefile | 4 ++-
> 19 files changed, 45 insertions(+), 341 deletions(-)
> delete mode 100644 io/fxstat.c
> delete mode 100644 io/fxstat64.c
> delete mode 100644 io/fxstatat.c
> delete mode 100644 io/fxstatat64.c
> delete mode 100644 io/lxstat.c
> delete mode 100644 io/lxstat64.c
> delete mode 100644 io/xstat.c
> delete mode 100644 io/xstat64.c
>
> diff --git a/io/Makefile b/io/Makefile
> index 33f5b0b867..887a989c03 100644
> --- a/io/Makefile
> +++ b/io/Makefile
> @@ -33,9 +33,8 @@ routines := \
> utime \
> mkfifo mkfifoat \
> stat fstat lstat stat64 fstat64 lstat64 fstatat fstatat64 \
> - xstat fxstat lxstat xstat64 fxstat64 lxstat64 statx \
> + statx \
> mknod mknodat xmknod xmknodat \
> - fxstatat fxstatat64 \
> statfs fstatfs statfs64 fstatfs64 \
> statvfs fstatvfs statvfs64 fstatvfs64 \
> umask chmod fchmod lchmod fchmodat \
> diff --git a/io/fstat.c b/io/fstat.c
> index c392ebe35b..065e6f8f68 100644
> --- a/io/fstat.c
> +++ b/io/fstat.c
> @@ -17,11 +17,10 @@
>
> #include <sys/stat.h>
>
> -#undef __fstat
> int
> __fstat (int fd, struct stat *buf)
> {
> - return __fxstat (_STAT_VER, fd, buf);
> + return __fstatat (fd, "", buf, AT_EMPTY_PATH);
> }
>
> weak_alias (__fstat, fstat)
> diff --git a/io/fstat64.c b/io/fstat64.c
> index 8f9a6a4ad0..505123ee0e 100644
> --- a/io/fstat64.c
> +++ b/io/fstat64.c
> @@ -17,11 +17,10 @@
>
> #include <sys/stat.h>
>
> -#undef __fstat64
> int
> __fstat64 (int fd, struct stat64 *buf)
> {
> - return __fxstat64 (_STAT_VER, fd, buf);
> + return __fstatat64 (fd, "", buf, AT_EMPTY_PATH);
> }
> hidden_def (__fstat64)
> weak_alias (__fstat64, fstat64)
> diff --git a/io/fstatat.c b/io/fstatat.c
> index 19242b7d5d..07f4afb996 100644
> --- a/io/fstatat.c
> +++ b/io/fstatat.c
> @@ -16,12 +16,26 @@
> <https://www.gnu.org/licenses/>. */
>
> #include <sys/stat.h>
> +#include <errno.h>
>
> -#undef __fstatat
> int
> __fstatat (int fd, const char *file, struct stat *buf, int flag)
> {
> - return __fxstatat (_STAT_VER, fd, file, buf, flag);
> + if (fd < 0 && fd != AT_FDCWD)
> + {
> + __set_errno (EBADF);
> + return -1;
> + }
> + if (buf == NULL || (flag & ~AT_SYMLINK_NOFOLLOW) != 0)
> + {
> + __set_errno (EINVAL);
> + return -1;
> + }
> +
> + __set_errno (ENOSYS);
> + return -1;
> }
>
> weak_alias (__fstatat, fstatat)
> +
> +stub_warning (fstatat)
> diff --git a/io/fstatat64.c b/io/fstatat64.c
> index 0e0312fd19..3b5a7528b7 100644
> --- a/io/fstatat64.c
> +++ b/io/fstatat64.c
> @@ -16,12 +16,26 @@
> <https://www.gnu.org/licenses/>. */
>
> #include <sys/stat.h>
> +#include <errno.h>
>
> -#undef __fstatat64
> int
> __fstatat64 (int fd, const char *file, struct stat64 *buf, int flag)
> {
> - return __fxstatat64 (_STAT_VER, fd, file, buf, flag);
> + if (fd < 0 && fd != AT_FDCWD)
> + {
> + __set_errno (EBADF);
> + return -1;
> + }
> + if (buf == NULL || (flag & ~AT_SYMLINK_NOFOLLOW) != 0)
> + {
> + __set_errno (EINVAL);
> + return -1;
> + }
> +
> + __set_errno (ENOSYS);
> + return -1;
> }
> hidden_def (__fstatat64)
> weak_alias (__fstatat64, fstatat64)
> +
> +stub_warning (fstatat64)
> diff --git a/io/fxstat.c b/io/fxstat.c
> deleted file mode 100644
> index 2ebb34c0be..0000000000
> --- a/io/fxstat.c
> +++ /dev/null
> @@ -1,48 +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 <stddef.h>
> -#include <sys/stat.h>
> -
> -/* Get information about the file descriptor FD in BUF. */
> -int
> -__fxstat (int vers, int fd, struct stat *buf)
> -{
> - if (vers != _STAT_VER)
> - {
> - __set_errno (EINVAL);
> - return -1;
> - }
> -
> - if (fd < 0)
> - {
> - __set_errno (EBADF);
> - return -1;
> - }
> - else if (buf == NULL)
> - {
> - __set_errno (EINVAL);
> - return -1;
> - }
> -
> - __set_errno (ENOSYS);
> - return -1;
> -}
> -stub_warning (fstat)
> -hidden_def (__fxstat)
> -weak_alias (__fxstat, _fxstat)
> diff --git a/io/fxstat64.c b/io/fxstat64.c
> deleted file mode 100644
> index 6059ed0ee3..0000000000
> --- a/io/fxstat64.c
> +++ /dev/null
> @@ -1,47 +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 <stddef.h>
> -#include <sys/stat.h>
> -
> -/* Get information about the file descriptor FD in BUF. */
> -int
> -__fxstat64 (int vers, int fd, struct stat64 *buf)
> -{
> - if (vers != _STAT_VER)
> - {
> - __set_errno (EINVAL);
> - return -1;
> - }
> -
> - if (fd < 0)
> - {
> - __set_errno (EBADF);
> - return -1;
> - }
> - else if (buf == NULL)
> - {
> - __set_errno (EINVAL);
> - return -1;
> - }
> -
> - __set_errno (ENOSYS);
> - return -1;
> -}
> -hidden_def (__fxstat64)
> -stub_warning (fstat64)
> diff --git a/io/fxstatat.c b/io/fxstatat.c
> deleted file mode 100644
> index aac9d31143..0000000000
> --- a/io/fxstatat.c
> +++ /dev/null
> @@ -1,48 +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/stat.h>
> -
> -/* Get information about the file descriptor FD in BUF. */
> -int
> -__fxstatat (int vers, int fd, const char *filename, struct stat *buf, int flag)
> -{
> - if (vers != _STAT_VER)
> - {
> - __set_errno (EINVAL);
> - return -1;
> - }
> -
> - if (fd < 0 && fd != AT_FDCWD)
> - {
> - __set_errno (EBADF);
> - return -1;
> - }
> - if (buf == NULL || (flag & ~AT_SYMLINK_NOFOLLOW) != 0)
> - {
> - __set_errno (EINVAL);
> - return -1;
> - }
> -
> - __set_errno (ENOSYS);
> - return -1;
> -}
> -libc_hidden_def (__fxstatat)
> -stub_warning (fstatat)
> diff --git a/io/fxstatat64.c b/io/fxstatat64.c
> deleted file mode 100644
> index 5e3aa382c4..0000000000
> --- a/io/fxstatat64.c
> +++ /dev/null
> @@ -1,49 +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/stat.h>
> -
> -/* Get information about the file descriptor FD in BUF. */
> -int
> -__fxstatat64 (int vers, int fd, const char *filename, struct stat64 *buf,
> - int flag)
> -{
> - if (vers != _STAT_VER)
> - {
> - __set_errno (EINVAL);
> - return -1;
> - }
> -
> - if (fd < 0 && fd != AT_FDCWD)
> - {
> - __set_errno (EBADF);
> - return -1;
> - }
> - if (buf == NULL || (flag & ~AT_SYMLINK_NOFOLLOW) != 0)
> - {
> - __set_errno (EINVAL);
> - return -1;
> - }
> -
> - __set_errno (ENOSYS);
> - return -1;
> -}
> -libc_hidden_def (__fxstatat64)
> -stub_warning (fstatat64)
> diff --git a/io/lstat.c b/io/lstat.c
> index bdd60bedb6..abb4a14831 100644
> --- a/io/lstat.c
> +++ b/io/lstat.c
> @@ -17,11 +17,10 @@
>
> #include <sys/stat.h>
>
> -#undef __lstat
> int
> __lstat (const char *file, struct stat *buf)
> {
> - return __lxstat (_STAT_VER, file, buf);
> + return __fstatat (AT_FDCWD, file, buf, AT_SYMLINK_NOFOLLOW);
> }
>
> weak_alias (__lstat, lstat)
> diff --git a/io/lstat64.c b/io/lstat64.c
> index 0e571f6075..d244e793b2 100644
> --- a/io/lstat64.c
> +++ b/io/lstat64.c
> @@ -17,11 +17,10 @@
>
> #include <sys/stat.h>
>
> -#undef __lstat64
> int
> __lstat64 (const char *file, struct stat64 *buf)
> {
> - return __lxstat64 (_STAT_VER, file, buf);
> + return __fstatat64 (AT_FDCWD, file, buf, AT_SYMLINK_NOFOLLOW);
> }
> hidden_def (__lstat64)
> weak_alias (__lstat64, lstat64)
> diff --git a/io/lxstat.c b/io/lxstat.c
> deleted file mode 100644
> index e38336e674..0000000000
> --- a/io/lxstat.c
> +++ /dev/null
> @@ -1,26 +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>
> -
> -int
> -__lxstat (int version, const char *file, struct stat *buf)
> -{
> - return __xstat (version, file, buf);
> -}
> -hidden_def (__lxstat)
> -weak_alias (__lxstat, _lxstat)
> diff --git a/io/lxstat64.c b/io/lxstat64.c
> deleted file mode 100644
> index 97dae35efe..0000000000
> --- a/io/lxstat64.c
> +++ /dev/null
> @@ -1,30 +0,0 @@
> -/* lxstat64 -- get file metadata, not following symlinks. Stub version.
> - 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 <stddef.h>
> -#include <sys/stat.h>
> -
> -/* Get file information about FILE in BUF.
> - If FILE is a symbolic link, do not follow it. */
> -int
> -__lxstat64 (int vers, const char *file, struct stat64 *buf)
> -{
> - return __xstat64 (vers, file, buf);
> -}
> -hidden_def (__lxstat64)
> diff --git a/io/stat.c b/io/stat.c
> index 78dbfb3b8f..9c0a8b0baf 100644
> --- a/io/stat.c
> +++ b/io/stat.c
> @@ -17,11 +17,10 @@
>
> #include <sys/stat.h>
>
> -#undef __stat
> int
> __stat (const char *file, struct stat *buf)
> {
> - return __xstat (_STAT_VER, file, buf);
> + return __fstatat (AT_FDCWD, file, buf, 0);
> }
>
> weak_alias (__stat, stat)
> diff --git a/io/stat64.c b/io/stat64.c
> index 102dcc5d5a..ea47e13754 100644
> --- a/io/stat64.c
> +++ b/io/stat64.c
> @@ -17,11 +17,10 @@
>
> #include <sys/stat.h>
>
> -#undef __stat64
> int
> __stat64 (const char *file, struct stat64 *buf)
> {
> - return __xstat64 (_STAT_VER, file, buf);
> + return __fstatat64 (AT_FDCWD, file, buf, 0);
> }
> hidden_def (__stat64)
> weak_alias (__stat64, stat64)
> diff --git a/io/xstat.c b/io/xstat.c
> deleted file mode 100644
> index 25edcf8b45..0000000000
> --- a/io/xstat.c
> +++ /dev/null
> @@ -1,37 +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/stat.h>
> -#include <stddef.h>
> -
> -/* Get file information about FILE in BUF. */
> -int
> -__xstat (int vers, const char *file, struct stat *buf)
> -{
> - if (vers != _STAT_VER || file == NULL || buf == NULL)
> - {
> - __set_errno (EINVAL);
> - return -1;
> - }
> -
> - __set_errno (ENOSYS);
> - return -1;
> -}
> -hidden_def (__xstat)
> -stub_warning (stat)
> -weak_alias (__xstat, _xstat)
> diff --git a/io/xstat64.c b/io/xstat64.c
> deleted file mode 100644
> index 898b574ee5..0000000000
> --- a/io/xstat64.c
> +++ /dev/null
> @@ -1,36 +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/stat.h>
> -#include <stddef.h>
> -
> -/* Get file information about FILE in BUF. */
> -int
> -__xstat64 (int vers, const char *file, struct stat64 *buf)
> -{
> - if (vers != _STAT_VER || file == NULL || buf == NULL)
> - {
> - __set_errno (EINVAL);
> - return -1;
> - }
> -
> - __set_errno (ENOSYS);
> - return -1;
> -}
> -hidden_def (__xstat64)
> -stub_warning (stat64)
> diff --git a/sysdeps/mach/hurd/Makefile b/sysdeps/mach/hurd/Makefile
> index 9c53db3783..571277cf7f 100644
> --- a/sysdeps/mach/hurd/Makefile
> +++ b/sysdeps/mach/hurd/Makefile
> @@ -199,7 +199,9 @@ ifeq (io, $(subdir))
> sysdep_routines += f_setlk close_nocancel close_nocancel_nostatus \
> fcntl_nocancel open_nocancel openat_nocancel read_nocancel \
> pread64_nocancel write_nocancel pwrite64_nocancel \
> - wait4_nocancel
> + wait4_nocancel \
> + xstat fxstat lxstat xstat64 fxstat64 lxstat64 \
> + fxstatat fxstatat64
> endif
>
> ifeq (misc, $(subdir))
> diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
> index 09604e128b..899b6c9c77 100644
> --- a/sysdeps/unix/sysv/linux/Makefile
> +++ b/sysdeps/unix/sysv/linux/Makefile
> @@ -61,7 +61,9 @@ sysdep_routines += adjtimex clone umount umount2 readahead sysctl \
> open_by_handle_at mlock2 pkey_mprotect pkey_set pkey_get \
> timerfd_gettime timerfd_settime prctl \
> process_vm_readv process_vm_writev clock_adjtime \
> - time64-support pselect32
> + time64-support pselect32 \
> + xstat fxstat lxstat xstat64 fxstat64 lxstat64 \
> + fxstatat fxstatat64
>
> CFLAGS-gethostid.c = -fexceptions
> CFLAGS-tee.c = -fexceptions -fasynchronous-unwind-tables
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] io: Remove xmknod{at} implementations
2020-12-02 19:39 ` [PATCH 2/2] io: Remove xmknod{at} implementations Adhemerval Zanella
@ 2020-12-28 19:10 ` Adhemerval Zanella
2020-12-29 10:18 ` Lukasz Majewski
0 siblings, 1 reply; 6+ messages in thread
From: Adhemerval Zanella @ 2020-12-28 19:10 UTC (permalink / raw)
To: libc-alpha
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)
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] io: Remove xstat implementations
2020-12-28 19:10 ` [PATCH 1/2] io: Remove xstat implementations Adhemerval Zanella
@ 2020-12-29 10:17 ` Lukasz Majewski
0 siblings, 0 replies; 6+ messages in thread
From: Lukasz Majewski @ 2020-12-29 10:17 UTC (permalink / raw)
To: Adhemerval Zanella via Libc-alpha
[-- Attachment #1: Type: text/plain, Size: 21838 bytes --]
Hi Adhemerval,
> If no one opposes it, I will commit this.
>
> On 02/12/2020 16:39, Adhemerval Zanella wrote:
> > With xstat wrapper functions removed (8ed005daf0), the stat
> > functions are now properly exported, and version is done using
> > symbols versioning instead of the extra _STAT_* argument.
> > ---
> > io/Makefile | 3 +-
> > io/fstat.c | 3 +-
> > io/fstat64.c | 3 +-
> > io/fstatat.c | 18 ++++++++++--
> > io/fstatat64.c | 18 ++++++++++--
> > io/fxstat.c | 48
> > ------------------------------- io/fxstat64.c |
> > 47 ------------------------------ io/fxstatat.c
> > | 48 ------------------------------- io/fxstatat64.c
> > | 49 -------------------------------- io/lstat.c
> > | 3 +- io/lstat64.c | 3 +-
> > io/lxstat.c | 26 -----------------
> > io/lxstat64.c | 30 -------------------
> > io/stat.c | 3 +-
> > io/stat64.c | 3 +-
> > io/xstat.c | 37 ------------------------
> > io/xstat64.c | 36 -----------------------
> > sysdeps/mach/hurd/Makefile | 4 ++-
> > sysdeps/unix/sysv/linux/Makefile | 4 ++-
> > 19 files changed, 45 insertions(+), 341 deletions(-)
> > delete mode 100644 io/fxstat.c
> > delete mode 100644 io/fxstat64.c
> > delete mode 100644 io/fxstatat.c
> > delete mode 100644 io/fxstatat64.c
> > delete mode 100644 io/lxstat.c
> > delete mode 100644 io/lxstat64.c
> > delete mode 100644 io/xstat.c
> > delete mode 100644 io/xstat64.c
> >
> > diff --git a/io/Makefile b/io/Makefile
> > index 33f5b0b867..887a989c03 100644
> > --- a/io/Makefile
> > +++ b/io/Makefile
> > @@ -33,9 +33,8 @@ routines :=
> > \ utime
> > \ mkfifo mkfifoat
> > \ stat fstat lstat
> > stat64 fstat64 lstat64 fstatat fstatat64 \
> > - xstat fxstat lxstat xstat64 fxstat64 lxstat64 statx
> > \
> > + statx
> > \ mknod mknodat xmknod xmknodat
> > \
> > - fxstatat fxstatat64
> > \ statfs fstatfs statfs64 fstatfs64
> > \ statvfs fstatvfs statvfs64 fstatvfs64
> > \ umask chmod fchmod lchmod fchmodat
> > \ diff --git a/io/fstat.c b/io/fstat.c
> > index c392ebe35b..065e6f8f68 100644
> > --- a/io/fstat.c
> > +++ b/io/fstat.c
> > @@ -17,11 +17,10 @@
> >
> > #include <sys/stat.h>
> >
> > -#undef __fstat
> > int
> > __fstat (int fd, struct stat *buf)
> > {
> > - return __fxstat (_STAT_VER, fd, buf);
> > + return __fstatat (fd, "", buf, AT_EMPTY_PATH);
> > }
> >
> > weak_alias (__fstat, fstat)
> > diff --git a/io/fstat64.c b/io/fstat64.c
> > index 8f9a6a4ad0..505123ee0e 100644
> > --- a/io/fstat64.c
> > +++ b/io/fstat64.c
> > @@ -17,11 +17,10 @@
> >
> > #include <sys/stat.h>
> >
> > -#undef __fstat64
> > int
> > __fstat64 (int fd, struct stat64 *buf)
> > {
> > - return __fxstat64 (_STAT_VER, fd, buf);
> > + return __fstatat64 (fd, "", buf, AT_EMPTY_PATH);
> > }
> > hidden_def (__fstat64)
> > weak_alias (__fstat64, fstat64)
> > diff --git a/io/fstatat.c b/io/fstatat.c
> > index 19242b7d5d..07f4afb996 100644
> > --- a/io/fstatat.c
> > +++ b/io/fstatat.c
> > @@ -16,12 +16,26 @@
> > <https://www.gnu.org/licenses/>. */
> >
> > #include <sys/stat.h>
> > +#include <errno.h>
> >
> > -#undef __fstatat
> > int
> > __fstatat (int fd, const char *file, struct stat *buf, int flag)
> > {
> > - return __fxstatat (_STAT_VER, fd, file, buf, flag);
> > + if (fd < 0 && fd != AT_FDCWD)
> > + {
> > + __set_errno (EBADF);
> > + return -1;
> > + }
> > + if (buf == NULL || (flag & ~AT_SYMLINK_NOFOLLOW) != 0)
> > + {
> > + __set_errno (EINVAL);
> > + return -1;
> > + }
> > +
> > + __set_errno (ENOSYS);
> > + return -1;
> > }
> >
> > weak_alias (__fstatat, fstatat)
> > +
> > +stub_warning (fstatat)
> > diff --git a/io/fstatat64.c b/io/fstatat64.c
> > index 0e0312fd19..3b5a7528b7 100644
> > --- a/io/fstatat64.c
> > +++ b/io/fstatat64.c
> > @@ -16,12 +16,26 @@
> > <https://www.gnu.org/licenses/>. */
> >
> > #include <sys/stat.h>
> > +#include <errno.h>
> >
> > -#undef __fstatat64
> > int
> > __fstatat64 (int fd, const char *file, struct stat64 *buf, int
> > flag) {
> > - return __fxstatat64 (_STAT_VER, fd, file, buf, flag);
> > + if (fd < 0 && fd != AT_FDCWD)
> > + {
> > + __set_errno (EBADF);
> > + return -1;
> > + }
> > + if (buf == NULL || (flag & ~AT_SYMLINK_NOFOLLOW) != 0)
> > + {
> > + __set_errno (EINVAL);
> > + return -1;
> > + }
> > +
> > + __set_errno (ENOSYS);
> > + return -1;
> > }
> > hidden_def (__fstatat64)
> > weak_alias (__fstatat64, fstatat64)
> > +
> > +stub_warning (fstatat64)
> > diff --git a/io/fxstat.c b/io/fxstat.c
> > deleted file mode 100644
> > index 2ebb34c0be..0000000000
> > --- a/io/fxstat.c
> > +++ /dev/null
> > @@ -1,48 +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 <stddef.h>
> > -#include <sys/stat.h>
> > -
> > -/* Get information about the file descriptor FD in BUF. */
> > -int
> > -__fxstat (int vers, int fd, struct stat *buf)
> > -{
> > - if (vers != _STAT_VER)
> > - {
> > - __set_errno (EINVAL);
> > - return -1;
> > - }
> > -
> > - if (fd < 0)
> > - {
> > - __set_errno (EBADF);
> > - return -1;
> > - }
> > - else if (buf == NULL)
> > - {
> > - __set_errno (EINVAL);
> > - return -1;
> > - }
> > -
> > - __set_errno (ENOSYS);
> > - return -1;
> > -}
> > -stub_warning (fstat)
> > -hidden_def (__fxstat)
> > -weak_alias (__fxstat, _fxstat)
> > diff --git a/io/fxstat64.c b/io/fxstat64.c
> > deleted file mode 100644
> > index 6059ed0ee3..0000000000
> > --- a/io/fxstat64.c
> > +++ /dev/null
> > @@ -1,47 +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 <stddef.h>
> > -#include <sys/stat.h>
> > -
> > -/* Get information about the file descriptor FD in BUF. */
> > -int
> > -__fxstat64 (int vers, int fd, struct stat64 *buf)
> > -{
> > - if (vers != _STAT_VER)
> > - {
> > - __set_errno (EINVAL);
> > - return -1;
> > - }
> > -
> > - if (fd < 0)
> > - {
> > - __set_errno (EBADF);
> > - return -1;
> > - }
> > - else if (buf == NULL)
> > - {
> > - __set_errno (EINVAL);
> > - return -1;
> > - }
> > -
> > - __set_errno (ENOSYS);
> > - return -1;
> > -}
> > -hidden_def (__fxstat64)
> > -stub_warning (fstat64)
> > diff --git a/io/fxstatat.c b/io/fxstatat.c
> > deleted file mode 100644
> > index aac9d31143..0000000000
> > --- a/io/fxstatat.c
> > +++ /dev/null
> > @@ -1,48 +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/stat.h>
> > -
> > -/* Get information about the file descriptor FD in BUF. */
> > -int
> > -__fxstatat (int vers, int fd, const char *filename, struct stat
> > *buf, int flag) -{
> > - if (vers != _STAT_VER)
> > - {
> > - __set_errno (EINVAL);
> > - return -1;
> > - }
> > -
> > - if (fd < 0 && fd != AT_FDCWD)
> > - {
> > - __set_errno (EBADF);
> > - return -1;
> > - }
> > - if (buf == NULL || (flag & ~AT_SYMLINK_NOFOLLOW) != 0)
> > - {
> > - __set_errno (EINVAL);
> > - return -1;
> > - }
> > -
> > - __set_errno (ENOSYS);
> > - return -1;
> > -}
> > -libc_hidden_def (__fxstatat)
> > -stub_warning (fstatat)
> > diff --git a/io/fxstatat64.c b/io/fxstatat64.c
> > deleted file mode 100644
> > index 5e3aa382c4..0000000000
> > --- a/io/fxstatat64.c
> > +++ /dev/null
> > @@ -1,49 +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/stat.h>
> > -
> > -/* Get information about the file descriptor FD in BUF. */
> > -int
> > -__fxstatat64 (int vers, int fd, const char *filename, struct
> > stat64 *buf,
> > - int flag)
> > -{
> > - if (vers != _STAT_VER)
> > - {
> > - __set_errno (EINVAL);
> > - return -1;
> > - }
> > -
> > - if (fd < 0 && fd != AT_FDCWD)
> > - {
> > - __set_errno (EBADF);
> > - return -1;
> > - }
> > - if (buf == NULL || (flag & ~AT_SYMLINK_NOFOLLOW) != 0)
> > - {
> > - __set_errno (EINVAL);
> > - return -1;
> > - }
> > -
> > - __set_errno (ENOSYS);
> > - return -1;
> > -}
> > -libc_hidden_def (__fxstatat64)
> > -stub_warning (fstatat64)
> > diff --git a/io/lstat.c b/io/lstat.c
> > index bdd60bedb6..abb4a14831 100644
> > --- a/io/lstat.c
> > +++ b/io/lstat.c
> > @@ -17,11 +17,10 @@
> >
> > #include <sys/stat.h>
> >
> > -#undef __lstat
> > int
> > __lstat (const char *file, struct stat *buf)
> > {
> > - return __lxstat (_STAT_VER, file, buf);
> > + return __fstatat (AT_FDCWD, file, buf, AT_SYMLINK_NOFOLLOW);
> > }
> >
> > weak_alias (__lstat, lstat)
> > diff --git a/io/lstat64.c b/io/lstat64.c
> > index 0e571f6075..d244e793b2 100644
> > --- a/io/lstat64.c
> > +++ b/io/lstat64.c
> > @@ -17,11 +17,10 @@
> >
> > #include <sys/stat.h>
> >
> > -#undef __lstat64
> > int
> > __lstat64 (const char *file, struct stat64 *buf)
> > {
> > - return __lxstat64 (_STAT_VER, file, buf);
> > + return __fstatat64 (AT_FDCWD, file, buf, AT_SYMLINK_NOFOLLOW);
> > }
> > hidden_def (__lstat64)
> > weak_alias (__lstat64, lstat64)
> > diff --git a/io/lxstat.c b/io/lxstat.c
> > deleted file mode 100644
> > index e38336e674..0000000000
> > --- a/io/lxstat.c
> > +++ /dev/null
> > @@ -1,26 +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>
> > -
> > -int
> > -__lxstat (int version, const char *file, struct stat *buf)
> > -{
> > - return __xstat (version, file, buf);
> > -}
> > -hidden_def (__lxstat)
> > -weak_alias (__lxstat, _lxstat)
> > diff --git a/io/lxstat64.c b/io/lxstat64.c
> > deleted file mode 100644
> > index 97dae35efe..0000000000
> > --- a/io/lxstat64.c
> > +++ /dev/null
> > @@ -1,30 +0,0 @@
> > -/* lxstat64 -- get file metadata, not following symlinks. Stub
> > version.
> > - 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 <stddef.h>
> > -#include <sys/stat.h>
> > -
> > -/* Get file information about FILE in BUF.
> > - If FILE is a symbolic link, do not follow it. */
> > -int
> > -__lxstat64 (int vers, const char *file, struct stat64 *buf)
> > -{
> > - return __xstat64 (vers, file, buf);
> > -}
> > -hidden_def (__lxstat64)
> > diff --git a/io/stat.c b/io/stat.c
> > index 78dbfb3b8f..9c0a8b0baf 100644
> > --- a/io/stat.c
> > +++ b/io/stat.c
> > @@ -17,11 +17,10 @@
> >
> > #include <sys/stat.h>
> >
> > -#undef __stat
> > int
> > __stat (const char *file, struct stat *buf)
> > {
> > - return __xstat (_STAT_VER, file, buf);
> > + return __fstatat (AT_FDCWD, file, buf, 0);
> > }
> >
> > weak_alias (__stat, stat)
> > diff --git a/io/stat64.c b/io/stat64.c
> > index 102dcc5d5a..ea47e13754 100644
> > --- a/io/stat64.c
> > +++ b/io/stat64.c
> > @@ -17,11 +17,10 @@
> >
> > #include <sys/stat.h>
> >
> > -#undef __stat64
> > int
> > __stat64 (const char *file, struct stat64 *buf)
> > {
> > - return __xstat64 (_STAT_VER, file, buf);
> > + return __fstatat64 (AT_FDCWD, file, buf, 0);
> > }
> > hidden_def (__stat64)
> > weak_alias (__stat64, stat64)
> > diff --git a/io/xstat.c b/io/xstat.c
> > deleted file mode 100644
> > index 25edcf8b45..0000000000
> > --- a/io/xstat.c
> > +++ /dev/null
> > @@ -1,37 +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/stat.h>
> > -#include <stddef.h>
> > -
> > -/* Get file information about FILE in BUF. */
> > -int
> > -__xstat (int vers, const char *file, struct stat *buf)
> > -{
> > - if (vers != _STAT_VER || file == NULL || buf == NULL)
> > - {
> > - __set_errno (EINVAL);
> > - return -1;
> > - }
> > -
> > - __set_errno (ENOSYS);
> > - return -1;
> > -}
> > -hidden_def (__xstat)
> > -stub_warning (stat)
> > -weak_alias (__xstat, _xstat)
> > diff --git a/io/xstat64.c b/io/xstat64.c
> > deleted file mode 100644
> > index 898b574ee5..0000000000
> > --- a/io/xstat64.c
> > +++ /dev/null
> > @@ -1,36 +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/stat.h>
> > -#include <stddef.h>
> > -
> > -/* Get file information about FILE in BUF. */
> > -int
> > -__xstat64 (int vers, const char *file, struct stat64 *buf)
> > -{
> > - if (vers != _STAT_VER || file == NULL || buf == NULL)
> > - {
> > - __set_errno (EINVAL);
> > - return -1;
> > - }
> > -
> > - __set_errno (ENOSYS);
> > - return -1;
> > -}
> > -hidden_def (__xstat64)
> > -stub_warning (stat64)
> > diff --git a/sysdeps/mach/hurd/Makefile b/sysdeps/mach/hurd/Makefile
> > index 9c53db3783..571277cf7f 100644
> > --- a/sysdeps/mach/hurd/Makefile
> > +++ b/sysdeps/mach/hurd/Makefile
> > @@ -199,7 +199,9 @@ ifeq (io, $(subdir))
> > sysdep_routines += f_setlk close_nocancel close_nocancel_nostatus \
> > fcntl_nocancel open_nocancel openat_nocancel
> > read_nocancel \ pread64_nocancel write_nocancel pwrite64_nocancel \
> > - wait4_nocancel
> > + wait4_nocancel \
> > + xstat fxstat lxstat xstat64 fxstat64 lxstat64 \
> > + fxstatat fxstatat64
> > endif
> >
> > ifeq (misc, $(subdir))
> > diff --git a/sysdeps/unix/sysv/linux/Makefile
> > b/sysdeps/unix/sysv/linux/Makefile index 09604e128b..899b6c9c77
> > 100644 --- a/sysdeps/unix/sysv/linux/Makefile
> > +++ b/sysdeps/unix/sysv/linux/Makefile
> > @@ -61,7 +61,9 @@ sysdep_routines += adjtimex clone umount umount2
> > readahead sysctl \ open_by_handle_at mlock2 pkey_mprotect pkey_set
> > pkey_get \ timerfd_gettime timerfd_settime prctl \
> > process_vm_readv process_vm_writev
> > clock_adjtime \
> > - time64-support pselect32
> > + time64-support pselect32 \
> > + xstat fxstat lxstat xstat64 fxstat64 lxstat64 \
> > + fxstatat fxstatat64
> >
> > CFLAGS-gethostid.c = -fexceptions
> > CFLAGS-tee.c = -fexceptions -fasynchronous-unwind-tables
> >
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
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] io: Remove xmknod{at} implementations
2020-12-28 19:10 ` Adhemerval Zanella
@ 2020-12-29 10:18 ` Lukasz Majewski
0 siblings, 0 replies; 6+ messages in thread
From: Lukasz Majewski @ 2020-12-29 10:18 UTC (permalink / raw)
To: Adhemerval Zanella via Libc-alpha
[-- Attachment #1: Type: text/plain, Size: 11462 bytes --]
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
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2020-12-29 10:18 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-02 19:39 [PATCH 1/2] io: Remove xstat implementations Adhemerval Zanella
2020-12-02 19:39 ` [PATCH 2/2] io: Remove xmknod{at} implementations Adhemerval Zanella
2020-12-28 19:10 ` Adhemerval Zanella
2020-12-29 10:18 ` Lukasz Majewski
2020-12-28 19:10 ` [PATCH 1/2] io: Remove xstat implementations Adhemerval Zanella
2020-12-29 10:17 ` Lukasz Majewski
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).