|
@@ -9,13 +9,22 @@
|
|
|
|
|
|
#include <sys/syscall.h>
|
|
|
#include <sys/stat.h>
|
|
|
+#include <unistd.h>
|
|
|
|
|
|
+#if defined __NR_fchmodat && !defined __NR_chmod
|
|
|
+# include <fcntl.h>
|
|
|
+int chmod(const char *path, mode_t mode)
|
|
|
+{
|
|
|
+ return fchmodat(AT_FDCWD, path, mode, 0);
|
|
|
+}
|
|
|
|
|
|
-#define __NR___syscall_chmod __NR_chmod
|
|
|
+#else
|
|
|
+# define __NR___syscall_chmod __NR_chmod
|
|
|
static __inline__ _syscall2(int, __syscall_chmod, const char *, path, __kernel_mode_t, mode)
|
|
|
|
|
|
int chmod(const char *path, mode_t mode)
|
|
|
{
|
|
|
return __syscall_chmod(path, mode);
|
|
|
}
|
|
|
+#endif
|
|
|
libc_hidden_def(chmod)
|