aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/singlejar
diff options
context:
space:
mode:
authorGravatar Loo Rong Jie <loorongjie@gmail.com>2018-07-27 08:14:11 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-07-27 08:15:37 -0700
commitf0d57711d474d4b7ef4de2ee813f3c42e73bc162 (patch)
treec446d89e4a44c51393cc4a80e6e319fdf8392c7b /src/tools/singlejar
parent9d23d4da1038da55edb15ac8769087f9e737c047 (diff)
[singlejar] cleanup port library
/cc @laszlocsomor Closes #5655. PiperOrigin-RevId: 206319221
Diffstat (limited to 'src/tools/singlejar')
-rw-r--r--src/tools/singlejar/BUILD1
-rw-r--r--src/tools/singlejar/output_jar.h10
-rw-r--r--src/tools/singlejar/port.cc2
-rw-r--r--src/tools/singlejar/port.h19
4 files changed, 22 insertions, 10 deletions
diff --git a/src/tools/singlejar/BUILD b/src/tools/singlejar/BUILD
index edf806bd95..0caba91565 100644
--- a/src/tools/singlejar/BUILD
+++ b/src/tools/singlejar/BUILD
@@ -401,6 +401,7 @@ cc_library(
":input_jar",
":mapped_file",
":options",
+ ":port",
"//src/main/cpp/util",
"//third_party/zlib",
],
diff --git a/src/tools/singlejar/output_jar.h b/src/tools/singlejar/output_jar.h
index 3f66d4081e..c3b0ec5a53 100644
--- a/src/tools/singlejar/output_jar.h
+++ b/src/tools/singlejar/output_jar.h
@@ -24,15 +24,13 @@
#include <unordered_map>
#include <vector>
+// Must be included before <io.h> (on Windows) and <fcntl.h>.
+#include "src/tools/singlejar/port.h"
+// Need newline so clang-format won't alpha-sort with other headers.
+
#include "src/tools/singlejar/combiners.h"
#include "src/tools/singlejar/options.h"
-#if defined(__APPLE__)
-typedef off_t off64_t;
-#elif defined(_WIN32)
-typedef __int64 off64_t;
-#endif
-
/*
* Jar file we are writing.
*/
diff --git a/src/tools/singlejar/port.cc b/src/tools/singlejar/port.cc
index 298eea173e..3b096784a0 100644
--- a/src/tools/singlejar/port.cc
+++ b/src/tools/singlejar/port.cc
@@ -18,7 +18,7 @@
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
-#endif
+#endif // WIN32_LEAN_AND_MEAN
#include <windows.h>
ssize_t pread(int fd, void *buf, size_t count, off64_t offset) {
diff --git a/src/tools/singlejar/port.h b/src/tools/singlejar/port.h
index 8d244602d0..5e017397fa 100644
--- a/src/tools/singlejar/port.h
+++ b/src/tools/singlejar/port.h
@@ -21,11 +21,24 @@
#define _CRT_DECLARE_NONSTDC_NAMES 1
#include <fcntl.h>
#include <io.h>
+#endif // _WIN32
+
#include <stddef.h>
-#include <stdio.h>
+#include <sys/stat.h>
#include <sys/types.h>
#include <time.h>
+#if defined(__APPLE__)
+typedef off_t off64_t;
+#elif defined(_WIN32)
+typedef __int64 off64_t;
+#endif
+static_assert(sizeof(off64_t) == 8, "File offset type must be 64-bit");
+
+#ifdef _WIN32
+
+#define F_OK 0
+
#ifdef _WIN64
// MSVC by default defines stat and related functions to a version with 32-bit
// st_size even for Win64. We want 64-bit st_size instead so that we can handle
@@ -36,7 +49,7 @@
#define fstat _fstat64
#endif // _WIN64
-typedef ptrdiff ssize_t;
+typedef ptrdiff_t ssize_t;
// Various MSVC polyfills for POSIX functions.
@@ -52,4 +65,4 @@ ssize_t pread(int fd, void* buf, size_t count, off64_t offset);
#endif // _WIN32
-#endif // BAZEL_SRC_TOOLS_SINGLEJAR_PORT_H_
+#endif // BAZEL_SRC_TOOLS_SINGLEJAR_PORT_H_