summaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2018-07-05 18:59:02 +0200
committerFlorian Weimer <fweimer@redhat.com>2018-07-05 19:00:10 +0200
commitd6da5cb6a8e0e8a9ce92b7d951a254cf325248d7 (patch)
tree4c8f50e0ec6b6780eb1eb4dd2b496f0a1b1411d3 /ChangeLog
parent1002d708232dda9ebff65f6c1409fa067a01b6e0 (diff)
Add renameat2 function [BZ #17662]
The implementation falls back to renameat if renameat2 is not available in the kernel (or in the kernel headers) and the flags argument is zero. Without kernel support, a non-zero argument returns EINVAL, not ENOSYS. This mirrors what the kernel does for invalid renameat2 flags.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog31
1 files changed, 31 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 2e8308e191..27927257ce 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,34 @@
+2018-07-05 Florian Weimer <fweimer@redhat.com>
+
+ [BZ # 17662]
+ * libio/stdio.h [__USE_GNU] (RENAME_NOREPLACE, RENAME_EXCHANGE)
+ (RENAME_WHITEOUT): Define.
+ [__USE_GNU] (renameat2): Declare.
+ * stdio-common/Makefile (routines): Add renameat2.
+ (tests): Add tst-renameat2.
+ * stdio-common/Versions (GLIBC_2_28): Export renameat2.
+ * stdio-common/renameat2.c: New file.
+ * stdio-common/tst-renameat2.c: Likewise.
+ * sysdeps/unix/sysv/linux/renameat2.c: Likewise.
+ * manual/filesys.texi (Temporary Files): Note that renameat2 is
+ undocumented.
+ * sysdeps/unix/sysv/linux/kernel-features.h
+ [__LINUX_KERNEL_VERSION >= 0x030F00] (__ASSUME_RENAMEAT2): Define.
+ * sysdeps/unix/sysv/linux/alpha/kernel-features.h
+ [__LINUX_KERNEL_VERSION < 0x031100] (__ASSUME_RENAMEAT2): Undefine.
+ * sysdeps/unix/sysv/linux/microblaze/kernel-features.h
+ [__LINUX_KERNEL_VERSION < 0x031100] (__ASSUME_RENAMEAT2): Undefine.
+ * sysdeps/unix/sysv/linux/sh/kernel-features.h
+ [__LINUX_KERNEL_VERSION < 0x040800] (__ASSUME_RENAMEAT2): Undefine.
+ * sysdeps/unix/sysv/linux/sparc/kernel-features.h
+ [__LINUX_KERNEL_VERSION < 0x031000] (__ASSUME_RENAMEAT2): Undefine.
+ * include/stdio.h (__renameat): Add alias for renameat.
+ * stdio-common/renameat.c (__renameat): Rename from renameat.
+ Add hidden definition and alias.
+ * sysdeps/unix/sysv/linux/renameat.c: Likewise.
+ * sysdeps/mach/hurd/renameat.c: Likewise.
+ * sysdeps/**/libc*.abilist: Add renameat2.
+
2018-07-04 Adhemerval Zanella <adhemerval.zanella@linaro.org>
* posix/bug-regex33.c: Fix build after regex sync.