Adding env target to tensorflow/core/platform/BUILD.

The rationale for this giant target is due to the following cycle in the build graph:
env -> file_system -> file_system_helper -> threadpool -> env

This CL also continues the refactoring started in previous commits of removing the posix/ subfolder, and merging its contents with the default/ subfolder.

PiperOrigin-RevId: 269439489
diff --git a/tensorflow/contrib/makefile/proto_text_cc_files.txt b/tensorflow/contrib/makefile/proto_text_cc_files.txt
index 5dbae8b..c07a979 100644
--- a/tensorflow/contrib/makefile/proto_text_cc_files.txt
+++ b/tensorflow/contrib/makefile/proto_text_cc_files.txt
@@ -33,11 +33,13 @@
 tensorflow/core/lib/strings/proto_text_util.cc
 tensorflow/core/lib/wav/wav_io.cc
 tensorflow/core/platform/cpu_info.cc
+tensorflow/core/platform/default/env.cc
 tensorflow/core/platform/default/env_time.cc
 tensorflow/core/platform/default/load_library.cc
 tensorflow/core/platform/default/logging.cc
 tensorflow/core/platform/default/mutex.cc
 tensorflow/core/platform/default/port.cc
+tensorflow/core/platform/default/posix_file_system.cc
 tensorflow/core/platform/default/tracing.cc
 tensorflow/core/platform/denormal.cc
 tensorflow/core/platform/env.cc
@@ -45,8 +47,6 @@
 tensorflow/core/platform/file_system.cc
 tensorflow/core/platform/file_system_helper.cc
 tensorflow/core/platform/numbers.cc
-tensorflow/core/platform/posix/env.cc
-tensorflow/core/platform/posix/posix_file_system.cc
 tensorflow/core/platform/protobuf.cc
 tensorflow/core/platform/protobuf_util.cc
 tensorflow/core/platform/scanner.cc
diff --git a/tensorflow/core/platform/BUILD b/tensorflow/core/platform/BUILD
index 900d4dc..2ba0bc6 100644
--- a/tensorflow/core/platform/BUILD
+++ b/tensorflow/core/platform/BUILD
@@ -56,6 +56,7 @@
     "cord",
     "cuda_libdevice_path",
     "dynamic_annotations",
+    "env",
     "env_time",
     "human_readable_json",
     "load_library",
