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
}
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
}