From 54316a52b2119edf73e274c8b4f25d7757f7b4d3 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Thu, 21 Mar 2019 11:32:39 -0400 Subject: [PATCH] support archs with no renameat syscall, only renameat2 --- src/stdio/rename.c | 6 ++++-- src/unistd/renameat.c | 4 ++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/stdio/rename.c b/src/stdio/rename.c index 04c90c01..f540adb6 100644 --- a/src/stdio/rename.c +++ b/src/stdio/rename.c @@ -4,9 +4,11 @@ int rename(const char *old, const char *new) { -#ifdef SYS_rename +#if defined(SYS_rename) return syscall(SYS_rename, old, new); -#else +#elif defined(SYS_renameat) return syscall(SYS_renameat, AT_FDCWD, old, AT_FDCWD, new); +#else + return syscall(SYS_renameat2, AT_FDCWD, old, AT_FDCWD, new, 0); #endif } diff --git a/src/unistd/renameat.c b/src/unistd/renameat.c index 12574822..c3b40a25 100644 --- a/src/unistd/renameat.c +++ b/src/unistd/renameat.c @@ -3,5 +3,9 @@ int renameat(int oldfd, const char *old, int newfd, const char *new) { +#ifdef SYS_renameat return syscall(SYS_renameat, oldfd, old, newfd, new); +#else + return syscall(SYS_renameat2, oldfd, old, newfd, new, 0); +#endif } -- 2.25.1