@@ -178,6 +179,17 @@
 )
 
 cc_library(
+    name = "env",
+    textual_hdrs = [
+        "env.h",
+        "file_system.h",
+        "file_system_helper.h",
+        "threadpool.h",
+    ],
+    deps = tf_platform_helper_deps("env_impl"),
+)
+
+cc_library(
     name = "env_time",
     textual_hdrs = ["env_time.h"],
     deps = tf_platform_helper_deps("env_time_impl"),
diff --git a/tensorflow/core/platform/default/build_config.bzl b/tensorflow/core/platform/default/build_config.bzl
index 467dd3b..880df2c 100644
--- a/tensorflow/core/platform/default/build_config.bzl
+++ b/tensorflow/core/platform/default/build_config.bzl
@@ -491,6 +491,7 @@
         "posix/error.h",
     ], exclude = exclude + [
         "default/subprocess.h",
+        "default/posix_file_system.h",
     ])
     return select({
         "//tensorflow:windows": windows_hdrs,
@@ -506,10 +507,12 @@
         "windows/*.cc",
         "posix/error.cc",
     ], exclude = exclude + [
+        "default/env.cc",
         "default/env_time.cc",
         "default/load_library.cc",
         "default/net.cc",
         "default/port.cc",
+        "default/posix_file_system.cc",
         "default/subprocess.cc",
     ])
     return select({
diff --git a/tensorflow/core/platform/default/build_refactor.bzl b/tensorflow/core/platform/default/build_refactor.bzl
index 87e0b28..7ef5002 100644
--- a/tensorflow/core/platform/default/build_refactor.bzl
+++ b/tensorflow/core/platform/default/build_refactor.bzl
@@ -34,20 +34,6 @@
         "visibility": ["//visibility:private"],
         "tags": ["no_oss", "manual"],
     },
-    "env_time": {
-        "name": "env_time_impl",
-        "hdrs": [
-            "//tensorflow/core/platform:env_time.h",
-        ],
-        "srcs": [
-            "//tensorflow/core/platform:default/env_time.cc",
-        ],
-        "deps": [
-            "//tensorflow/core/platform:types",
-        ],
-        "visibility": ["//visibility:private"],
-        "tags": ["no_oss", "manual"],
-    },
     "cuda_libdevice_path": {
         "name": "cuda_libdevice_path_impl",
         "hdrs": [
@@ -72,6 +58,70 @@
         "visibility": ["//visibility:private"],
         "tags": ["no_oss", "manual"],
     },
+    "env": {
+        "name": "env_impl",
+        "hdrs": [
+            "//tensorflow/core/platform:env.h",
+            "//tensorflow/core/platform:file_system.h",
+            "//tensorflow/core/platform:file_system_helper.h",
+            "//tensorflow/core/platform:threadpool.h",
+        ],
+        "srcs": [
+            "//tensorflow/core/platform:env.cc",
+            "//tensorflow/core/platform:file_system_helper.cc",
+            "//tensorflow/core/platform:threadpool.cc",
+            "//tensorflow/core/platform:default/env.cc",
+            "//tensorflow/core/platform:default/posix_file_system.h",
+            "//tensorflow/core/platform:default/posix_file_system.cc",
+        ],
+        "deps": [
+            "@com_google_absl//absl/time",
+            "@com_google_absl//absl/types:optional",
+            "//third_party/eigen3",
+            "//tensorflow/core/lib/core:blocking_counter",
+            "//tensorflow/core/lib/core:error_codes_proto_cc",
+            "//tensorflow/core/lib/core:errors",
+            "//tensorflow/core/lib/core:status",
+            "//tensorflow/core/lib/core:stringpiece",
+            "//tensorflow/core/lib/gtl:stl_util",
+            "//tensorflow/core/lib/io:path",
+            "//tensorflow/core/lib/strings:string_utils",
+            "//tensorflow/core/lib/strings:stringprintf",
+            "//tensorflow/core/platform",
+            "//tensorflow/core/platform:context",
+            "//tensorflow/core/platform:cord",
+            "//tensorflow/core/platform:denormal",
+            "//tensorflow/core/platform:error",
+            "//tensorflow/core/platform:env_time",
+            "//tensorflow/core/platform:file_statistics",
+            "//tensorflow/core/platform:load_library",
+            "//tensorflow/core/platform:logging",
+            "//tensorflow/core/platform:macros",
+            "//tensorflow/core/platform:mutex",
+            "//tensorflow/core/platform:platform_port",
+            "//tensorflow/core/platform:protobuf",
+            "//tensorflow/core/platform:setround",
+            "//tensorflow/core/platform:threadpool_interface",
+            "//tensorflow/core/platform:tracing",
+            "//tensorflow/core/platform:types",
+        ],
+        "visibility": ["//visibility:private"],
+        "tags": ["no_oss", "manual"],
+    },
+    "env_time": {
+        "name": "env_time_impl",
+        "hdrs": [
+            "//tensorflow/core/platform:env_time.h",
+        ],
+        "srcs": [
+            "//tensorflow/core/platform:default/env_time.cc",
+        ],
+        "deps": [
+            "//tensorflow/core/platform:types",
+        ],
+        "visibility": ["//visibility:private"],
+        "tags": ["no_oss", "manual"],
+    },
     "human_readable_json": {
         "name": "human_readable_json_impl",
         "hdrs": [
@@ -232,6 +282,57 @@
 }
 
 TF_WINDOWS_PLATFORM_LIBRARIES = {
+    "env": {
+        "name": "windows_env_impl",
+        "hdrs": [
+            "//tensorflow/core/platform:env.h",
+            "//tensorflow/core/platform:file_system.h",
+            "//tensorflow/core/platform:file_system_helper.h",
+            "//tensorflow/core/platform:threadpool.h",
+        ],
+        "srcs": [
+            "//tensorflow/core/platform:env.cc",
+            "//tensorflow/core/platform:file_system_helper.cc",
+            "//tensorflow/core/platform:threadpool.cc",
+            "//tensorflow/core/platform:windows/env.cc",
+            "//tensorflow/core/platform:windows/windows_file_system.h",
+            "//tensorflow/core/platform:windows/windows_file_system.cc",
+        ],
+        "deps": [
+            "@com_google_absl//absl/time",
+            "@com_google_absl//absl/types:optional",
+            "//third_party/eigen3",
+            "//tensorflow/core/lib/core:blocking_counter",
+            "//tensorflow/core/lib/core:error_codes_proto_cc",
+            "//tensorflow/core/lib/core:errors",
+            "//tensorflow/core/lib/core:status",
+            "//tensorflow/core/lib/core:stringpiece",
+            "//tensorflow/core/lib/gtl:stl_util",
+            "//tensorflow/core/lib/io:path",
+            "//tensorflow/core/lib/strings:string_utils",
+            "//tensorflow/core/lib/strings:stringprintf",
+            "//tensorflow/core/platform",
+            "//tensorflow/core/platform:context",
+            "//tensorflow/core/platform:cord",
+            "//tensorflow/core/platform:denormal",
+            "//tensorflow/core/platform:error",
+            "//tensorflow/core/platform:env_time",
+            "//tensorflow/core/platform:file_statistics",
+            "//tensorflow/core/platform:load_library",
+            "//tensorflow/core/platform:logging",
+            "//tensorflow/core/platform:macros",
+            "//tensorflow/core/platform:mutex",
+            "//tensorflow/core/platform:platform_port",
+            "//tensorflow/core/platform:protobuf",
+            "//tensorflow/core/platform:setround",
+            "//tensorflow/core/platform:threadpool_interface",
+            "//tensorflow/core/platform:tracing",
+            "//tensorflow/core/platform:types",
+            "//tensorflow/core/platform:windows_wide_char_impl",
+        ],
+        "visibility": ["//visibility:private"],
+        "tags": ["no_oss", "manual"],
+    },
     "env_time": {
         "name": "windows_env_time_impl",
         "hdrs": [
diff --git a/tensorflow/core/platform/posix/env.cc b/tensorflow/core/platform/default/env.cc
similarity index 98%
rename from tensorflow/core/platform/posix/env.cc
rename to tensorflow/core/platform/default/env.cc
index ba2a979..b025e9c 100644
--- a/tensorflow/core/platform/posix/env.cc
+++ b/tensorflow/core/platform/default/env.cc
@@ -33,11 +33,11 @@
 #include <vector>
 
 #include "tensorflow/core/lib/core/error_codes.pb.h"
+#include "tensorflow/core/platform/default/posix_file_system.h"
 #include "tensorflow/core/platform/env.h"
 #include "tensorflow/core/platform/load_library.h"
 #include "tensorflow/core/platform/logging.h"
 #include "tensorflow/core/platform/mutex.h"
-#include "tensorflow/core/platform/posix/posix_file_system.h"
 
 namespace tensorflow {
 
diff --git a/tensorflow/core/platform/posix/posix_file_system.cc b/tensorflow/core/platform/default/posix_file_system.cc
similarity index 99%
rename from tensorflow/core/platform/posix/posix_file_system.cc
rename to tensorflow/core/platform/default/posix_file_system.cc
index c99f655..2c3512a 100644
--- a/tensorflow/core/platform/posix/posix_file_system.cc
+++ b/tensorflow/core/platform/default/posix_file_system.cc
@@ -31,11 +31,11 @@
 #include "tensorflow/core/lib/core/error_codes.pb.h"
 #include "tensorflow/core/lib/core/status.h"
 #include "tensorflow/core/lib/strings/strcat.h"
+#include "tensorflow/core/platform/default/posix_file_system.h"
 #include "tensorflow/core/platform/env.h"
 #include "tensorflow/core/platform/error.h"
 #include "tensorflow/core/platform/file_system_helper.h"
 #include "tensorflow/core/platform/logging.h"
-#include "tensorflow/core/platform/posix/posix_file_system.h"
 
 namespace tensorflow {
 
diff --git a/tensorflow/core/platform/posix/posix_file_system.h b/tensorflow/core/platform/default/posix_file_system.h
similarity index 100%
rename from tensorflow/core/platform/posix/posix_file_system.h
rename to tensorflow/core/platform/default/posix_file_system.h
diff --git a/tensorflow/core/platform/env.cc b/tensorflow/core/platform/env.cc
index c38d0be..495f1ad 100644
--- a/tensorflow/core/platform/env.cc
+++ b/tensorflow/core/platform/env.cc
@@ -13,10 +13,22 @@
 limitations under the License.
 ==============================================================================*/
 
+#include "tensorflow/core/platform/env.h"
+
 #include <sys/stat.h>
+
 #include <deque>
 #include <utility>
 #include <vector>
+
+#include "tensorflow/core/lib/core/errors.h"
+#include "tensorflow/core/lib/io/path.h"
+#include "tensorflow/core/lib/strings/stringprintf.h"
+#include "tensorflow/core/platform/env_time.h"
+#include "tensorflow/core/platform/host_info.h"
+#include "tensorflow/core/platform/platform.h"
+#include "tensorflow/core/platform/protobuf.h"
+
 #if defined(__APPLE__)
 #include <mach-o/dyld.h>
 #endif
@@ -25,6 +37,8 @@
 #endif
 #if defined(PLATFORM_WINDOWS)
 #include <windows.h>
+#undef DeleteFile
+#undef CopyFile
 #include "tensorflow/core/platform/windows/wide_char.h"
 #define PATH_MAX MAX_PATH
 #else
@@ -34,14 +48,6 @@
 #include <unistd.h>
 #endif
 
-#include "tensorflow/core/lib/core/errors.h"
-#include "tensorflow/core/lib/io/path.h"
-#include "tensorflow/core/lib/strings/stringprintf.h"
-#include "tensorflow/core/platform/env.h"
-#include "tensorflow/core/platform/env_time.h"
-#include "tensorflow/core/platform/host_info.h"
-#include "tensorflow/core/platform/protobuf.h"
-
 namespace tensorflow {
 
 // 128KB copy buffer
diff --git a/tensorflow/core/platform/env.h b/tensorflow/core/platform/env.h
index f7a91c7..39f5fc5 100644
--- a/tensorflow/core/platform/env.h
+++ b/tensorflow/core/platform/env.h
@@ -17,10 +17,12 @@
 #define TENSORFLOW_CORE_PLATFORM_ENV_H_
 
 #include <stdint.h>
+
 #include <memory>
 #include <string>
 #include <unordered_map>
 #include <vector>
+
 #include "tensorflow/core/lib/core/errors.h"
 #include "tensorflow/core/lib/core/status.h"
 #include "tensorflow/core/lib/core/stringpiece.h"
@@ -29,6 +31,7 @@
 #include "tensorflow/core/platform/macros.h"
 #include "tensorflow/core/platform/mutex.h"
 #include "tensorflow/core/platform/numa.h"
+#include "tensorflow/core/platform/platform.h"
 #include "tensorflow/core/platform/protobuf.h"
 #include "tensorflow/core/platform/types.h"
 
diff --git a/tensorflow/core/platform/file_system_helper.cc b/tensorflow/core/platform/file_system_helper.cc
index 0c4c9aa..5ec3971 100644
--- a/tensorflow/core/platform/file_system_helper.cc
+++ b/tensorflow/core/platform/file_system_helper.cc
@@ -20,12 +20,12 @@
 #include <vector>
 
 #include "tensorflow/core/lib/core/status.h"
-#include "tensorflow/core/lib/core/threadpool.h"
 #include "tensorflow/core/lib/io/path.h"
 #include "tensorflow/core/lib/strings/str_util.h"
 #include "tensorflow/core/platform/env.h"
 #include "tensorflow/core/platform/file_system.h"
 #include "tensorflow/core/platform/platform.h"
+#include "tensorflow/core/platform/threadpool.h"
 
 namespace tensorflow {
 namespace internal {
diff --git a/tensorflow/core/platform/windows/windows_file_system.h b/tensorflow/core/platform/windows/windows_file_system.h
index 1f4c535..255f6d5 100644
--- a/tensorflow/core/platform/windows/windows_file_system.h
+++ b/tensorflow/core/platform/windows/windows_file_system.h
@@ -18,6 +18,7 @@
 
 #include "tensorflow/core/lib/io/path.h"
 #include "tensorflow/core/platform/file_system.h"
+#include "tensorflow/core/platform/platform.h"
 
 #ifdef PLATFORM_WINDOWS
 #undef DeleteFile