diff options
author | Florian Weimer <fweimer@redhat.com> | 2018-07-05 18:59:02 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2018-07-05 19:00:10 +0200 |
commit | d6da5cb6a8e0e8a9ce92b7d951a254cf325248d7 (patch) | |
tree | 4c8f50e0ec6b6780eb1eb4dd2b496f0a1b1411d3 /ChangeLog | |
parent | 1002d708232dda9ebff65f6c1409fa067a01b6e0 (diff) | |
download | glibc-d6da5cb6a8e0e8a9ce92b7d951a254cf325248d7.zip glibc-d6da5cb6a8e0e8a9ce92b7d951a254cf325248d7.tar.gz glibc-d6da5cb6a8e0e8a9ce92b7d951a254cf325248d7.tar.bz2 |
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-- | ChangeLog | 31 |
1 files changed, 31 insertions, 0 deletions
@@ -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. |