diff --git a/libc/Android.bp b/libc/Android.bp
index 4a44fc6..ba62592 100644
--- a/libc/Android.bp
+++ b/libc/Android.bp
@@ -1373,6 +1373,7 @@
         "bionic/syslog.cpp",
         "bionic/sys_siglist.c",
         "bionic/sys_signame.c",
+        "bionic/sys_time.cpp",
         "bionic/system_properties.cpp",
         "bionic/tdestroy.cpp",
         "bionic/termios.cpp",
@@ -1380,7 +1381,6 @@
         "bionic/tmpfile.cpp",
         "bionic/umount.cpp",
         "bionic/unlink.cpp",
-        "bionic/utimes.cpp",
         "bionic/wait.cpp",
         "bionic/wchar.cpp",
         "bionic/wctype.cpp",
diff --git a/libc/bionic/utimes.cpp b/libc/bionic/sys_time.cpp
similarity index 67%
rename from libc/bionic/utimes.cpp
rename to libc/bionic/sys_time.cpp
index 0b66e6c..3d0cd87 100644
--- a/libc/bionic/utimes.cpp
+++ b/libc/bionic/sys_time.cpp
@@ -26,22 +26,40 @@
  * SUCH DAMAGE.
  */
 
+#include <sys/time.h>
+
 #include <errno.h>
 #include <fcntl.h>
 #include <sys/stat.h>
-#include <sys/time.h>
 
 #include "private/bionic_time_conversions.h"
 
