Index: third_party/tcmalloc/vendor/src/base/sysinfo.cc |
diff --git a/third_party/tcmalloc/vendor/src/base/sysinfo.cc b/third_party/tcmalloc/vendor/src/base/sysinfo.cc |
index 5396743d70e717041aeb86b587d0136c48893c38..2559158b9db2585bb816e3019c429243eb7093ea 100644 |
--- a/third_party/tcmalloc/vendor/src/base/sysinfo.cc |
+++ b/third_party/tcmalloc/vendor/src/base/sysinfo.cc |
@@ -86,12 +86,20 @@ |
// time, so prefer making the syscalls directly if we can. |
#ifdef HAVE_SYS_SYSCALL_H |
# include <sys/syscall.h> |
+#endif |
+#ifdef SYS_open // solaris 11, at least sometimes, only defines SYS_openat |
# define safeopen(filename, mode) syscall(SYS_open, filename, mode) |
-# define saferead(fd, buffer, size) syscall(SYS_read, fd, buffer, size) |
-# define safeclose(fd) syscall(SYS_close, fd) |
#else |
# define safeopen(filename, mode) open(filename, mode) |
+#endif |
+#ifdef SYS_read |
+# define saferead(fd, buffer, size) syscall(SYS_read, fd, buffer, size) |
+#else |
# define saferead(fd, buffer, size) read(fd, buffer, size) |
+#endif |
+#ifdef SYS_close |
+# define safeclose(fd) syscall(SYS_close, fd) |
+#else |
# define safeclose(fd) close(fd) |
#endif |