From f7a225c2e904729a1669a2a4385bd2ab174c2cd7 Mon Sep 17 00:00:00 2001 From: yejianwu Date: Tue, 30 Oct 2018 10:13:31 +0800 Subject: [PATCH] fix crash when using libmace.so --- mace/benchmark/BUILD | 2 +- mace/examples/cli/BUILD | 2 +- mace/libmace/BUILD | 2 +- mace/tools/validation/BUILD | 2 +- tools/sh_commands.py | 24 ++++++++++++++++++++++++ 5 files changed, 28 insertions(+), 4 deletions(-) diff --git a/mace/benchmark/BUILD b/mace/benchmark/BUILD index 6f8d6948..b086ad24 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 049b030b..be0de253 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 ccde07e1..6ad73587 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 b16b01f3..7e238c00 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 e9c699b9..9052ac36 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) -- GitLab