diff --git a/mace/benchmark/BUILD b/mace/benchmark/BUILD index 6f8d6948e3c77d85a7fbb0b808154f39bbe0d0c6..b086ad24479e74a31e429fc53454ebc38021bdc3 100644 --- a/mace/benchmark/BUILD +++ b/mace/benchmark/BUILD @@ -60,7 +60,7 @@ cc_binary( "-pie", "-llog", ]), - linkstatic = 1, + linkstatic = 0, deps = [ ":statistics", "//external:gflags_nothreads", diff --git a/mace/examples/cli/BUILD b/mace/examples/cli/BUILD index 049b030bb00ad3f4c26740c83244ceaafc6302ef..be0de25352c1e406a1197e365e81a63fa00108b8 100644 --- a/mace/examples/cli/BUILD +++ b/mace/examples/cli/BUILD @@ -52,7 +52,7 @@ cc_binary( "-pie", "-llog", ]), - linkstatic = 1, + linkstatic = 0, deps = [ "//external:gflags_nothreads", "//mace/codegen:generated_mace_engine_factory", diff --git a/mace/libmace/BUILD b/mace/libmace/BUILD index ccde07e10a9823a78aa62b037096aac07d87a64d..6ad73587a083a9f0d70884615a85e534a04a838a 100644 --- a/mace/libmace/BUILD +++ b/mace/libmace/BUILD @@ -54,7 +54,7 @@ cc_binary( "-fopenmp", ]), linkshared = 1, - linkstatic = 1, + linkstatic = 0, deps = [ ":mace_version_script.lds", "//mace/libmace", diff --git a/mace/tools/validation/BUILD b/mace/tools/validation/BUILD index b16b01f37132fa2d875c7fce6cbeb511acac6468..7e238c00730ba3f3ad87259aa857be61f8e72653 100644 --- a/mace/tools/validation/BUILD +++ b/mace/tools/validation/BUILD @@ -38,7 +38,7 @@ cc_binary( "-pie", "-llog", ]), - linkstatic = 1, + linkstatic = 0, deps = [ "//external:gflags_nothreads", "//mace/codegen:generated_mace_engine_factory", diff --git a/tools/sh_commands.py b/tools/sh_commands.py index e9c699b9484e76b9883ba029229f8c5da6d37563..9052ac36ea0944b575fc6f91578e41f8d98e224a 100644 --- a/tools/sh_commands.py +++ b/tools/sh_commands.py @@ -672,6 +672,25 @@ def create_internal_storage_dir(serialno, phone_data_dir): return internal_storage_dir +def push_depended_so_libs(libmace_dynamic_library_path, + abi, phone_data_dir, serialno): + dep_so_libs = sh.bash("/opt/android-ndk/ndk-depends", + libmace_dynamic_library_path) + for dep in split_stdout(dep_so_libs): + if dep == "libgnustl_shared.so": + adb_push( + "%s/sources/cxx-stl/gnu-libstdc++/4.9/libs/%s/libgnustl_shared.so" # noqa + % (os.environ["ANDROID_NDK_HOME"], abi), + phone_data_dir, + serialno) + elif dep == "libc++_shared.so": + adb_push( + "%s/sources/cxx-stl/llvm-libc++/libs/%s/libc++_shared.so" # noqa + % (os.environ["ANDROID_NDK_HOME"], abi), + phone_data_dir, + serialno) + + def tuning_run(abi, serialno, target_dir, @@ -794,6 +813,8 @@ def tuning_run(abi, if link_dynamic: adb_push(libmace_dynamic_library_path, phone_data_dir, serialno) + push_depended_so_libs(libmace_dynamic_library_path, abi, + phone_data_dir, serialno) adb_push("%s/%s" % (target_dir, target_name), phone_data_dir, serialno) @@ -1118,6 +1139,9 @@ def benchmark_model(abi, if link_dynamic: adb_push(libmace_dynamic_library_path, phone_data_dir, serialno) + push_depended_so_lib(libmace_dynamic_library_path, abi, + phone_data_dir, serialno) + adb_push("%s/%s" % (benchmark_binary_dir, benchmark_binary_name), phone_data_dir, serialno)