Skip to content

Commit cc96e4e

Browse files
Implements pywrap_tensorflow_macro_opensource using cc_shared_library.
`dynamic_deps` is not used. Will be added in a separate change. PiperOrigin-RevId: 470353185
1 parent f8df5fe commit cc96e4e

File tree

3 files changed

+84
-21
lines changed

3 files changed

+84
-21
lines changed

.bazelversion

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
5.1.1
1+
5.3.0

tensorflow/python/BUILD

Lines changed: 64 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3257,11 +3257,70 @@ py_library(
32573257
pywrap_tensorflow_macro(
32583258
name = "pywrap_tensorflow_internal",
32593259
srcs = ["pywrap_tensorflow_internal.cc"],
3260+
static_deps = [
3261+
"@arm_neon_2_x86_sse//:__subpackages__",
3262+
"@bazel_tools//:__subpackages__",
3263+
"@boringssl//:__subpackages__",
3264+
"@clog//:__subpackages__",
3265+
"@com_github_cares_cares//:__subpackages__",
3266+
"@com_github_googlecloudplatform_tensorflow_gcp_tools//:__subpackages__",
3267+
"@com_github_grpc_grpc//:__subpackages__",
3268+
"@com_google_absl//:__subpackages__",
3269+
"@com_google_googleapis//:__subpackages__",
3270+
"@com_google_protobuf//:__subpackages__",
3271+
"@com_googlesource_code_re2//:__subpackages__",
3272+
"@compute_library//:__subpackages__",
3273+
"@cpuinfo//:__subpackages__",
3274+
"@cudnn_frontend_archive//:__subpackages__",
3275+
"@curl//:__subpackages__",
3276+
"@dlpack//:__subpackages__",
3277+
"@double_conversion//:__subpackages__",
3278+
"@eigen_archive//:__subpackages__",
3279+
"@farmhash_archive//:__subpackages__",
3280+
"@farmhash_gpu_archive//:__subpackages__",
3281+
"@fft2d//:__subpackages__",
3282+
"@flatbuffers//:__subpackages__",
3283+
"@FP16//:__subpackages__",
3284+
"@FXdiv//:__subpackages__",
3285+
"@gemmlowp//:__subpackages__",
3286+
"@gif//:__subpackages__",
3287+
"@highwayhash//:__subpackages__",
3288+
"@hwloc//:__subpackages__",
3289+
"@icu//:__subpackages__",
3290+
"@jsoncpp_git//:__subpackages__",
3291+
"@libjpeg_turbo//:__subpackages__",
3292+
"@libxsmm_archive//:__subpackages__",
3293+
"@llvm_openmp//:__subpackages__",
3294+
"@llvm-project//:__subpackages__",
3295+
"@llvm_terminfo//:__subpackages__",
3296+
"@llvm_zlib//:__subpackages__",
3297+
"@lmdb//:__subpackages__",
3298+
"@local_config_cuda//:__subpackages__",
3299+
"@local_config_git//:__subpackages__",
3300+
"@local_config_nccl//:__subpackages__",
3301+
"@local_config_python//:__subpackages__",
3302+
"@local_config_rocm//:__subpackages__",
3303+
"@local_config_tensorrt//:__subpackages__",
3304+
"@local_execution_config_platform//:__subpackages__",
3305+
"@mkl_dnn_acl_compatible//:__subpackages__",
3306+
"@mkl_dnn_v1//:__subpackages__",
3307+
"@nccl_archive//:__subpackages__",
3308+
"@nsync//:__subpackages__",
3309+
"@org_sqlite//:__subpackages__",
3310+
"@platforms//:__subpackages__",
3311+
"@png//:__subpackages__",
3312+
"@pthreadpool//:__subpackages__",
3313+
"@pybind11//:__subpackages__",
3314+
"@ruy//:__subpackages__",
3315+
"@snappy//:__subpackages__",
3316+
"@sobol_data//:__subpackages__",
3317+
"//:__subpackages__",
3318+
"@upb//:__subpackages__",
3319+
"@XNNPACK//:__subpackages__",
3320+
"@zlib//:__subpackages__",
3321+
],
32603322
# copybara:comment_begin(OSS Windows only: DEF file for exported symbols)
3261-
win_def_file = select({
3262-
"//tensorflow:windows": ":pywrap_tensorflow_filtered_def_file",
3263-
"//conditions:default": None,
3264-
}),
3323+
win_def_file = ":pywrap_tensorflow_filtered_def_file",
32653324
# copybara:comment_end
32663325
deps = [
32673326
":bfloat16_lib",
@@ -3492,7 +3551,7 @@ genrule(
34923551
visibility = ["//visibility:public"],
34933552
)
34943553

3495-
# Get the import library of _pywrap_tensorflow_internal.pyd
3554+
# Get the import library of _pywrap_tensorflow_internal.pyd, platform-specific to Windows.
34963555
filegroup(
34973556
name = "get_pywrap_tensorflow_import_lib_file",
34983557
srcs = [":_pywrap_tensorflow_internal.so"],

tensorflow/tensorflow.bzl

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2076,14 +2076,16 @@ def _collect_deps_aspect_impl(target, ctx):
20762076
all_deps += ctx.rule.attr.deps
20772077
if hasattr(ctx.rule.attr, "data"):
20782078
all_deps += ctx.rule.attr.data
2079+
if hasattr(ctx.rule.attr, "roots"):
2080+
all_deps += ctx.rule.attr.roots
20792081
for dep in all_deps:
20802082
direct.append(dep.label)
20812083
if hasattr(dep, "tf_collected_deps"):
20822084
transitive.append(dep.tf_collected_deps)
20832085
return struct(tf_collected_deps = depset(direct = direct, transitive = transitive))
20842086

20852087
collect_deps_aspect = aspect(
2086-
attr_aspects = ["deps", "data"],
2088+
attr_aspects = ["deps", "data", "roots"],
20872089
implementation = _collect_deps_aspect_impl,
20882090
)
20892091

@@ -2279,10 +2281,13 @@ _append_init_to_versionscript = rule(
22792281
def pywrap_tensorflow_macro(
22802282
name,
22812283
srcs = [],
2284+
roots = [],
22822285
deps = [],
2286+
dynamic_deps = [],
2287+
static_deps = [],
22832288
copts = [],
22842289
version_script = None,
2285-
**kwargs):
2290+
win_def_file = None):
22862291
"""Builds the pywrap_tensorflow_internal shared object."""
22872292
module_name = name.split("/")[-1]
22882293

@@ -2292,7 +2297,7 @@ def pywrap_tensorflow_macro(
22922297

22932298
# TODO(b/137885063): tf_cc_shared_object needs to be cleaned up; we really
22942299
# shouldn't be passing a name qualified with .so here.
2295-
cc_library_name = cc_library_base + ".so"
2300+
cc_shared_library_name = cc_library_base + ".so"
22962301
cc_library_pyd_name = "/".join(
22972302
name.split("/")[:-1] + ["_" + module_name + ".pyd"],
22982303
)
@@ -2328,12 +2333,7 @@ def pywrap_tensorflow_macro(
23282333
"$(location %s.lds)" % vscriptname,
23292334
],
23302335
})
2331-
extra_deps += select({
2332-
clean_dep("//tensorflow:windows"): [],
2333-
"//conditions:default": [
2334-
"%s.lds" % vscriptname,
2335-
],
2336-
})
2336+
additional_linker_inputs = if_windows([], otherwise = ["%s.lds" % vscriptname])
23372337

23382338
# Due to b/149224972 we have to add libtensorflow_framework.so
23392339
# as a dependency so the linker doesn't try and optimize and
@@ -2347,8 +2347,8 @@ def pywrap_tensorflow_macro(
23472347
],
23482348
)
23492349

2350-
tf_cc_shared_object(
2351-
name = cc_library_name,
2350+
tf_cc_shared_library(
2351+
name = cc_shared_library_name,
23522352
srcs = srcs,
23532353
# framework_so is no longer needed as libtf.so is included via the extra_deps.
23542354
framework_so = [],
@@ -2359,8 +2359,12 @@ def pywrap_tensorflow_macro(
23592359
]),
23602360
linkopts = extra_linkopts,
23612361
linkstatic = 1,
2362+
roots = roots,
23622363
deps = deps + extra_deps,
2363-
**kwargs
2364+
dynamic_deps = dynamic_deps,
2365+
static_deps = static_deps,
2366+
win_def_file = win_def_file,
2367+
additional_linker_inputs = additional_linker_inputs,
23642368
)
23652369

23662370
# When a non-versioned .so is added as a 'src' to a bazel target, it uses
@@ -2376,14 +2380,14 @@ def pywrap_tensorflow_macro(
23762380
name_os = pattern % (cc_library_base, "")
23772381
native.genrule(
23782382
name = name_os + "_rule",
2379-
srcs = [":" + cc_library_name],
2383+
srcs = [":" + cc_shared_library_name],
23802384
outs = [name_os],
23812385
cmd = "cp $< $@",
23822386
)
23832387

23842388
native.genrule(
23852389
name = "gen_" + cc_library_pyd_name,
2386-
srcs = [":" + cc_library_name],
2390+
srcs = [":" + cc_shared_library_name],
23872391
outs = [cc_library_pyd_name],
23882392
cmd = "cp $< $@",
23892393
)
@@ -2408,7 +2412,7 @@ def pywrap_tensorflow_macro(
24082412
srcs_version = "PY3",
24092413
data = select({
24102414
clean_dep("//tensorflow:windows"): [":" + cc_library_pyd_name],
2411-
"//conditions:default": [":" + cc_library_name],
2415+
"//conditions:default": [":" + cc_shared_library_name],
24122416
}),
24132417
)
24142418

0 commit comments

Comments
 (0)