mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-23 03:10:05 +00:00
Consolidate rename Linux implementation
This patch consolidates the Linux rename implementation on sysdeps/unix/sysv/linux/rename.c. Current code try to use __NR_rename if is defined and apply the same strategy for __NR_renameat and __NR_renameat2. Check on x86_64 and aarch64. * sysdeps/unix/sysv/linux/rename.c: New file. * sysdeps/unix/sysv/linux/generic/rename.c: Remove file.
This commit is contained in:
parent
2bf6e649d6
commit
7fe1e1d60a
@ -1,3 +1,8 @@
|
||||
2016-12-14 Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
||||
|
||||
* sysdeps/unix/sysv/linux/rename.c: New file.
|
||||
* sysdeps/unix/sysv/linux/generic/rename.c: Remove file.
|
||||
|
||||
2015-12-14 Wilco Dijkstra <wdijkstr@arm.com>
|
||||
|
||||
* benchtests/bench-strtok.c (oldstrtok): Add old implementation.
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Copyright (C) 2011-2016 Free Software Foundation, Inc.
|
||||
/* Linux implementation for rename function.
|
||||
Copyright (C) 2016 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
@ -17,13 +17,19 @@
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <sysdep.h>
|
||||
#include <errno.h>
|
||||
|
||||
/* Rename the file OLD to NEW. */
|
||||
int
|
||||
rename (const char *old, const char *new)
|
||||
{
|
||||
return INLINE_SYSCALL (renameat, 4, AT_FDCWD, old, AT_FDCWD, new);
|
||||
#if defined (__NR_rename)
|
||||
return INLINE_SYSCALL_CALL (rename, old, new);
|
||||
#elif defined (__NR_renameat)
|
||||
return INLINE_SYSCALL_CALL (renameat, AT_FDCWD, old, AT_FDCWD, new);
|
||||
#else
|
||||
return INLINE_SYSCALL_CALL (renameat2, AT_FDCWD, old, AT_FDCWD, new, 0);
|
||||
#endif
|
||||
}
|
Loading…
Reference in New Issue
Block a user