aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--configure.py2
-rw-r--r--tensorflow/contrib/BUILD6
-rw-r--r--tensorflow/contrib/__init__.py5
-rw-r--r--tensorflow/contrib/boosted_trees/lib/utils/batch_features.h6
-rw-r--r--tensorflow/contrib/distributions/BUILD2
-rw-r--r--tensorflow/contrib/eager/python/BUILD1
-rw-r--r--tensorflow/contrib/eager/python/examples/linear_regression/BUILD1
-rw-r--r--tensorflow/contrib/gan/BUILD1
-rw-r--r--tensorflow/contrib/kfac/python/kernel_tests/BUILD1
-rw-r--r--tensorflow/contrib/labeled_tensor/BUILD1
-rw-r--r--tensorflow/contrib/layers/BUILD2
-rw-r--r--tensorflow/contrib/learn/BUILD5
-rw-r--r--tensorflow/contrib/lookup/BUILD1
-rw-r--r--tensorflow/contrib/py2tf/converters/BUILD2
-rw-r--r--tensorflow/contrib/py2tf/utils/BUILD1
-rw-r--r--tensorflow/contrib/remote_fused_graph/pylib/BUILD1
-rw-r--r--tensorflow/contrib/saved_model/BUILD1
-rw-r--r--tensorflow/contrib/session_bundle/BUILD1
-rw-r--r--tensorflow/contrib/slim/python/slim/data/BUILD1
-rw-r--r--tensorflow/contrib/tensor_forest/BUILD1
-rw-r--r--tensorflow/contrib/tensorboard/BUILD1
-rw-r--r--tensorflow/contrib/timeseries/examples/BUILD5
-rw-r--r--tensorflow/contrib/timeseries/python/timeseries/BUILD5
-rw-r--r--tensorflow/contrib/timeseries/python/timeseries/state_space_models/BUILD1
-rw-r--r--tensorflow/contrib/tpu/BUILD1
-rw-r--r--tensorflow/contrib/util/loader.py7
-rw-r--r--tensorflow/core/framework/dataset.h4
-rw-r--r--tensorflow/core/lib/core/stringpiece.cc2
-rw-r--r--tensorflow/core/lib/core/stringpiece.h2
-rw-r--r--tensorflow/core/platform/tracing.h2
-rw-r--r--tensorflow/python/BUILD94
-rw-r--r--tensorflow/python/debug/BUILD1
-rwxr-xr-xtensorflow/python/keras/BUILD5
-rw-r--r--tensorflow/python/kernel_tests/BUILD4
-rw-r--r--tensorflow/tensorflow.bzl20
-rw-r--r--tensorflow/tools/ci_build/windows/cpu/pip/build_tf_windows.sh3
-rw-r--r--tensorflow/tools/def_file_filter/BUILD0
-rw-r--r--tensorflow/tools/def_file_filter/BUILD.tpl15
-rw-r--r--tensorflow/tools/def_file_filter/def_file_filter.py.tpl168
-rw-r--r--tensorflow/tools/def_file_filter/def_file_filter_configure.bzl56
-rw-r--r--tensorflow/tools/pip_package/BUILD128
-rw-r--r--tensorflow/workspace.bzl8
42 files changed, 450 insertions, 124 deletions
diff --git a/configure.py b/configure.py
index 97f46757ee..8e3f055991 100644
--- a/configure.py
+++ b/configure.py
@@ -1377,7 +1377,7 @@ def main():
# environment variables.
environ_cp = dict(os.environ)
- check_bazel_version('0.5.4')
+ check_bazel_version('0.10.0')
reset_tf_configure_bazelrc(args.workspace)
cleanup_makefile()
diff --git a/tensorflow/contrib/BUILD b/tensorflow/contrib/BUILD
index bab37e8906..07d7fa64cc 100644
--- a/tensorflow/contrib/BUILD
+++ b/tensorflow/contrib/BUILD
@@ -8,6 +8,7 @@ package(default_visibility = ["//tensorflow:__subpackages__"])
load("//third_party/mpi:mpi.bzl", "if_mpi")
load("@local_config_cuda//cuda:build_defs.bzl", "if_cuda")
load("@local_config_tensorrt//:build_defs.bzl", "if_tensorrt")
+load("//tensorflow:tensorflow.bzl", "if_not_windows")
py_library(
name = "contrib_py",
@@ -39,7 +40,6 @@ py_library(
"//tensorflow/contrib/estimator:estimator_py",
"//tensorflow/contrib/factorization:factorization_py",
"//tensorflow/contrib/feature_column:feature_column_py",
- "//tensorflow/contrib/ffmpeg:ffmpeg_ops_py",
"//tensorflow/contrib/framework:framework_py",
"//tensorflow/contrib/fused_conv:fused_conv_py",
"//tensorflow/contrib/gan",
@@ -63,7 +63,6 @@ py_library(
"//tensorflow/contrib/linalg:linalg_py",
"//tensorflow/contrib/linear_optimizer:sdca_estimator_py",
"//tensorflow/contrib/linear_optimizer:sdca_ops_py",
- "//tensorflow/contrib/lite/python:lite",
"//tensorflow/contrib/lookup:lookup_py",
"//tensorflow/contrib/losses:losses_py",
"//tensorflow/contrib/losses:metric_learning_py",
@@ -110,6 +109,9 @@ py_library(
"//tensorflow/python:util",
] + if_mpi(["//tensorflow/contrib/mpi_collectives:mpi_collectives_py"]) + if_tensorrt([
"//tensorflow/contrib/tensorrt:init_py",
+ ]) + if_not_windows([
+ "//tensorflow/contrib/ffmpeg:ffmpeg_ops_py", # unix dependency, need to fix code
+ "//tensorflow/contrib/lite/python:lite", # unix dependency, need to fix code
]),
)
diff --git a/tensorflow/contrib/__init__.py b/tensorflow/contrib/__init__.py
index 4f6f539027..bcf0d7b48b 100644
--- a/tensorflow/contrib/__init__.py
+++ b/tensorflow/contrib/__init__.py
@@ -18,6 +18,8 @@ from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
+import os
+
# Add projects here, they will show up under tf.contrib.
from tensorflow.contrib import batching
from tensorflow.contrib import bayesflow
@@ -83,7 +85,8 @@ from tensorflow.contrib import tpu
from tensorflow.contrib import training
from tensorflow.contrib import util
from tensorflow.contrib.eager.python import tfe as eager
-from tensorflow.contrib.lite.python import lite
+if os.name != 'nt':
+ from tensorflow.contrib.lite.python import lite
from tensorflow.contrib.receptive_field import receptive_field_api as receptive_field
from tensorflow.contrib.remote_fused_graph import pylib as remote_fused_graph
from tensorflow.contrib.specs import python as specs
diff --git a/tensorflow/contrib/boosted_trees/lib/utils/batch_features.h b/tensorflow/contrib/boosted_trees/lib/utils/batch_features.h
index da5e744851..7815fa049a 100644
--- a/tensorflow/contrib/boosted_trees/lib/utils/batch_features.h
+++ b/tensorflow/contrib/boosted_trees/lib/utils/batch_features.h
@@ -48,9 +48,9 @@ class BatchFeatures {
Status GetFeatureColumnSizes(int64* const num_dense_float_features,
int64* const num_sparse_float_features,
int64* const num_sparse_int_features) const {
- QCHECK_NE(num_dense_float_features, nullptr);
- QCHECK_NE(num_sparse_float_features, nullptr);
- QCHECK_NE(num_sparse_int_features, nullptr);
+ QCHECK_NE(num_dense_float_features, (int64*) nullptr);
+ QCHECK_NE(num_sparse_float_features, (int64*) nullptr);
+ QCHECK_NE(num_sparse_int_features, (int64*) nullptr);
*num_dense_float_features = dense_float_feature_columns_.size();
*num_sparse_float_features = sparse_float_feature_columns_.size();
*num_sparse_int_features = sparse_int_feature_columns_.size();
diff --git a/tensorflow/contrib/distributions/BUILD b/tensorflow/contrib/distributions/BUILD
index 1b4877c57f..b79ad63559 100644
--- a/tensorflow/contrib/distributions/BUILD
+++ b/tensorflow/contrib/distributions/BUILD
@@ -453,6 +453,7 @@ cuda_py_test(
"//tensorflow/python:framework_test_lib",
"//tensorflow/python:platform_test",
],
+ tags = ["no_windows"], # TODO: needs investigation on Windows
)
cuda_py_test(
@@ -1102,6 +1103,7 @@ cuda_py_test(
"//tensorflow/python:math_ops",
"//tensorflow/python:platform_test",
],
+ tags = ["no_windows"], # TODO: needs investigation on Windows
)
cuda_py_test(
diff --git a/tensorflow/contrib/eager/python/BUILD b/tensorflow/contrib/eager/python/BUILD
index 7fde53476d..3ca12e2522 100644
--- a/tensorflow/contrib/eager/python/BUILD
+++ b/tensorflow/contrib/eager/python/BUILD
@@ -266,6 +266,7 @@ cuda_py_test(
"//tensorflow/python/eager:test",
"//tensorflow/python/keras",
],
+ tags = ["no_windows"], # TODO: needs investigation on Windows
)
filegroup(
diff --git a/tensorflow/contrib/eager/python/examples/linear_regression/BUILD b/tensorflow/contrib/eager/python/examples/linear_regression/BUILD
index f86331af6f..2f6cfdf31e 100644
--- a/tensorflow/contrib/eager/python/examples/linear_regression/BUILD
+++ b/tensorflow/contrib/eager/python/examples/linear_regression/BUILD
@@ -22,6 +22,7 @@ cuda_py_test(
":linear_regression",
"//tensorflow:tensorflow_py",
],
+ tags = ["no_windows"], # TODO: needs investigation on Windows
)
cuda_py_test(
diff --git a/tensorflow/contrib/gan/BUILD b/tensorflow/contrib/gan/BUILD
index 0eb0e3cbe2..ff6f3b7441 100644
--- a/tensorflow/contrib/gan/BUILD
+++ b/tensorflow/contrib/gan/BUILD
@@ -354,6 +354,7 @@ py_test(
name = "classifier_metrics_test",
srcs = ["python/eval/python/classifier_metrics_test.py"],
srcs_version = "PY2AND3",
+ tags = ["no_windows"], # TODO: needs investigation on Windows
deps = [
":classifier_metrics",
"//tensorflow/core:protos_all_py",
diff --git a/tensorflow/contrib/kfac/python/kernel_tests/BUILD b/tensorflow/contrib/kfac/python/kernel_tests/BUILD
index f4ed978174..b0b1314d45 100644
--- a/tensorflow/contrib/kfac/python/kernel_tests/BUILD
+++ b/tensorflow/contrib/kfac/python/kernel_tests/BUILD
@@ -113,6 +113,7 @@ py_test(
name = "utils_test",
srcs = ["utils_test.py"],
srcs_version = "PY2AND3",
+ tags = ["no_windows"], # TODO: needs investigation on Windows
deps = [
"//tensorflow/contrib/kfac/python/ops:utils",
"//tensorflow/contrib/tpu",
diff --git a/tensorflow/contrib/labeled_tensor/BUILD b/tensorflow/contrib/labeled_tensor/BUILD
index 894e6f6946..544065dac6 100644
--- a/tensorflow/contrib/labeled_tensor/BUILD
+++ b/tensorflow/contrib/labeled_tensor/BUILD
@@ -70,6 +70,7 @@ py_test(
"python/ops/core_test.py",
],
srcs_version = "PY2AND3",
+ tags = ["no_windows"], # TODO: needs investigation on Windows
deps = [
":_typecheck",
":core",
diff --git a/tensorflow/contrib/layers/BUILD b/tensorflow/contrib/layers/BUILD
index 852d06e1e3..cc7bbabf21 100644
--- a/tensorflow/contrib/layers/BUILD
+++ b/tensorflow/contrib/layers/BUILD
@@ -188,6 +188,7 @@ py_test(
size = "small",
srcs = ["python/layers/normalization_test.py"],
srcs_version = "PY2AND3",
+ tags = ["no_windows"], # TODO: needs investigation on Windows
deps = [
":layers_py",
"//tensorflow/contrib/framework:framework_py",
@@ -353,6 +354,7 @@ py_test(
size = "small",
srcs = ["python/ops/sparse_ops_test.py"],
srcs_version = "PY2AND3",
+ tags = ["no_windows"], # TODO: needs investigation on Windows
deps = [
":layers_py",
"//tensorflow/python:array_ops",
diff --git a/tensorflow/contrib/learn/BUILD b/tensorflow/contrib/learn/BUILD
index abf6e393bb..ccb7d81b49 100644
--- a/tensorflow/contrib/learn/BUILD
+++ b/tensorflow/contrib/learn/BUILD
@@ -115,6 +115,7 @@ py_test(
size = "small",
srcs = ["python/learn/learn_io/data_feeder_test.py"],
srcs_version = "PY2AND3",
+ tags = ["no_windows"], # TODO: needs investigation on Windows
deps = [
":learn",
"//tensorflow/python:client_testlib",
@@ -170,6 +171,7 @@ tf_py_test(
"//tensorflow/python:variables",
"//tensorflow/python/estimator",
],
+ tags = ["no_windows"], # TODO: needs investigation on Windows
)
py_test(
@@ -188,6 +190,7 @@ py_test(
size = "small",
srcs = ["python/learn/graph_actions_test.py"],
srcs_version = "PY2AND3",
+ tags = ["no_windows"], # TODO: needs investigation on Windows
deps = [
":learn",
"//tensorflow/contrib/framework:framework_py",
@@ -584,6 +587,7 @@ py_test(
size = "small",
srcs = ["python/learn/learn_io/io_test.py"],
srcs_version = "PY2AND3",
+ tags = ["no_windows"], # TODO: needs investigation on Windows
deps = [
":learn",
"//tensorflow/contrib/learn/python/learn/datasets",
@@ -813,6 +817,7 @@ py_test(
size = "small",
srcs = ["python/learn/utils/saved_model_export_utils_test.py"],
srcs_version = "PY2AND3",
+ tags = ["no_windows"], # TODO: needs investigation on Windows
deps = [
":learn",
"//tensorflow/contrib/layers:layers_py",
diff --git a/tensorflow/contrib/lookup/BUILD b/tensorflow/contrib/lookup/BUILD
index 8ca03f4193..0a6edc33c5 100644
--- a/tensorflow/contrib/lookup/BUILD
+++ b/tensorflow/contrib/lookup/BUILD
@@ -46,6 +46,7 @@ tf_py_test(
"//tensorflow/python:variables",
],
grpc_enabled = True,
+ tags = ["no_windows"], # TODO: needs investigation on Windows
)
filegroup(
diff --git a/tensorflow/contrib/py2tf/converters/BUILD b/tensorflow/contrib/py2tf/converters/BUILD
index 78f46bc05f..848822f9b1 100644
--- a/tensorflow/contrib/py2tf/converters/BUILD
+++ b/tensorflow/contrib/py2tf/converters/BUILD
@@ -78,6 +78,7 @@ py_test(
name = "builtin_functions_test",
srcs = ["builtin_functions_test.py"],
srcs_version = "PY2AND3",
+ tags = ["no_windows"], # TODO: needs investigation on Windows
deps = [
":test_lib",
"//tensorflow/python:client_testlib",
@@ -88,6 +89,7 @@ py_test(
name = "call_trees_test",
srcs = ["call_trees_test.py"],
srcs_version = "PY2AND3",
+ tags = ["no_windows"], # TODO: needs investigation on Windows
deps = [
":test_lib",
"//tensorflow/contrib/py2tf/impl",
diff --git a/tensorflow/contrib/py2tf/utils/BUILD b/tensorflow/contrib/py2tf/utils/BUILD
index 63261d5043..8a7cfeaa2b 100644
--- a/tensorflow/contrib/py2tf/utils/BUILD
+++ b/tensorflow/contrib/py2tf/utils/BUILD
@@ -71,6 +71,7 @@ py_test(
name = "py_func_test",
srcs = ["py_func_test.py"],
srcs_version = "PY2AND3",
+ tags = ["no_windows"], # TODO: needs investigation on Windows
deps = [
":utils",
"//tensorflow/python:client_testlib",
diff --git a/tensorflow/contrib/remote_fused_graph/pylib/BUILD b/tensorflow/contrib/remote_fused_graph/pylib/BUILD
index 27f0a7f58f..54c66271cd 100644
--- a/tensorflow/contrib/remote_fused_graph/pylib/BUILD
+++ b/tensorflow/contrib/remote_fused_graph/pylib/BUILD
@@ -38,7 +38,6 @@ py_test(
size = "small",
srcs = ["python/ops/remote_fused_graph_ops_test.py"],
srcs_version = "PY2AND3",
- tags = ["no_windows"],
deps = [
":remote_fused_graph_ops_py",
"//tensorflow/core:protos_all_py",
diff --git a/tensorflow/contrib/saved_model/BUILD b/tensorflow/contrib/saved_model/BUILD
index 245fe07f2b..b10757df47 100644
--- a/tensorflow/contrib/saved_model/BUILD
+++ b/tensorflow/contrib/saved_model/BUILD
@@ -53,6 +53,7 @@ py_test(
size = "small",
srcs = ["python/saved_model/reader_test.py"],
srcs_version = "PY2AND3",
+ tags = ["no_windows"], # TODO: needs investigation on Windows
visibility = ["//visibility:private"],
deps = [
":saved_model_py",
diff --git a/tensorflow/contrib/session_bundle/BUILD b/tensorflow/contrib/session_bundle/BUILD
index 67011c8fef..3ad88a8a22 100644
--- a/tensorflow/contrib/session_bundle/BUILD
+++ b/tensorflow/contrib/session_bundle/BUILD
@@ -165,6 +165,7 @@ py_test(
name = "gc_test",
srcs = ["gc_test.py"],
srcs_version = "PY2AND3",
+ tags = ["no_windows"], # TODO: needs investigation on Windows
visibility = ["//visibility:private"],
deps = [
":gc",
diff --git a/tensorflow/contrib/slim/python/slim/data/BUILD b/tensorflow/contrib/slim/python/slim/data/BUILD
index 5daabbd62e..7aa1684839 100644
--- a/tensorflow/contrib/slim/python/slim/data/BUILD
+++ b/tensorflow/contrib/slim/python/slim/data/BUILD
@@ -61,6 +61,7 @@ py_test(
name = "dataset_data_provider_test",
srcs = ["dataset_data_provider_test.py"],
srcs_version = "PY2AND3",
+ tags = ["no_windows"], # TODO: needs investigation on Windows
deps = [
":dataset",
":dataset_data_provider",
diff --git a/tensorflow/contrib/tensor_forest/BUILD b/tensorflow/contrib/tensor_forest/BUILD
index 1e4cc3f095..07b6b1f142 100644
--- a/tensorflow/contrib/tensor_forest/BUILD
+++ b/tensorflow/contrib/tensor_forest/BUILD
@@ -553,7 +553,6 @@ py_test(
srcs = ["client/random_forest_test.py"],
srcs_version = "PY2AND3",
tags = [
- "no_windows",
"nomac", # b/63258195
"notsan",
],
diff --git a/tensorflow/contrib/tensorboard/BUILD b/tensorflow/contrib/tensorboard/BUILD
index 2e0a46ffe4..1e7dd79ae7 100644
--- a/tensorflow/contrib/tensorboard/BUILD
+++ b/tensorflow/contrib/tensorboard/BUILD
@@ -9,6 +9,7 @@ exports_files(["LICENSE"])
# For platform specific build config
load("//tensorflow/core:platform/default/build_config.bzl", "tf_proto_library")
+load("//tensorflow:tensorflow.bzl", "py_test")
tf_proto_library(
name = "protos_all",
diff --git a/tensorflow/contrib/timeseries/examples/BUILD b/tensorflow/contrib/timeseries/examples/BUILD
index bb86ecb220..70bf67c779 100644
--- a/tensorflow/contrib/timeseries/examples/BUILD
+++ b/tensorflow/contrib/timeseries/examples/BUILD
@@ -25,7 +25,10 @@ py_test(
srcs = ["predict_test.py"],
data = ["data/period_trend.csv"],
srcs_version = "PY2AND3",
- tags = ["notsan"], # b/67513579
+ tags = [
+ "no_windows", # TODO: needs investigation on Windows
+ "notsan", # b/67513579
+ ],
deps = [
":predict",
"//tensorflow/python:client_testlib",
diff --git a/tensorflow/contrib/timeseries/python/timeseries/BUILD b/tensorflow/contrib/timeseries/python/timeseries/BUILD
index ed3ed4c0e1..64f5cd8357 100644
--- a/tensorflow/contrib/timeseries/python/timeseries/BUILD
+++ b/tensorflow/contrib/timeseries/python/timeseries/BUILD
@@ -156,9 +156,7 @@ py_test(
"head_test.py",
],
srcs_version = "PY2AND3",
- tags = [
- "no_pip_gpu", # b/63391119
- ],
+ tags = ["no_pip_gpu"], # b/63391119
deps = [
":feature_keys",
":head",
@@ -427,6 +425,7 @@ py_test(
srcs_version = "PY2AND3",
tags = [
"no_pip_gpu", # b/63391119
+ "no_windows", # TODO: needs investigation on Windows
],
deps = [
":feature_keys",
diff --git a/tensorflow/contrib/timeseries/python/timeseries/state_space_models/BUILD b/tensorflow/contrib/timeseries/python/timeseries/state_space_models/BUILD
index c86d06e923..07df7bc9a5 100644
--- a/tensorflow/contrib/timeseries/python/timeseries/state_space_models/BUILD
+++ b/tensorflow/contrib/timeseries/python/timeseries/state_space_models/BUILD
@@ -40,6 +40,7 @@ py_test(
timeout = "long", # Moderate but for asan
srcs = ["state_space_model_test.py"],
srcs_version = "PY2AND3",
+ tags = ["no_windows"], # TODO: needs investigation on Windows
deps = [
":state_space_model",
"//tensorflow/contrib/layers:layers_py",
diff --git a/tensorflow/contrib/tpu/BUILD b/tensorflow/contrib/tpu/BUILD
index 095b4821f1..706b3ad0fa 100644
--- a/tensorflow/contrib/tpu/BUILD
+++ b/tensorflow/contrib/tpu/BUILD
@@ -220,6 +220,7 @@ tf_py_test(
"//tensorflow/python:framework",
"//tensorflow/python:layers",
],
+ tags = ["no_windows"], # TODO: needs investigation on Windows
)
tf_py_test(
diff --git a/tensorflow/contrib/util/loader.py b/tensorflow/contrib/util/loader.py
index f4283cd9ed..dca01d26f4 100644
--- a/tensorflow/contrib/util/loader.py
+++ b/tensorflow/contrib/util/loader.py
@@ -42,9 +42,10 @@ def load_op_library(path):
plugin.
"""
if os.name == 'nt':
- # To avoid makeing every user_ops aware of windows, re-write
- # the file extension from .so to .dll.
- path = re.sub(r'\.so$', '.dll', path)
+ # To avoid making every user_ops aware of windows, re-write
+ # the file extension from .so to .dll if .so file doesn't exist.
+ if not os.path.exists(path):
+ path = re.sub(r'\.so$', '.dll', path)
# Currently we have only some user_ops as dlls on windows - don't try
# to load them if the dll is not found.
diff --git a/tensorflow/core/framework/dataset.h b/tensorflow/core/framework/dataset.h
index 6ab23d92a4..27d68dd45f 100644
--- a/tensorflow/core/framework/dataset.h
+++ b/tensorflow/core/framework/dataset.h
@@ -466,11 +466,11 @@ class GraphDatasetBase : public DatasetBase {
}
// Key for storing the Dataset graph in the serialized format.
- static const char kDatasetGraphKey[];
+ TF_EXPORT static const char kDatasetGraphKey[];
// Key for storing the output node of the Dataset graph in the serialized
// format.
- static const char kDatasetGraphOutputNodeKey[];
+ TF_EXPORT static const char kDatasetGraphOutputNodeKey[];
private:
Status Serialize(OpKernelContext* ctx, string* serialized_graph_def,
diff --git a/tensorflow/core/lib/core/stringpiece.cc b/tensorflow/core/lib/core/stringpiece.cc
index 29b727fc44..c42d911a35 100644
--- a/tensorflow/core/lib/core/stringpiece.cc
+++ b/tensorflow/core/lib/core/stringpiece.cc
@@ -60,6 +60,4 @@ StringPiece StringPiece::substr(size_t pos, size_t n) const {
return StringPiece(data_ + pos, n);
}
-const StringPiece::size_type StringPiece::npos = size_type(-1);
-
} // namespace tensorflow
diff --git a/tensorflow/core/lib/core/stringpiece.h b/tensorflow/core/lib/core/stringpiece.h
index caa9642774..b945540f98 100644
--- a/tensorflow/core/lib/core/stringpiece.h
+++ b/tensorflow/core/lib/core/stringpiece.h
@@ -67,7 +67,7 @@ class StringPiece {
iterator begin() const { return data_; }
iterator end() const { return data_ + size_; }
- static const size_t npos;
+ static const size_t npos = size_type(-1);
// Return the ith byte in the referenced data.
// REQUIRES: n < size()
diff --git a/tensorflow/core/platform/tracing.h b/tensorflow/core/platform/tracing.h
index 8f7bff1bb0..eebbeaeba6 100644
--- a/tensorflow/core/platform/tracing.h
+++ b/tensorflow/core/platform/tracing.h
@@ -103,7 +103,7 @@ class Tracing {
friend class ScopedAnnotation;
friend class TraceMe;
- static std::atomic<Tracing::Engine*> tracing_engine_;
+ TF_EXPORT static std::atomic<Tracing::Engine*> tracing_engine_;
static Tracing::Engine* engine() {
return tracing_engine_.load(std::memory_order_acquire);
}
diff --git a/tensorflow/python/BUILD b/tensorflow/python/BUILD
index db17a3fe02..9102182e97 100644
--- a/tensorflow/python/BUILD
+++ b/tensorflow/python/BUILD
@@ -28,6 +28,7 @@ load("//tensorflow:tensorflow.bzl", "py_tests")
load("//tensorflow:tensorflow.bzl", "tf_py_build_info_genrule")
load("//tensorflow:tensorflow.bzl", "tf_py_wrap_cc")
load("//tensorflow:tensorflow.bzl", "tf_cc_shared_object")
+load("//tensorflow:tensorflow.bzl", "tf_custom_op_library_additional_deps_impl")
load("//tensorflow:tensorflow.bzl", "cuda_py_test")
load("//tensorflow:tensorflow.bzl", "cuda_py_tests")
load("//tensorflow/core:platform/default/build_config.bzl", "pyx_library")
@@ -86,6 +87,7 @@ py_library(
":ops",
":platform",
":pywrap_tensorflow",
+ ":saver_test_utils",
":script_ops",
":session_ops",
":sets",
@@ -94,31 +96,29 @@ py_library(
":standard_ops",
":state_ops",
":string_ops",
+ ":subscribe",
":summary",
":tensor_array_ops",
- ":training",
- ":saver_test_utils",
- ":subscribe",
":test_ops", # TODO: Break testing code out into separate rule.
- ":tf_item",
":tf_cluster",
+ ":tf_item",
":tf_optimizer",
+ ":training",
":util",
":weights_broadcast_ops",
- "//third_party/py/numpy",
+ "//tensorflow/contrib:contrib_py",
"//tensorflow/core:protos_all_py",
"//tensorflow/python/data",
"//tensorflow/python/estimator:estimator_py",
"//tensorflow/python/feature_column:feature_column_py",
"//tensorflow/python/keras",
- "//tensorflow/python/ops/losses",
"//tensorflow/python/ops/distributions",
"//tensorflow/python/ops/linalg",
+ "//tensorflow/python/ops/losses",
"//tensorflow/python/profiler",
"//tensorflow/python/saved_model",
- ] + if_not_windows([
- "//tensorflow/contrib:contrib_py",
- ]),
+ "//third_party/py/numpy",
+ ],
)
tf_py_build_info_genrule()
@@ -946,7 +946,6 @@ py_test(
srcs = ["framework/contrib_test.py"],
main = "framework/contrib_test.py",
srcs_version = "PY2AND3",
- tags = ["no_windows"],
deps = [
"//tensorflow:tensorflow_py",
"//tensorflow/python:client_testlib",
@@ -1311,7 +1310,6 @@ py_test(
srcs = ["framework/dtypes_test.py"],
main = "framework/dtypes_test.py",
srcs_version = "PY2AND3",
- tags = ["no_windows"],
deps = [
":framework_for_generated_wrappers",
":framework_test_lib",
@@ -1653,7 +1651,6 @@ py_test(
size = "small",
srcs = ["ops/clip_ops_test.py"],
srcs_version = "PY2AND3",
- tags = ["no_windows"],
deps = [
":client_testlib",
":clip_ops",
@@ -2713,7 +2710,6 @@ cuda_py_test(
],
data = ["//tensorflow/core:image_testdata"],
shard_count = 5,
- tags = ["no_windows"],
)
cuda_py_test(
@@ -3251,6 +3247,11 @@ tf_py_wrap_cc(
"util/transform_graph.i",
"util/util.i",
],
+ # Use a DEF file to export symbols on Windows
+ win_def_file = select({
+ "//tensorflow:windows": ":pywrap_tensorflow_filtered_def_file",
+ "//conditions:default": None,
+ }),
deps = [
":bfloat16_lib",
":cost_analyzer_lib",
@@ -3294,6 +3295,65 @@ tf_py_wrap_cc(
tf_additional_gdr_deps()),
)
+# ** Targets for Windows build (start) **
+# We need the following targets to expose symbols from _pywrap_tensorflow.dll
+
+# Build a cc_binary from tf_custom_op_library_additional_deps_impl,
+# it contains all object code from its dependencies.
+cc_binary(
+ name = "tf_custom_op_library_additional_deps.so",
+ linkshared = 1,
+ linkstatic = 1,
+ deps = tf_custom_op_library_additional_deps_impl(),
+)
+
+# Get a DEF file generated by parsing all object files
+# of tf_custom_op_library_additional_deps.so
+filegroup(
+ name = "pywrap_tensorflow_def_file",
+ srcs = [":tf_custom_op_library_additional_deps.so"],
+ output_group = "def_file",
+)
+
+# Filter the DEF file to reduce the number of symbols to 64K or less.
+# Note that we also write the name of the pyd file into DEF file so that
+# the dynamic libraries of custom ops can find it at runtime.
+genrule(
+ name = "pywrap_tensorflow_filtered_def_file",
+ srcs = [":pywrap_tensorflow_def_file"],
+ outs = ["pywrap_tensorflow_filtered_def_file.def"],
+ cmd = select({
+ "//tensorflow:windows": """
+ $(location @local_config_def_file_filter//:def_file_filter) \\
+ --input $(location :pywrap_tensorflow_def_file) \\
+ --output $@ \\
+ --target _pywrap_tensorflow_internal.pyd
+ """,
+ "//conditions:default": "touch $@", # Just a placeholder for Unix platforms
+ }),
+ tools = ["@local_config_def_file_filter//:def_file_filter"],
+)
+
+# Get the import library of _pywrap_tensorflow_internal.dll
+filegroup(
+ name = "pywrap_tensorflow_import_lib_file",
+ srcs = [":_pywrap_tensorflow_internal.so"],
+ output_group = "interface_library",
+)
+
+# Create a cc_import rule for the import library of _pywrap_tensorflow_internal.dll
+# so that custom ops' dynamic libraries can link against it.
+cc_import(
+ name = "pywrap_tensorflow_import_lib",
+ interface_library = select({
+ "//tensorflow:windows": ":pywrap_tensorflow_import_lib_file",
+ "//conditions:default": "not_exsiting_on_unix.lib", # Just a placeholder for Unix platforms
+ }),
+ system_provided = 1,
+)
+
+# ** Targets for Windows build (end) **
+
py_library(
name = "lib",
srcs = [
@@ -3666,7 +3726,6 @@ py_test(
size = "small",
srcs = ["lib/core/bfloat16_test.py"],
srcs_version = "PY2AND3",
- tags = ["no_windows"],
deps = [
":client_testlib",
":lib",
@@ -3948,7 +4007,6 @@ py_test(
srcs_version = "PY2AND3",
tags = [
"no_cuda_on_cpu_tap",
- "no_windows",
],
deps = [
":client",
@@ -3971,7 +4029,6 @@ py_test(
size = "small",
srcs = ["training/checkpoint_ops_test.py"],
srcs_version = "PY2AND3",
- tags = ["no_windows"],
deps = [
":checkpoint_ops_gen",
":client",
@@ -3993,10 +4050,7 @@ py_test(
size = "medium",
srcs = ["training/monitored_session_test.py"],
srcs_version = "PY2AND3",
- tags = [
- "no_windows",
- "notsan", # b/67945581
- ],
+ tags = ["notsan"], # b/67945581
deps = [
":array_ops",
":client_testlib",
diff --git a/tensorflow/python/debug/BUILD b/tensorflow/python/debug/BUILD
index 253588fc3b..b3abbf21e9 100644
--- a/tensorflow/python/debug/BUILD
+++ b/tensorflow/python/debug/BUILD
@@ -913,6 +913,7 @@ cuda_py_test(
"//tensorflow/python:util",
"//tensorflow/python:variables",
],
+ tags = ["no_windows"], # TODO: needs investigation on Windows
)
py_test(
diff --git a/tensorflow/python/keras/BUILD b/tensorflow/python/keras/BUILD
index bd1aac5eae..3af9b1be49 100755
--- a/tensorflow/python/keras/BUILD
+++ b/tensorflow/python/keras/BUILD
@@ -628,7 +628,10 @@ py_test(
size = "small",
srcs = ["_impl/keras/utils/io_utils_test.py"],
srcs_version = "PY2AND3",
- tags = ["notsan"],
+ tags = [
+ "no_windows", # TODO: needs investigation on Windows
+ "notsan",
+ ],
deps = [
":keras",
"//tensorflow/python:client_testlib",
diff --git a/tensorflow/python/kernel_tests/BUILD b/tensorflow/python/kernel_tests/BUILD
index 23b79a24c0..c37ad5c0ec 100644
--- a/tensorflow/python/kernel_tests/BUILD
+++ b/tensorflow/python/kernel_tests/BUILD
@@ -295,7 +295,6 @@ tf_py_test(
"//tensorflow/python:nn_grad",
],
data = ["//tensorflow/core:image_testdata"],
- tags = ["no_windows"],
)
tf_py_test(
@@ -1138,7 +1137,6 @@ tf_py_test(
"//tensorflow/python:variables",
],
data = ["//tensorflow/core:lmdb_testdata"],
- tags = ["no_windows"],
)
cuda_py_test(
@@ -2328,7 +2326,6 @@ cuda_py_test(
"//tensorflow/python:variables",
],
shard_count = 4,
- tags = ["no_windows"],
)
cuda_py_test(
@@ -2459,7 +2456,6 @@ cuda_py_test(
"//tensorflow/python/eager:context",
],
shard_count = 10,
- tags = ["no_windows"],
)
cuda_py_test(
diff --git a/tensorflow/tensorflow.bzl b/tensorflow/tensorflow.bzl
index 818d67f7b5..51ef3235b7 100644
--- a/tensorflow/tensorflow.bzl
+++ b/tensorflow/tensorflow.bzl
@@ -1185,6 +1185,22 @@ def tf_custom_op_library_additional_deps():
"@nsync//:nsync_headers",
clean_dep("//third_party/eigen3"),
clean_dep("//tensorflow/core:framework_headers_lib"),
+ ] + if_windows(["//tensorflow/python:pywrap_tensorflow_import_lib"])
+
+# A list of targets that contains the implemenation of
+# tf_custom_op_library_additional_deps. It's used to generate a DEF file for
+# exporting symbols from _pywrap_tensorflow.dll on Windows.
+def tf_custom_op_library_additional_deps_impl():
+ return [
+ # for @protobuf_archive//:protobuf_headers
+ "@protobuf_archive//:protobuf",
+ # for @nsync//:nsync_headers
+ "@nsync//:nsync_cpp",
+ # for //third_party/eigen3
+ clean_dep("//third_party/eigen3"),
+ # for //tensorflow/core:framework_headers_lib
+ clean_dep("//tensorflow/core:framework"),
+ clean_dep("//tensorflow/core:reader_base"),
]
# Traverse the dependency graph along the "deps" attribute of the
@@ -1271,6 +1287,7 @@ def tf_custom_op_library(name, srcs=[], gpu_srcs=[], deps=[], linkopts=[]):
deps=deps + if_cuda(cuda_deps),
data=[name + "_check_deps"],
copts=tf_copts(is_external=True),
+ features = ["windows_export_all_symbols"],
linkopts=linkopts + select({
"//conditions:default": [
"-lm",
@@ -1417,7 +1434,8 @@ def tf_py_wrap_cc(name,
]) + tf_extension_copts()),
linkopts=tf_extension_linkopts() + extra_linkopts,
linkstatic=1,
- deps=deps + extra_deps)
+ deps=deps + extra_deps,
+ **kwargs)
native.genrule(
name="gen_" + cc_library_pyd_name,
srcs=[":" + cc_library_name],
diff --git a/tensorflow/tools/ci_build/windows/cpu/pip/build_tf_windows.sh b/tensorflow/tools/ci_build/windows/cpu/pip/build_tf_windows.sh
index 8b8ba31a0d..40189a6d1b 100644
--- a/tensorflow/tools/ci_build/windows/cpu/pip/build_tf_windows.sh
+++ b/tensorflow/tools/ci_build/windows/cpu/pip/build_tf_windows.sh
@@ -65,4 +65,5 @@ bazel test -c opt $BUILD_OPTS -k --test_output=errors \
--define=no_tensorflow_py_deps=true --test_lang_filters=py \
--test_tag_filters=-no_pip,-no_windows,-no_oss \
--build_tag_filters=-no_pip,-no_windows,-no_oss --build_tests_only \
- //${PY_TEST_DIR}/tensorflow/python/...
+ //${PY_TEST_DIR}/tensorflow/python/... \
+ //${PY_TEST_DIR}/tensorflow/contrib/...
diff --git a/tensorflow/tools/def_file_filter/BUILD b/tensorflow/tools/def_file_filter/BUILD
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/tensorflow/tools/def_file_filter/BUILD
diff --git a/tensorflow/tools/def_file_filter/BUILD.tpl b/tensorflow/tools/def_file_filter/BUILD.tpl
new file mode 100644
index 0000000000..3cb72f4979
--- /dev/null
+++ b/tensorflow/tools/def_file_filter/BUILD.tpl
@@ -0,0 +1,15 @@
+# Description:
+# Tools for filtering DEF file for TensorFlow on Windows
+#
+# On Windows, we use a DEF file generated by Bazel to export
+# symbols from the tensorflow dynamic library(_pywrap_tensorflow.dll).
+# The maximum number of symbols that can be exported per DLL is 64K,
+# so we have to filter some useless symbols through this python script.
+
+package(default_visibility = ["//visibility:public"])
+
+py_binary(
+ name = "def_file_filter",
+ srcs = ["def_file_filter.py"],
+ srcs_version = "PY2AND3",
+)
diff --git a/tensorflow/tools/def_file_filter/def_file_filter.py.tpl b/tensorflow/tools/def_file_filter/def_file_filter.py.tpl
new file mode 100644
index 0000000000..8bdc03eb0f
--- /dev/null
+++ b/tensorflow/tools/def_file_filter/def_file_filter.py.tpl
@@ -0,0 +1,168 @@
+# Copyright 2017 The TensorFlow Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+"""def_file_filter.py - tool to filter a windows def file.
+
+The def file can be used to export symbols from the tensorflow dll to enable
+tf.load_library().
+
+Because the linker allows only 64K symbols to be exported per dll
+we filter the symbols down to the essentials. The regular expressions
+we use for this are specific to tensorflow.
+
+TODO: this works fine but there is an issue with exporting
+'const char * const' and importing it from a user_ops. The problem is
+on the importing end and using __declspec(dllimport) works around it.
+"""
+from __future__ import absolute_import
+from __future__ import division
+from __future__ import print_function
+
+import argparse
+import io
+import os
+import re
+import subprocess
+import sys
+import tempfile
+
+# External tools we use that come with visual studio sdk
+UNDNAME = "%{undname_bin_path}"
+
+# Exclude if matched
+EXCLUDE_RE = re.compile(r"RTTI|deleting destructor|::internal::")
+
+# Include if matched before exclude
+INCLUDEPRE_RE = re.compile(r"google::protobuf::internal::ExplicitlyConstructed|"
+ r"google::protobuf::internal::ArenaImpl::AllocateAligned|" # for contrib/data/_prefetching_ops
+ r"google::protobuf::internal::ArenaImpl::AddCleanup|" # for contrib/data/_prefetching_ops
+ r"google::protobuf::Arena::OnArenaAllocation|" # for contrib/data/_prefetching_ops
+ r"tensorflow::internal::LogMessage|"
+ r"tensorflow::internal::LogString|"
+ r"tensorflow::internal::CheckOpMessageBuilder|"
+ r"tensorflow::internal::MakeCheckOpValueString|"
+ r"tensorflow::internal::PickUnusedPortOrDie|"
+ r"tensorflow::internal::ValidateDevice|"
+ r"tensorflow::ops::internal::Enter|"
+ r"tensorflow::strings::internal::AppendPieces|"
+ r"tensorflow::strings::internal::CatPieces|"
+ r"tensorflow::io::internal::JoinPathImpl")
+
+# Include if matched after exclude
+INCLUDE_RE = re.compile(r"^(TF_\w*)$|"
+ r"^(TFE_\w*)$|"
+ r"nsync::|"
+ r"tensorflow::|"
+ r"functor::|"
+ r"perftools::gputools")
+
+# We want to identify data members explicitly in the DEF file, so that no one
+# can implicitly link against the DLL if they use one of the variables exported
+# from the DLL and the header they use does not decorate the symbol with
+# __declspec(dllimport). It is easier to detect what a data symbol does
+# NOT look like, so doing it with the below regex.
+DATA_EXCLUDE_RE = re.compile(r"[)(]|"
+ r"vftable|"
+ r"vbtable|"
+ r"vcall|"
+ r"RTTI|"
+ r"protobuf::internal::ExplicitlyConstructed")
+
+def get_args():
+ """Parse command line."""
+ filename_list = lambda x: x.split(";")
+ parser = argparse.ArgumentParser()
+ parser.add_argument("--input", type=filename_list,
+ help="paths to input def file",
+ required=True)
+ parser.add_argument("--output", help="output deffile", required=True)
+ parser.add_argument("--target", help="name of the target", required=True)
+ args = parser.parse_args()
+ return args
+
+
+def main():
+ """main."""
+ args = get_args()
+
+ # Pipe dumpbin to extract all linkable symbols from libs.
+ # Good symbols are collected in candidates and also written to
+ # a temp file.
+ candidates = []
+ tmpfile = tempfile.NamedTemporaryFile(mode="w", delete=False)
+ for def_file_path in args.input:
+ def_file = open(def_file_path, 'r')
+ for line in def_file:
+ cols = line.split()
+ sym = cols[0]
+ tmpfile.file.write(sym + "\n")
+ candidates.append(sym)
+ tmpfile.file.close()
+
+ # Run the symbols through undname to get their undecorated name
+ # so we can filter on something readable.
+ with open(args.output, "w") as def_fp:
+ # track dupes
+ taken = set()
+
+ # Header for the def file.
+ def_fp.write("LIBRARY " + args.target + "\n")
+ def_fp.write("EXPORTS\n")
+ def_fp.write("\t ??1OpDef@tensorflow@@UEAA@XZ\n")
+
+ # Each symbols returned by undname matches the same position in candidates.
+ # We compare on undname but use the decorated name from candidates.
+ dupes = 0
+ proc = subprocess.Popen([UNDNAME, tmpfile.name], stdout=subprocess.PIPE)
+ for idx, line in enumerate(io.TextIOWrapper(proc.stdout, encoding="utf-8")):
+ decorated = candidates[idx]
+ if decorated in taken:
+ # Symbol is already in output, done.
+ dupes += 1
+ continue
+
+ if not INCLUDEPRE_RE.search(line):
+ if EXCLUDE_RE.search(line):
+ continue
+ if not INCLUDE_RE.search(line):
+ continue
+
+ if "deleting destructor" in line:
+ # Some of the symbols convered by INCLUDEPRE_RE export deleting
+ # destructor symbols, which is a bad idea.
+ # So we filter out such symbols here.
+ continue
+
+ if DATA_EXCLUDE_RE.search(line):
+ def_fp.write("\t" + decorated + "\n")
+ else:
+ def_fp.write("\t" + decorated + " DATA\n")
+ taken.add(decorated)
+ def_fp.close()
+
+ exit_code = proc.wait()
+ if exit_code != 0:
+ print("{} failed, exit={}".format(UNDNAME, exit_code))
+ return exit_code
+
+ os.unlink(tmpfile.name)
+
+ print("symbols={}, taken={}, dupes={}"
+ .format(len(candidates), len(taken), dupes))
+ return 0
+
+
+if __name__ == "__main__":
+ sys.exit(main())
diff --git a/tensorflow/tools/def_file_filter/def_file_filter_configure.bzl b/tensorflow/tools/def_file_filter/def_file_filter_configure.bzl
new file mode 100644
index 0000000000..47539b2423
--- /dev/null
+++ b/tensorflow/tools/def_file_filter/def_file_filter_configure.bzl
@@ -0,0 +1,56 @@
+"""Repository rule for def file filter autoconfiguration.
+
+This repository reuses Bazel's VC detect mechanism to find undname.exe,
+which is a tool used in def_file_filter.py.
+
+def_file_filter.py is for filtering the DEF file for TensorFlow on Windows.
+On Windows, we use a DEF file generated by Bazel to export symbols from the
+tensorflow dynamic library(_pywrap_tensorflow.dll). The maximum number of
+symbols that can be exported per DLL is 64K, so we have to filter some useless
+symbols through this python script.
+
+`def_file_filter_config` depends on the following environment variables:
+ * `BAZEL_VC`
+ * `BAZEL_VS`
+ * `VS90COMNTOOLS`
+ * `VS100COMNTOOLS`
+ * `VS110COMNTOOLS`
+ * `VS120COMNTOOLS`
+ * `VS140COMNTOOLS`
+"""
+
+load("@bazel_tools//tools/cpp:windows_cc_configure.bzl", "find_vc_path")
+load("@bazel_tools//tools/cpp:windows_cc_configure.bzl", "find_msvc_tool")
+load("@bazel_tools//tools/cpp:lib_cc_configure.bzl", "auto_configure_fail")
+
+def _def_file_filter_configure_impl(repository_ctx):
+ if repository_ctx.os.name.lower().find("windows") == -1:
+ repository_ctx.symlink(Label("//tensorflow/tools/def_file_filter:BUILD.tpl"), "BUILD")
+ repository_ctx.file("def_file_filter.py", "")
+ return
+ vc_path = find_vc_path(repository_ctx)
+ if vc_path == "visual-studio-not-found":
+ auto_configure_fail("Visual C++ build tools not found on your machine")
+ undname_bin_path = find_msvc_tool(repository_ctx, vc_path, "undname.exe").replace("\\", "\\\\")
+
+ repository_ctx.template(
+ "def_file_filter.py",
+ Label("//tensorflow/tools/def_file_filter:def_file_filter.py.tpl"),
+ {
+ "%{undname_bin_path}": undname_bin_path,
+ })
+ repository_ctx.symlink(Label("//tensorflow/tools/def_file_filter:BUILD.tpl"), "BUILD")
+
+
+def_file_filter_configure = repository_rule(
+ implementation = _def_file_filter_configure_impl,
+ environ = [
+ "BAZEL_VC",
+ "BAZEL_VS",
+ "VS90COMNTOOLS",
+ "VS100COMNTOOLS",
+ "VS110COMNTOOLS",
+ "VS120COMNTOOLS",
+ "VS140COMNTOOLS"
+ ],
+)
diff --git a/tensorflow/tools/pip_package/BUILD b/tensorflow/tools/pip_package/BUILD
index fb6eaa4faa..ed5801b8bd 100644
--- a/tensorflow/tools/pip_package/BUILD
+++ b/tensorflow/tools/pip_package/BUILD
@@ -48,36 +48,65 @@ py_binary(
deps = ["//tensorflow:tensorflow_py"],
)
+COMMON_PIP_DEPS = [
+ ":licenses",
+ "MANIFEST.in",
+ "README",
+ "setup.py",
+ ":included_headers",
+ "//tensorflow:tensorflow_py",
+ "//tensorflow/contrib/boosted_trees:boosted_trees_pip",
+ "//tensorflow/contrib/cluster_resolver:cluster_resolver_pip",
+ "//tensorflow/contrib/data/python/kernel_tests:dataset_serialization_test",
+ "//tensorflow/contrib/data/python/ops:contrib_op_loader",
+ "//tensorflow/contrib/eager/python/examples:examples_pip",
+ "//tensorflow/contrib/eager/python:checkpointable_utils",
+ "//tensorflow/contrib/eager/python:evaluator",
+ "//tensorflow/contrib/gan:gan",
+ "//tensorflow/contrib/graph_editor:graph_editor_pip",
+ "//tensorflow/contrib/keras:keras",
+ "//tensorflow/contrib/labeled_tensor:labeled_tensor_pip",
+ "//tensorflow/contrib/nn:nn_py",
+ "//tensorflow/contrib/predictor:predictor_pip",
+ "//tensorflow/contrib/py2tf:py2tf",
+ "//tensorflow/contrib/py2tf/converters:converters",
+ "//tensorflow/contrib/py2tf/converters:test_lib",
+ "//tensorflow/contrib/py2tf/impl:impl",
+ "//tensorflow/contrib/py2tf/pyct:pyct",
+ "//tensorflow/contrib/py2tf/pyct/static_analysis:static_analysis",
+ "//tensorflow/contrib/receptive_field:receptive_field_pip",
+ "//tensorflow/contrib/session_bundle:session_bundle_pip",
+ "//tensorflow/contrib/signal:signal_py",
+ "//tensorflow/contrib/signal:test_util",
+ "//tensorflow/contrib/slim:slim",
+ "//tensorflow/contrib/slim/python/slim/data:data_pip",
+ "//tensorflow/contrib/slim/python/slim/nets:nets_pip",
+ "//tensorflow/contrib/specs:specs",
+ "//tensorflow/contrib/summary:summary_test_util",
+ "//tensorflow/contrib/tensor_forest:init_py",
+ "//tensorflow/contrib/tensor_forest/hybrid:hybrid_pip",
+ "//tensorflow/contrib/timeseries:timeseries_pip",
+ "//tensorflow/contrib/tpu",
+ "//tensorflow/examples/tutorials/mnist:package",
+ "//tensorflow/python:distributed_framework_test_lib",
+ "//tensorflow/python:meta_graph_testdata",
+ "//tensorflow/python:spectral_ops_test_util",
+ "//tensorflow/python:util_example_parser_configuration",
+ "//tensorflow/python/debug:debug_pip",
+ "//tensorflow/python/eager:eager_pip",
+ "//tensorflow/python/saved_model:saved_model",
+ "//tensorflow/python/tools:tools_pip",
+ "//tensorflow/python:test_ops",
+ "//tensorflow/tools/dist_test/server:grpc_tensorflow_server",
+]
+
# On Windows, python binary is a zip file of runfiles tree.
# Add everything to its data dependency for generating a runfiles tree
# for building the pip package on Windows.
py_binary(
name = "simple_console_for_windows",
srcs = ["simple_console_for_windows.py"],
- data = [
- "MANIFEST.in",
- "README",
- "setup.py",
- ":included_headers",
- "//tensorflow/contrib/nn:nn_py",
- "//tensorflow/contrib/session_bundle:session_bundle_pip",
- "//tensorflow/contrib/signal:signal_py",
- "//tensorflow/contrib/slim/python/slim/data:data_pip",
- "//tensorflow/python:util_example_parser_configuration",
- "//tensorflow/python/debug:debug_pip",
- "//tensorflow/python/saved_model",
- "//tensorflow/python:spectral_ops_test_util",
- "//tensorflow/python/tools:tools_pip",
- "//tensorflow/python/eager:eager_pip",
- "//tensorflow/contrib/summary:summary_test_util",
- # These targets don't build on Windows yet. Exclude them for now.
- # "//tensorflow/contrib/slim",
- # "//tensorflow/contrib/slim/python/slim/nets:nets_pip",
- # "//tensorflow/contrib/specs",
- # "//tensorflow/contrib/tensor_forest:init_py",
- # "//tensorflow/contrib/tensor_forest/hybrid:hybrid_pip",
- # "//tensorflow/examples/tutorials/mnist:package",
- ],
+ data = COMMON_PIP_DEPS,
srcs_version = "PY2AND3",
deps = ["//tensorflow:tensorflow_py"],
)
@@ -137,60 +166,11 @@ sh_binary(
data = select({
"//tensorflow:windows": [":simple_console_for_windows"],
"//tensorflow:windows_msvc": [":simple_console_for_windows"],
- "//conditions:default": [
- ":licenses",
- "MANIFEST.in",
- "README",
- "setup.py",
- ":included_headers",
+ "//conditions:default": COMMON_PIP_DEPS + [
":simple_console",
- "//tensorflow:tensorflow_py",
- "//tensorflow/contrib/boosted_trees:boosted_trees_pip",
- "//tensorflow/contrib/cluster_resolver:cluster_resolver_pip",
- "//tensorflow/contrib/data/python/kernel_tests:dataset_serialization_test",
- "//tensorflow/contrib/data/python/ops:contrib_op_loader",
- "//tensorflow/contrib/eager/python/examples:examples_pip",
- "//tensorflow/contrib/eager/python:checkpointable_utils",
- "//tensorflow/contrib/eager/python:evaluator",
- "//tensorflow/contrib/gan:gan",
- "//tensorflow/contrib/graph_editor:graph_editor_pip",
- "//tensorflow/contrib/keras:keras",
- "//tensorflow/contrib/labeled_tensor:labeled_tensor_pip",
"//tensorflow/contrib/lite/toco:toco",
"//tensorflow/contrib/lite/toco/python:toco_wrapper",
"//tensorflow/contrib/lite/toco/python:toco_from_protos",
- "//tensorflow/contrib/nn:nn_py",
- "//tensorflow/contrib/predictor:predictor_pip",
- "//tensorflow/contrib/py2tf:py2tf",
- "//tensorflow/contrib/py2tf/converters:converters",
- "//tensorflow/contrib/py2tf/converters:test_lib",
- "//tensorflow/contrib/py2tf/impl:impl",
- "//tensorflow/contrib/py2tf/pyct:pyct",
- "//tensorflow/contrib/py2tf/pyct/static_analysis:static_analysis",
- "//tensorflow/contrib/receptive_field:receptive_field_pip",
- "//tensorflow/contrib/session_bundle:session_bundle_pip",
- "//tensorflow/contrib/signal:signal_py",
- "//tensorflow/contrib/signal:test_util",
- "//tensorflow/contrib/slim:slim",
- "//tensorflow/contrib/slim/python/slim/data:data_pip",
- "//tensorflow/contrib/slim/python/slim/nets:nets_pip",
- "//tensorflow/contrib/specs:specs",
- "//tensorflow/contrib/summary:summary_test_util",
- "//tensorflow/contrib/tensor_forest:init_py",
- "//tensorflow/contrib/tensor_forest/hybrid:hybrid_pip",
- "//tensorflow/contrib/timeseries:timeseries_pip",
- "//tensorflow/contrib/tpu",
- "//tensorflow/examples/tutorials/mnist:package",
- "//tensorflow/python:distributed_framework_test_lib",
- "//tensorflow/python:meta_graph_testdata",
- "//tensorflow/python:spectral_ops_test_util",
- "//tensorflow/python:util_example_parser_configuration",
- "//tensorflow/python/debug:debug_pip",
- "//tensorflow/python/eager:eager_pip",
- "//tensorflow/python/saved_model:saved_model",
- "//tensorflow/python/tools:tools_pip",
- "//tensorflow/python:test_ops",
- "//tensorflow/tools/dist_test/server:grpc_tensorflow_server",
],
}) + if_mkl(["//third_party/mkl:intel_binary_blob"]) + if_tensorrt([
"//tensorflow/contrib/tensorrt:init_py",
diff --git a/tensorflow/workspace.bzl b/tensorflow/workspace.bzl
index 1af246f9dc..0b8dfae00e 100644
--- a/tensorflow/workspace.bzl
+++ b/tensorflow/workspace.bzl
@@ -12,6 +12,8 @@ load("//third_party/toolchains/cpus/arm:arm_compiler_configure.bzl", "arm_compil
load("//third_party:repo.bzl", "tf_http_archive")
load("@io_bazel_rules_closure//closure/private:java_import_external.bzl", "java_import_external")
load("@io_bazel_rules_closure//closure:defs.bzl", "filegroup_external")
+load("//tensorflow/tools/def_file_filter:def_file_filter_configure.bzl",
+ "def_file_filter_configure")
def _extract_version_number(bazel_version):
"""Extracts the semantic version number from a version string
@@ -67,7 +69,7 @@ def tf_workspace(path_prefix="", tf_repo_name=""):
# We must check the bazel version before trying to parse any other BUILD
# files, in case the parsing of those build files depends on the bazel
# version we require here.
- check_bazel_version_at_least("0.5.4")
+ check_bazel_version_at_least("0.10.0")
clang6_configure(name="local_config_clang6")
cuda_configure(name="local_config_cuda")
tensorrt_configure(name="local_config_tensorrt")
@@ -75,6 +77,10 @@ def tf_workspace(path_prefix="", tf_repo_name=""):
sycl_configure(name="local_config_sycl")
python_configure(name="local_config_python")
+ # For windows bazel build
+ # TODO: Remove def file filter when TensorFlow can export symbols properly on Windows.
+ def_file_filter_configure(name = "local_config_def_file_filter")
+
# Point //external/local_config_arm_compiler to //external/arm_compiler
arm_compiler_configure(
name="local_config_arm_compiler",