diff --git a/science/py-tensorflow/Makefile b/science/py-tensorflow/Makefile index 9ce172c4d312..6fc13c34f3a8 100644 --- a/science/py-tensorflow/Makefile +++ b/science/py-tensorflow/Makefile @@ -1,228 +1,232 @@ PORTNAME= tensorflow DISTVERSIONPREFIX= v DISTVERSION= 2.9.1 PORTREVISION= 5 CATEGORIES= science python PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} DIST_SUBDIR= ${PORTNAME} EXTRACT_ONLY= ${DISTNAME}.tar.gz MAINTAINER= amzo1337@gmail.com COMMENT= Computation using data flow graphs for scalable machine learning WWW= https://www.tensorflow.org LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE ONLY_FOR_ARCHS= amd64 BUILD_DEPENDS= ${RUN_DEPENDS} \ ${PYTHON_PKGNAMEPREFIX}grpcio-tools>=1.22.0:devel/py-grpcio-tools@${PY_FLAVOR} \ bash:shells/bash \ cython:lang/cython \ swig:devel/swig \ bazel:devel/bazel \ - git:devel/git \ - clang-devel:devel/llvm-devel + git:devel/git LIB_DEPENDS= libnsync.so:devel/nsync \ libgpr.so:devel/grpc \ libpng.so:graphics/png \ libsnappy.so:archivers/snappy \ liblmdb.so:databases/lmdb \ libsqlite3.so:databases/sqlite3 \ libicuio.so:devel/icu \ libjsoncpp.so:devel/jsoncpp \ libpcre.so:devel/pcre \ libnsync.so:devel/nsync \ libprotobuf.so:devel/protobuf \ libprotobuf-c.so:devel/protobuf-c \ libre2.so:devel/re2 \ libgif.so:graphics/giflib \ libcurl.so:ftp/curl \ libflatbuffers.so:devel/flatbuffers \ libdouble-conversion.so:devel/double-conversion RUN_DEPENDS= pybind11>=2.6.2:devel/pybind11 \ ${PYTHON_PKGNAMEPREFIX}absl-py>=1.0.0:devel/py-absl-py \ ${PYTHON_PKGNAMEPREFIX}astunparse>=1.6.3:devel/py-astunparse@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}typing-extensions>=4.3.0:devel/py-typing-extensions@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}h5py>=2.9.0:science/py-h5py@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}flatbuffers>=2.0:devel/py-flatbuffers@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}gast>=0.5.3:devel/py-gast@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}numpy>=1.20.0:math/py-numpy@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}google-pasta>=0.1.7:devel/py-google-pasta@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}protobuf>=3.7.1:devel/py-protobuf@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}six>=1.10.0:devel/py-six@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}termcolor>=1.1.0:devel/py-termcolor@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}grpcio>=1.22.0:devel/py-grpcio@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}keras-preprocessing>=1.1.1:math/py-keras-preprocessing@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wrapt>=1.14.1:devel/py-wrapt@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wheel>=0.30.0:devel/py-wheel@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}opt-einsum>=3.3.0:math/py-opt-einsum@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}packaging>=21.3:devel/py-packaging@${PY_FLAVOR} \ pybind11>=2.6.2:devel/pybind11 -USES= python:3.7+ shebangfix jpeg ssl +USES= jpeg llvm:min=16,max=16 python:3.7+ shebangfix ssl USE_CXXSTD= c++17 -SHEBANG_GLOB= *.py USE_GITHUB= yes USE_PYTHON= distutils +SHEBANG_GLOB= *.py + BAZEL_BOOT= --output_user_root=${WRKDIR}/bazel_out PLIST_SUB= TF_PORT_VERSION=${PORTVERSION} OPTIONS_DEFINE= CPU_OPTS XLA OPTIONS_RADIO= PARALLEL_JOBS OPTIONS_RADIO_PARALLEL_JOBS= JOBS_1 JOBS_HALF JOBS_ALL PARALLEL_JOBS_DESC= How many jobs to run during build? OPTIONS_DEFAULT= JOBS_1 JOBS_1_DESC= Run one job JOBS_1_VARS= TF_JOBS_NUMBER=1 JOBS_HALF_DESC= Run half jobs JOBS_HALF_VARS= TF_JOBS_NUMBER="`expr \( ${MAKE_JOBS_NUMBER} + 1 \) / 2`" JOBS_ALL_DESC= Run all jobs JOBS_ALL_VARS= TF_JOBS_NUMBER=${MAKE_JOBS_NUMBER} CPU_OPTS_DESC= Enable optimisations using features available on your CPU CPU_OPTS_VARS= CPU_TARGET=native BAZEL_COPT="-c opt --copt=-march=native --copt=-mfpmath=sse" CPU_OPTS_VARS_OFF= CPU_TARGET=x86-64 XLA_DESC= Accelerated Linear Algebra XLA_VARS= XLA_OPT="1" XLA_VARS_OFF= XLA_OPT="0" .include "Makefile.MASTER_SITES" post-patch: # Set up a local repository with our pre-downloaded packages # This prevents bazel downloading the files without modifying # the bzl files. @${MKDIR} ${WRKDIR}/bazel-cache @${MKDIR} ${WRKDIR}/bazel-dist @${MKDIR} ${WRKDIR}/.bin .for file in ${DISTFILES:C/\:(.*)//} @${ECHO} "Moving ${file} to ${WRKDIR}/bazel-dist" @${CP} ${DISTDIR}/${DIST_SUBDIR}/${file} ${WRKDIR}/bazel-dist .endfor @${CP} ${PATCHDIR}/bazelrc ${WRKDIR}/bazelrc @${CP} -R ${PATCHDIR}/bazel/* \ ${WRKSRC}/third_party/ @${LN} -s ${PYTHON_CMD} ${WRKDIR}/.bin/python3 @cd ${WRKSRC} && \ ${REINPLACE_CMD} "s#--batch#${BAZEL_BOOT}\', \'--batch#" \ configure.py ${REINPLACE_CMD} "s#%%PYTHON%%#${PYTHON_VERSION}#" ${WRKSRC}/configure \ ${WRKSRC}/third_party/freebsd_python_fix.patch \ ${WRKSRC}/tensorflow/compiler/mlir/quantization/tensorflow/BUILD @${REINPLACE_CMD} "s#%%BAZEL_DIR%%#${WRKDIR}#" ${WRKDIR}/bazelrc @${REINPLACE_CMD} "s#%%BAZEL_DIST%%#${WRKDIR}#" ${WRKDIR}/bazelrc @${REINPLACE_CMD} "s#%%MLIR_LLVM_PATCH%%#/${WRKSRC}/bazel/bazel_llvm-raw_utils_bazel_configure.bzl#" \ ${WRKSRC}/tensorflow/compiler/mlir/hlo/WORKSPACE # use system pybind11, but use sed to fix includes, too many to maintain with patches @${FIND} ${WRKSRC} -type f -name '*.cc' | ${XARGS} ${REINPLACE_CMD} "s#include\/pybind11#pybind11#" # copy the toolchain over @${CP} -R ${PATCHDIR}/freebsd \ ${WRKSRC}/ @${REINPLACE_CMD} "s#%%PATH%%#${PATH}#" ${WRKDIR}/bazelrc @${REINPLACE_CMD} "s#%%PYTHON%%#${PYTHON_CMD}#" ${WRKSRC}/.bazelrc - @${REINPLACE_CMD} "s#%%LOCALBASE%%#${LOCALBASE}#" ${WRKDIR}/bazelrc \ + @${REINPLACE_CMD} \ + -e "s#%%LOCALBASE%%#${LOCALBASE}#" \ + -e "s#%%LLVM_PREFIX%%#${LLVM_PREFIX}#g" \ + -e "s#%%LLVM_VERSION%%#${LLVM_VERSION}#g" \ + ${WRKDIR}/bazelrc \ ${WRKSRC}/third_party/absl/system.absl.strings.BUILD \ ${WRKSRC}/freebsd/cc_toolchain_config.bzl \ ${WRKSRC}/.bazelrc \ ${WRKSRC}/tensorflow/tools/proto_text/BUILD \ ${WRKSRC}/tensorflow/BUILD \ ${WRKSRC}/tensorflow/core/BUILD \ ${WRKSRC}/third_party/systemlibs/protobuf.BUILD do-configure: @cd ${WRKSRC} && ${SETENV} \ PYTHON_BIN_PATH=${PYTHON_CMD} \ PYTHON_LIB_PATH="${PYTHON_SITELIBDIR}" \ KERAS_HOME="${WRKDIR}/.keras" \ TF_NEED_OPENCL_SYCL=0 \ TF_ENABLE_XLA=${XLA_OPT} \ TF_NEED_OPENCL=0 \ TF_NEED_MPI=0 \ TF_NEED_TENSORRT=0 \ TF_NEED_NGRAPH=0 \ TF_NEED_IGNITE=0 \ TF_NEED_ROCM=0 \ TF_NEED_CUDA=0 \ TF_SET_ANDROID_WORKSPACE=0 \ TF_DOWNLOAD_CLANG=0 \ TF_NEED_NCCL=0 \ TF_IGNORE_MAX_BAZEL_VERSION=1 \ CC_OPT_FLAGS="-march=${CPU_TARGET} -I${LOCALBASE}/include" \ PREFIX="${LOCALBASE}" \ TF_SYSTEM_LIBS="absl_py astor_archive astunparse_archive boringssl com_github_googlecloudplatform_google_cloud_cpp com_github_grpc_grpc \ com_google_absl com_google_protobuf curl cython dill_archive double_conversion functools32_archive gast_archive \ gif hwloc icu jsoncpp_git libjpeg_turbo lmdb nasm nsync opt_einsum_archive org_sqlite pasta png pybind11 six_archive snappy \ tblib_archive termcolor_archive typing_extensions_archive wrapt zlib" \ ./configure do-build: @cd ${WRKSRC} && \ bazel --bazelrc="${WRKDIR}/bazelrc" ${BAZEL_BOOT} build --jobs ${TF_JOBS_NUMBER} ${BAZEL_COPT} --host_copt="-I${LOCALBASE}/include" \ --host_linkopt="-L${LOCALBASE}/lib -lexecinfo" --linkopt="-L${LOCALBASE}/lib -lexecinfo" --copt="-I${LOCALBASE}/include" \ --verbose_failures -s \ --distdir=${WRKDIR}/bazel-dist \ //tensorflow:libtensorflow_framework.so \ //tensorflow:libtensorflow.so \ //tensorflow:libtensorflow_cc.so \ //tensorflow:install_headers \ //tensorflow/tools/pip_package:build_pip_package @cd ${WRKSRC} && ${SETENV} TMPDIR=${WRKDIR} \ bazel-bin/tensorflow/tools/pip_package/build_pip_package \ ${WRKDIR}/whl do-install: @${MKDIR} ${STAGEDIR}/${PYTHON_SITELIBDIR} @${MKDIR} ${STAGEDIR}/${LOCALBASE}/include/tensorflow @${UNZIP_NATIVE_CMD} -d ${STAGEDIR}/${PYTHON_SITELIBDIR} ${WRKDIR}/whl/${PORTNAME}-${PORTVERSION}-*.whl # put headers in the right folder ${CP} -R ${WRKSRC}/bazel-bin/tensorflow/include/tensorflow \ ${STAGEDIR}/${LOCALBASE}/include/ # pc files and libraries ${INSTALL_DATA} ${PATCHDIR}/tensorflow.pc ${STAGEDIR}/${LOCALBASE}/libdata/pkgconfig/ ${INSTALL_DATA} ${PATCHDIR}/tensorflow_cc.pc ${STAGEDIR}/${LOCALBASE}/libdata/pkgconfig/ @${REINPLACE_CMD} "s#%%LOCALBASE%%#${LOCALBASE}#" \ ${STAGEDIR}/${LOCALBASE}/libdata/pkgconfig/tensorflow.pc \ ${STAGEDIR}/${LOCALBASE}/libdata/pkgconfig/tensorflow_cc.pc @${REINPLACE_CMD} "s#%%VERSION%%#${PORTVERSION}#" \ ${STAGEDIR}/${LOCALBASE}/libdata/pkgconfig/tensorflow.pc #cleanup ${RM} ${STAGEDIR}/${LOCALBASE}/libdata/pkgconfig/*.bak # install the libraries and strip @${FIND} ${WRKSRC}/bazel-bin/tensorflow/ -depth 1 -name "*.so*" | ${XARGS} -I{} \ ${INSTALL_LIB} {} ${STAGEDIR}/${LOCALBASE}/lib/ @${FIND} ${STAGEDIR}/${LOCALBASE}/lib -name "*.so*" | ${XARGS} ${STRIP_CMD} post-install: # autoplist: thousands of files, all under ${PYTHON_SITELIBDIR} @cd ${STAGEDIR}${PREFIX} && \ ${FIND} ${PYTHON_SITELIBDIR:C|^${LOCALBASE}/||} -type f -or -type l | grep -v "egg-info/" >> ${TMPPLIST} .include diff --git a/science/py-tensorflow/files/freebsd/cc_toolchain_config.bzl b/science/py-tensorflow/files/freebsd/cc_toolchain_config.bzl index 38d7f122209c..ce3def7dfd66 100644 --- a/science/py-tensorflow/files/freebsd/cc_toolchain_config.bzl +++ b/science/py-tensorflow/files/freebsd/cc_toolchain_config.bzl @@ -1,287 +1,288 @@ # Copyright 2019 The Bazel 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. """A Starlark cc_toolchain configuration rule for FreeBSD and OpenBSD.""" load( "@bazel_tools//tools/cpp:cc_toolchain_config_lib.bzl", "action_config", "feature", "flag_group", "flag_set", "tool", "tool_path", "with_feature_set", ) load("@bazel_tools//tools/build_defs/cc:action_names.bzl", "ACTION_NAMES") all_compile_actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.assemble, ACTION_NAMES.preprocess_assemble, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_codegen, ACTION_NAMES.clif_match, ACTION_NAMES.lto_backend, ] all_cpp_compile_actions = [ ACTION_NAMES.cpp_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_codegen, ACTION_NAMES.clif_match, ] all_link_actions = [ ACTION_NAMES.cpp_link_executable, ACTION_NAMES.cpp_link_dynamic_library, ACTION_NAMES.cpp_link_nodeps_dynamic_library, ] def _impl(ctx): cpu = ctx.attr.cpu is_bsd = cpu == "k8" or cpu == "freebsd" or cpu == "openbsd" compiler = "compiler" toolchain_identifier = "local_freebsd" host_system_name = "local" if is_bsd else "armeabi-v7a" target_system_name = "local" if is_bsd else "armeabi-v7a" target_libc = "local" if is_bsd else "armeabi-v7a" abi_version = "local" if is_bsd else "armeabi-v7a" abi_libc_version = "local" if is_bsd else "armeabi-v7a" objcopy_embed_data_action = action_config( action_name = "objcopy_embed_data", enabled = True, tools = [tool(path = "/usr/bin/objcopy")], ) action_configs = [objcopy_embed_data_action] if is_bsd else [] default_link_flags_feature = feature( name = "default_link_flags", enabled = True, flag_sets = [ flag_set( actions = all_link_actions, flag_groups = [ flag_group( flags = [ "-Wl,-undefined,dynamic_lookup", + "-Wl,--undefined-version", "-lc++", "-Wl,-z,relro,-z,now", "-no-canonical-prefixes", "-L%%LOCALBASE%%/lib", ], ), ], ), flag_set( actions = all_link_actions, flag_groups = [flag_group(flags = ["-Wl,--gc-sections"])], with_features = [with_feature_set(features = ["opt"])], ), ], ) unfiltered_compile_flags_feature = feature( name = "unfiltered_compile_flags", enabled = True, flag_sets = [ flag_set( actions = all_compile_actions, flag_groups = [ flag_group( flags = [ "-no-canonical-prefixes", "-Wno-builtin-macro-redefined", "-D__DATE__=\"redacted\"", "-D__TIMESTAMP__=\"redacted\"", "-D__TIME__=\"redacted\"", ], ), ], ), ], ) supports_pic_feature = feature(name = "supports_pic", enabled = True) default_compile_flags_feature = feature( name = "default_compile_flags", enabled = True, flag_sets = [ flag_set( actions = all_compile_actions, flag_groups = [ flag_group( flags = [ "-U_FORTIFY_SOURCE", "-D_FORTIFY_SOURCE=1", "-fstack-protector", "-Wall", "-fno-omit-frame-pointer", ], ), ], ), flag_set( actions = all_compile_actions, flag_groups = [flag_group(flags = ["-g"])], with_features = [with_feature_set(features = ["dbg"])], ), flag_set( actions = all_compile_actions, flag_groups = [ flag_group( flags = [ "-g0", "-O2", "-DNDEBUG", "-ffunction-sections", "-fdata-sections", ], ), ], with_features = [with_feature_set(features = ["opt"])], ), flag_set( actions = all_cpp_compile_actions + [ACTION_NAMES.lto_backend], flag_groups = [flag_group(flags = ["-std=c++17"])], ), ], ) opt_feature = feature(name = "opt") supports_dynamic_linker_feature = feature(name = "supports_dynamic_linker", enabled = True) objcopy_embed_flags_feature = feature( name = "objcopy_embed_flags", enabled = True, flag_sets = [ flag_set( actions = ["objcopy_embed_data"], flag_groups = [flag_group(flags = ["-I", "binary"])], ), ], ) dbg_feature = feature(name = "dbg") user_compile_flags_feature = feature( name = "user_compile_flags", enabled = True, flag_sets = [ flag_set( actions = all_compile_actions, flag_groups = [ flag_group( flags = ["%{user_compile_flags}"], iterate_over = "user_compile_flags", expand_if_available = "user_compile_flags", ), ], ), ], ) sysroot_feature = feature( name = "sysroot", enabled = True, flag_sets = [ flag_set( actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.preprocess_assemble, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_codegen, ACTION_NAMES.clif_match, ACTION_NAMES.lto_backend, ] + all_link_actions, flag_groups = [ flag_group( flags = ["--sysroot=%{sysroot}"], expand_if_available = "sysroot", ), ], ), ], ) if is_bsd: features = [ default_compile_flags_feature, default_link_flags_feature, supports_dynamic_linker_feature, supports_pic_feature, objcopy_embed_flags_feature, opt_feature, dbg_feature, user_compile_flags_feature, sysroot_feature, unfiltered_compile_flags_feature, ] else: features = [supports_dynamic_linker_feature, supports_pic_feature] if (is_bsd): - cxx_builtin_include_directories = ["/usr/local/llvm-devel/lib/clang/16.0.0", "/usr/include/c++/v1", "/usr/local/include", "/usr/include"] + cxx_builtin_include_directories = ["%%LLVM_PREFIX%%/lib/clang/%%LLVM_VERSION%%.0.0", "%%LLVM_PREFIX%%/lib/clang/%%LLVM_VERSION%%/include", "/usr/include/c++/v1", "/usr/local/include", "/usr/include"] else: cxx_builtin_include_directories = [] if is_bsd: tool_paths = [ tool_path(name = "ar", path = "/usr/bin/ar"), - tool_path(name = "cpp", path = "/usr/local/llvm-devel/bin/clang-cpp"), + tool_path(name = "cpp", path = "%%LLVM_PREFIX%%/bin/clang-cpp"), tool_path(name = "dwp", path = "/usr/bin/dwp"), - tool_path(name = "gcc", path = "/usr/local/llvm-devel/bin/clang-16"), + tool_path(name = "gcc", path = "%%LLVM_PREFIX%%/bin/clang-%%LLVM_VERSION%%"), tool_path(name = "gcov", path = "/usr/bin/gcov"), - tool_path(name = "ld", path = "/usr/local/llvm-devel/bin/ld"), + tool_path(name = "ld", path = "%%LLVM_PREFIX%%/bin/ld"), tool_path(name = "nm", path = "/usr/bin/nm"), tool_path(name = "objcopy", path = "/usr/bin/objcopy"), tool_path(name = "objdump", path = "/usr/bin/objdump"), tool_path(name = "strip", path = "/usr/bin/strip"), ] else: tool_paths = [ tool_path(name = "ar", path = "/bin/false"), tool_path(name = "cpp", path = "/bin/false"), tool_path(name = "dwp", path = "/bin/false"), tool_path(name = "gcc", path = "/bin/false"), tool_path(name = "gcov", path = "/bin/false"), tool_path(name = "ld", path = "/bin/false"), tool_path(name = "nm", path = "/bin/false"), tool_path(name = "objcopy", path = "/bin/false"), tool_path(name = "objdump", path = "/bin/false"), tool_path(name = "strip", path = "/bin/false"), ] out = ctx.actions.declare_file(ctx.label.name) ctx.actions.write(out, "Fake executable") return [ cc_common.create_cc_toolchain_config_info( ctx = ctx, features = features, action_configs = action_configs, cxx_builtin_include_directories = cxx_builtin_include_directories, toolchain_identifier = toolchain_identifier, host_system_name = host_system_name, target_system_name = target_system_name, target_cpu = cpu, target_libc = target_libc, compiler = compiler, abi_version = abi_version, abi_libc_version = abi_libc_version, tool_paths = tool_paths, ), DefaultInfo( executable = out, ), ] cc_toolchain_config = rule( implementation = _impl, attrs = { "cpu": attr.string(mandatory = True), }, provides = [CcToolchainConfigInfo], executable = True, ) diff --git a/science/py-tensorflow/files/patch-tensorflow_BUILD b/science/py-tensorflow/files/patch-tensorflow_BUILD index b9e955ed7a67..1dfdce1c7da7 100644 --- a/science/py-tensorflow/files/patch-tensorflow_BUILD +++ b/science/py-tensorflow/files/patch-tensorflow_BUILD @@ -1,22 +1,31 @@ ---- tensorflow/BUILD.orig 2022-05-22 22:28:22 UTC -+++ tensorflow/BUILD -@@ -938,8 +938,10 @@ tf_cc_shared_object( +--- tensorflow/BUILD.orig 2022-05-23 00:28:22.000000000 +0200 ++++ tensorflow/BUILD 2023-03-30 17:47:04.211287000 +0200 +@@ -938,8 +938,11 @@ ], "//tensorflow:windows": [], "//tensorflow:freebsd": [ + "-Wl,--unresolved-symbols=ignore-all", ++ "-Wl,--undefined-version", "-Wl,--version-script,$(location //tensorflow:tf_framework_version_script.lds)", "-lexecinfo", + "-L/usr/local/lib", ], "//conditions:default": [ "-Wl,--version-script,$(location //tensorflow:tf_framework_version_script.lds)", -@@ -1021,7 +1023,7 @@ tf_cc_shared_object( +@@ -1021,7 +1024,7 @@ # copybara:uncomment_end "//conditions:default": [ "-z defs", - "-Wl,--version-script,$(location //tensorflow/c:version_script.lds)", -+ "-L/lib,-L/usr/lib,--unresolved-symbols=ignore-all,-Wl,--version-script,$(location //tensorflow/c:version_script.lds)", ++ "-L/lib,-L/usr/lib,--unresolved-symbols=ignore-all,-Wl,--undefined-version,-Wl,--version-script,$(location //tensorflow/c:version_script.lds)", ], }), per_os_targets = True, +@@ -1054,6 +1057,7 @@ + "//tensorflow:windows": [], + "//conditions:default": [ + "-z defs", ++ "-Wl,--undefined-version", + "-Wl,--version-script,$(location //tensorflow:tf_version_script.lds)", + ], + }), diff --git a/science/py-tensorflow/files/patch-tensorflow_java_BUILD b/science/py-tensorflow/files/patch-tensorflow_java_BUILD new file mode 100644 index 000000000000..33b7db687b88 --- /dev/null +++ b/science/py-tensorflow/files/patch-tensorflow_java_BUILD @@ -0,0 +1,10 @@ +--- tensorflow/java/BUILD.orig 2023-03-30 17:51:23.641040000 +0200 ++++ tensorflow/java/BUILD 2023-03-30 17:51:34.802406000 +0200 +@@ -446,6 +446,7 @@ + "//tensorflow:windows": [], + "//conditions:default": [ + "-z defs", ++ "-Wl,--undefined-version", + "-s", + "-Wl,--version-script,$(location {})".format(LINKER_VERSION_SCRIPT), + ], diff --git a/science/py-tensorflow/files/patch-tensorflow_lite_BUILD b/science/py-tensorflow/files/patch-tensorflow_lite_BUILD new file mode 100644 index 000000000000..8d54d284e506 --- /dev/null +++ b/science/py-tensorflow/files/patch-tensorflow_lite_BUILD @@ -0,0 +1,10 @@ +--- tensorflow/lite/BUILD.orig 2023-03-30 18:04:54.206396000 +0200 ++++ tensorflow/lite/BUILD 2023-03-30 18:04:24.422539000 +0200 +@@ -1204,6 +1204,7 @@ + "//tensorflow:windows": [], + "//conditions:default": [ + "-Wl,-z,defs", ++ "-Wl,--undefined-version", + "-Wl,--version-script,$(location //tensorflow/lite:tflite_version_script.lds)", + ], + }), diff --git a/science/py-tensorflow/files/patch-tensorflow_lite_build_def.bzl b/science/py-tensorflow/files/patch-tensorflow_lite_build_def.bzl new file mode 100644 index 000000000000..58d62b5e5dd5 --- /dev/null +++ b/science/py-tensorflow/files/patch-tensorflow_lite_build_def.bzl @@ -0,0 +1,10 @@ +--- tensorflow/lite/build_def.bzl.orig 2023-03-30 17:56:40.338369000 +0200 ++++ tensorflow/lite/build_def.bzl 2023-03-30 17:56:50.244995000 +0200 +@@ -172,6 +172,7 @@ + ], + clean_dep("//tensorflow:windows"): [], + "//conditions:default": [ ++ "-Wl,--undefined-version", + "-Wl,--version-script,$(location {})".format(linkscript), + "-Wl,-soname," + name, + ], diff --git a/science/py-tensorflow/files/patch-tensorflow_lite_c_BUILD b/science/py-tensorflow/files/patch-tensorflow_lite_c_BUILD new file mode 100644 index 000000000000..c88f9a6c9aa4 --- /dev/null +++ b/science/py-tensorflow/files/patch-tensorflow_lite_c_BUILD @@ -0,0 +1,10 @@ +--- tensorflow/lite/c/BUILD.orig 2023-03-30 18:05:35.316884000 +0200 ++++ tensorflow/lite/c/BUILD 2023-03-30 18:05:48.639862000 +0200 +@@ -29,6 +29,7 @@ + "//tensorflow:windows": [], + "//conditions:default": [ + "-z defs", ++ "-Wl,--undefined-version", + "-Wl,--version-script,$(location //tensorflow/lite/c:version_script.lds)", + ], + }), diff --git a/science/py-tensorflow/files/patch-tensorflow_lite_delegates_flex_build_def.bzl b/science/py-tensorflow/files/patch-tensorflow_lite_delegates_flex_build_def.bzl new file mode 100644 index 000000000000..9b207ba77c9d --- /dev/null +++ b/science/py-tensorflow/files/patch-tensorflow_lite_delegates_flex_build_def.bzl @@ -0,0 +1,10 @@ +--- tensorflow/lite/delegates/flex/build_def.bzl.orig 2023-03-30 17:57:26.322444000 +0200 ++++ tensorflow/lite/delegates/flex/build_def.bzl 2023-03-30 17:58:45.005163000 +0200 +@@ -223,6 +223,7 @@ + "//tensorflow:windows": [], + "//conditions:default": [ + "-Wl,-z,defs", ++ "-Wl,--undefined-version", + "-Wl,--version-script,$(location //tensorflow/lite/delegates/flex:version_script.lds)", + ], + }), diff --git a/science/py-tensorflow/files/patch-tensorflow_lite_delegates_hexagon_hexagon_nn_BUILD b/science/py-tensorflow/files/patch-tensorflow_lite_delegates_hexagon_hexagon_nn_BUILD new file mode 100644 index 000000000000..010da725e1f8 --- /dev/null +++ b/science/py-tensorflow/files/patch-tensorflow_lite_delegates_hexagon_hexagon_nn_BUILD @@ -0,0 +1,10 @@ +--- tensorflow/lite/delegates/hexagon/hexagon_nn/BUILD.orig 2023-03-30 17:50:25.801299000 +0200 ++++ tensorflow/lite/delegates/hexagon/hexagon_nn/BUILD 2023-03-30 17:50:38.457225000 +0200 +@@ -76,6 +76,7 @@ + name = "libhexagon_interface.so", + linkopts = [ + "-Wl,-soname=libhexagon_interface.so", ++ "-Wl,--undefined-version", + "-z defs", + "-Wl,--version-script,$(location //tensorflow/lite/delegates/hexagon/hexagon_nn:version_scripts.lds)", + ] + select({ diff --git a/science/py-tensorflow/files/patch-tensorflow_tensorflow.bzl b/science/py-tensorflow/files/patch-tensorflow_tensorflow.bzl new file mode 100644 index 000000000000..a630a8fa1d09 --- /dev/null +++ b/science/py-tensorflow/files/patch-tensorflow_tensorflow.bzl @@ -0,0 +1,26 @@ +--- tensorflow/tensorflow.bzl.orig 2023-03-30 17:54:35.641567000 +0200 ++++ tensorflow/tensorflow.bzl 2023-03-30 17:56:12.747346000 +0200 +@@ -2305,6 +2305,7 @@ + ], + clean_dep("//tensorflow:windows"): [], + "//conditions:default": [ ++ "-Wl,--undefined-version", + "-Wl,--version-script", + "$(location %s.lds)" % vscriptname, + ], +@@ -2975,6 +2976,7 @@ + "/ignore:4070", + ] if win_def_file else [], + "//conditions:default": [ ++ "-Wl,--undefined-version", + "-Wl,--version-script", + "$(location %s)" % version_script_file, + ], +@@ -3035,6 +3037,7 @@ + ], + clean_dep("//tensorflow:windows"): [], + "//conditions:default": [ ++ "-Wl,--undefined-version", + "-Wl,--version-script", + "$(location %s)" % version_script_file, + ], diff --git a/science/py-tensorflow/files/patch-tensorflow_tf_framework_version_script.lds b/science/py-tensorflow/files/patch-tensorflow_tf_framework_version_script.lds new file mode 100644 index 000000000000..890e1456b9ba --- /dev/null +++ b/science/py-tensorflow/files/patch-tensorflow_tf_framework_version_script.lds @@ -0,0 +1,12 @@ +--- tensorflow/tf_framework_version_script.lds.orig 2023-03-30 17:42:11.255357000 +0200 ++++ tensorflow/tf_framework_version_script.lds 2023-03-30 17:42:18.431845000 +0200 +@@ -3,9 +3,6 @@ + local: + jpeg_*; + jinit_*; +- jdiv_round_up; +- jround_up; +- jzero_far; + jcopy_*; + jsimd_*; + hwloc_*;