Browse Source

Correct uClibc compilation.

- Include sys/types.h instead of asm/types.h
to prevent types conflict for uClibc typedefs and kernel headers
typedefs.
- Cast 3rd arg of utimensat_time64 syscall to integer type
to avoid compiler's -Wint-conversion error. The error was found
during uClibc compilation for mips32.

Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
Dmitry Chestnykh 2 weeks ago
parent
commit
1e704165de
2 changed files with 3 additions and 2 deletions
  1. 1 1
      include/net/ppp_defs.h
  2. 2 1
      libc/sysdeps/linux/common/utimensat.c

+ 1 - 1
include/net/ppp_defs.h

@@ -4,7 +4,7 @@
 #define __need_time_t
 #include <time.h>
 
-#include <asm/types.h>
+#include <sys/types.h>
 #include <linux/ppp_defs.h>
 
 #endif /* net/ppp_defs.h */

+ 2 - 1
libc/sysdeps/linux/common/utimensat.c

@@ -8,6 +8,7 @@
 
 #include <sys/syscall.h>
 #include <sys/stat.h>
+#include <stdint.h>
 
 #if defined(__UCLIBC_USE_TIME64__)
 #include "internal/time64_helpers.h"
@@ -28,7 +29,7 @@ int utimensat(int fd, const char *path, const struct timespec times[2], int flag
         }
     };
 
-    return INLINE_SYSCALL(utimensat_time64, 4, fd, path, times ? &__times64 : 0, flags);
+    return INLINE_SYSCALL(utimensat_time64, 4, fd, path, times ? (uintptr_t) &__times64 : 0, flags);
 }
 #else
 _syscall4(int, utimensat, int, fd, const char *, path, const struct timespec *, times, int, flags)