From 7b1cf495172e9a4de2970430a712fa9a2ef66e4c Mon Sep 17 00:00:00 2001 From: Chen Lai Date: Mon, 22 Apr 2024 20:41:15 -0700 Subject: [PATCH] strip symbol when linking (#3234) Summary: Pull Request resolved: https://github.com/pytorch/executorch/pull/3234 Refer to https://sourceware.org/binutils/docs/binutils/strip.html command to build for android ``` rm -rf cmake-android-out && mkdir cmake-android-out cmake -DBUCK2="$BUCK" \ -DCMAKE_INSTALL_PREFIX=cmake-android-out \ -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK}/build/cmake/android.toolchain.cmake" \ -DANDROID_ABI="arm64-v8a" \ -DANDROID_PLATFORM=android-29 \ -DCMAKE_BUILD_TYPE=Release \ -DEXECUTORCH_BUILD_EXTENSION_MODULE=ON \ -DEXECUTORCH_BUILD_EXTENSION_DATA_LOADER=ON \ -DEXECUTORCH_BUILD_CUSTOM=ON \ -DEXECUTORCH_BUILD_OPTIMIZED=ON \ -DEXECUTORCH_BUILD_QUANTIZED=ON \ -DEXECUTORCH_BUILD_XNNPACK=ON \ -DEXECUTORCH_ENABLE_LOGGING=ON \ -Bcmake-android-out . cmake --build cmake-android-out -j16 --target install --config Release cmake -DBUCK2="$BUCK" \ -DCMAKE_INSTALL_PREFIX=cmake-android-out \ -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK}/build/cmake/android.toolchain.cmake" \ -DANDROID_ABI="arm64-v8a" \ -DANDROID_PLATFORM=android-23 \ -DCMAKE_BUILD_TYPE=Release \ -DEXECUTORCH_BUILD_CUSTOM=ON \ -DEXECUTORCH_BUILD_OPTIMIZED=ON \ -DEXECUTORCH_BUILD_XNNPACK=ON \ -DEXECUTORCH_ENABLE_LOGGING=ON \ -DEXECUTORCH_USE_TIKTOKEN=ON \ -Bcmake-android-out/${dir} \ ${dir} cmake --build cmake-android-out/${dir} -j16 --config Release ``` ``` (executorch) chenlai@chenlai-mbp executorch % du -sh cmake-android-out/examples/models/llama2/* 44K cmake-android-out/examples/models/llama2/CMakeCache.txt 2.2M cmake-android-out/examples/models/llama2/CMakeFiles 76K cmake-android-out/examples/models/llama2/Makefile 4.0K cmake-android-out/examples/models/llama2/cmake_install.cmake 4.0K cmake-android-out/examples/models/llama2/compile_commands.json 4.9M cmake-android-out/examples/models/llama2/custom_ops 736K cmake-android-out/examples/models/llama2/lib 54M cmake-android-out/examples/models/llama2/llama_main 16K cmake-android-out/examples/models/llama2/options-pinned.h 11M cmake-android-out/examples/models/llama2/runner 151M cmake-android-out/examples/models/llama2/third-party ``` Reviewed By: lucylq, kirklandsign Differential Revision: D56450794 fbshipit-source-id: 79e77732713708f3ced3801d11e30a9141075a76 (cherry picked from commit d8e94b0d6eb17d1b84e82ecd4f530b431212d3db) --- examples/models/llama2/CMakeLists.txt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/examples/models/llama2/CMakeLists.txt b/examples/models/llama2/CMakeLists.txt index ea4096074ee..a0bb4d34632 100644 --- a/examples/models/llama2/CMakeLists.txt +++ b/examples/models/llama2/CMakeLists.txt @@ -120,9 +120,14 @@ if(ANDROID) list(APPEND link_libraries log) endif() -target_compile_options(llama_main PUBLIC ${_common_compile_options} - -DET_USE_THREADPOOL) -target_link_libraries(llama_main PUBLIC ${link_libraries}) +add_executable(llama_main ${_srcs}) +if(CMAKE_BUILD_TYPE STREQUAL "Release") + target_link_options(llama_main PRIVATE "LINKER:--gc-sections,-s") +endif() + +target_include_directories(llama_main PUBLIC ${_common_include_directories}) +target_link_libraries(llama_main PUBLIC llama_runner ${link_libraries}) +target_compile_options(llama_main PUBLIC ${_common_compile_options}) if(APPLE) target_link_options_shared_lib(executorch)