-int utimes(const char* path, const timeval tv[2]) {
+static int futimesat(int fd, const char* path, const timeval tv[2], int flags) {
   timespec ts[2];
-  timespec* ts_ptr = NULL;
-  if (tv != NULL) {
-    if (!timespec_from_timeval(ts[0], tv[0]) || !timespec_from_timeval(ts[1], tv[1])) {
-      errno = EINVAL;
-      return -1;
-    }
-    ts_ptr = ts;
+  if (tv && (!timespec_from_timeval(ts[0], tv[0]) || !timespec_from_timeval(ts[1], tv[1]))) {
+    errno = EINVAL;
+    return -1;
   }
-  return utimensat(AT_FDCWD, path, ts_ptr, 0);
+  return utimensat(fd, path, tv ? ts : nullptr, flags);
+}
+
+int utimes(const char* path, const timeval tv[2]) {
+  return futimesat(AT_FDCWD, path, tv, 0);
+}
+
+int lutimes(const char* path, const timeval tv[2]) {
+  return futimesat(AT_FDCWD, path, tv, AT_SYMLINK_NOFOLLOW);
+}
+
+int futimesat(int fd, const char* path, const timeval tv[2]) {
+  return futimesat(fd, path, tv, 0);
+}
+
+int futimes(int fd, const timeval tv[2]) {
+  timespec ts[2];
+  if (tv && (!timespec_from_timeval(ts[0], tv[0]) || !timespec_from_timeval(ts[1], tv[1]))) {
+    errno = EINVAL;
+    return -1;
+  }
+  return futimens(fd, tv ? ts : nullptr);
 }
diff --git a/libc/include/sys/time.h b/libc/include/sys/time.h
index f60c905..f4ed321 100644
--- a/libc/include/sys/time.h
+++ b/libc/include/sys/time.h
@@ -38,13 +38,22 @@
 
 __BEGIN_DECLS
 
-extern int gettimeofday(struct timeval *, struct timezone *);
-extern int settimeofday(const struct timeval *, const struct timezone *);
+int gettimeofday(struct timeval*, struct timezone*);
+int settimeofday(const struct timeval*, const struct timezone*);
 
-extern int getitimer(int, struct itimerval *);
-extern int setitimer(int, const struct itimerval *, struct itimerval *);
+int getitimer(int, struct itimerval*);
+int setitimer(int, const struct itimerval*, struct itimerval*);
 
-extern int utimes(const char *, const struct timeval *);
+int utimes(const char*, const struct timeval*);
+
+#if defined(__USE_BSD)
+int futimes(int, const struct timeval[2]);
+int lutimes(const char*, const struct timeval[2]);
+#endif
+
+#if defined(__USE_GNU)
+int futimesat(int, const char*, const struct timeval[2]);
+#endif
 
 #define timerclear(a)   \
         ((a)->tv_sec = (a)->tv_usec = 0)
diff --git a/libc/libc.arm.brillo.map b/libc/libc.arm.brillo.map
index 7833d05..3928cae 100644
--- a/libc/libc.arm.brillo.map
+++ b/libc/libc.arm.brillo.map
@@ -1273,11 +1273,14 @@
     catopen;
     endgrent;
     endpwent;
+    futimes;
+    futimesat;
     getdomainname;
     getgrent;
     getpwent;
     getsubopt;
     hasmntopt;
+    lutimes;
     mblen;
     pthread_getname_np;
     quotactl;
diff --git a/libc/libc.arm.map b/libc/libc.arm.map
index a1b2511..f6520b5 100644
--- a/libc/libc.arm.map
+++ b/libc/libc.arm.map
@@ -1273,11 +1273,14 @@
     catopen;
     endgrent;
     endpwent;
+    futimes;
+    futimesat;
     getdomainname;
     getgrent;
     getpwent;
     getsubopt;
     hasmntopt;
+    lutimes;
     mblen;
     pthread_getname_np;
     quotactl;
diff --git a/libc/libc.arm64.map b/libc/libc.arm64.map
index c853f73..603ac86 100644
--- a/libc/libc.arm64.map
+++ b/libc/libc.arm64.map
@@ -1196,11 +1196,14 @@
     catopen;
     endgrent;
     endpwent;
+    futimes;
+    futimesat;
     getdomainname;
     getgrent;
     getpwent;
     getsubopt;
     hasmntopt;
+    lutimes;
     mblen;
     pthread_getname_np;
     quotactl;
diff --git a/libc/libc.map.txt b/libc/libc.map.txt
index d893b8b..d2ad249 100644
--- a/libc/libc.map.txt
+++ b/libc/libc.map.txt
@@ -1298,11 +1298,14 @@
     catopen;
     endgrent;
     endpwent;
+    futimes;
+    futimesat;
     getdomainname;
     getgrent;
     getpwent;
     getsubopt;
     hasmntopt;
+    lutimes;
     mblen;
     pthread_getname_np;
     quotactl;
diff --git a/libc/libc.mips.brillo.map b/libc/libc.mips.brillo.map
index 56d4727..2cf5df0 100644
--- a/libc/libc.mips.brillo.map
+++ b/libc/libc.mips.brillo.map
@@ -1257,11 +1257,14 @@
     catopen;
     endgrent;
     endpwent;
+    futimes;
+    futimesat;
     getdomainname;
     getgrent;
     getpwent;
     getsubopt;
     hasmntopt;
+    lutimes;
     mblen;
     pthread_getname_np;
     quotactl;
diff --git a/libc/libc.mips.map b/libc/libc.mips.map
index 35c56cb..6c5ba9c 100644
--- a/libc/libc.mips.map
+++ b/libc/libc.mips.map
@@ -1257,11 +1257,14 @@
     catopen;
     endgrent;
     endpwent;
+    futimes;
+    futimesat;
     getdomainname;
     getgrent;
     getpwent;
     getsubopt;
     hasmntopt;
+    lutimes;
     mblen;
     pthread_getname_np;
     quotactl;
diff --git a/libc/libc.mips64.map b/libc/libc.mips64.map
index c853f73..603ac86 100644
--- a/libc/libc.mips64.map
+++ b/libc/libc.mips64.map
@@ -1196,11 +1196,14 @@
     catopen;
     endgrent;
     endpwent;
+    futimes;
+    futimesat;
     getdomainname;
     getgrent;
     getpwent;
     getsubopt;
     hasmntopt;
+    lutimes;
     mblen;
     pthread_getname_np;
     quotactl;
diff --git a/libc/libc.x86.brillo.map b/libc/libc.x86.brillo.map
index a58d2bc..1a254ae 100644
--- a/libc/libc.x86.brillo.map
+++ b/libc/libc.x86.brillo.map
@@ -1255,11 +1255,14 @@
     catopen;
     endgrent;
     endpwent;
+    futimes;
+    futimesat;
     getdomainname;
     getgrent;
     getpwent;
     getsubopt;
     hasmntopt;
+    lutimes;
     mblen;
     pthread_getname_np;
     quotactl;
diff --git a/libc/libc.x86.map b/libc/libc.x86.map
index 2fe730f..ca97c03 100644
--- a/libc/libc.x86.map
+++ b/libc/libc.x86.map
@@ -1255,11 +1255,14 @@
     catopen;
     endgrent;
     endpwent;
+    futimes;
+    futimesat;
     getdomainname;
     getgrent;
     getpwent;
     getsubopt;
     hasmntopt;
+    lutimes;
     mblen;
     pthread_getname_np;
     quotactl;
diff --git a/libc/libc.x86_64.map b/libc/libc.x86_64.map
index c853f73..603ac86 100644
--- a/libc/libc.x86_64.map
+++ b/libc/libc.x86_64.map
@@ -1196,11 +1196,14 @@
     catopen;
     endgrent;
     endpwent;
+    futimes;
+    futimesat;
     getdomainname;
     getgrent;
     getpwent;
     getsubopt;
     hasmntopt;
+    lutimes;
     mblen;
     pthread_getname_np;
     quotactl;
