Eliminate unused code and data from Linux binaries. (#849)

This commit is contained in:
Pranav Sharma 2019-04-18 23:00:27 -07:00 committed by Changming Sun
parent f09a76d669
commit 780aad8fd0
3 changed files with 10 additions and 8 deletions

View file

@ -404,9 +404,10 @@ if (WIN32)
endif()
else()
add_definitions(-DPLATFORM_POSIX)
# Enable warning in Linux
string(APPEND CMAKE_CXX_FLAGS " -Wall -Wextra")
string(APPEND CMAKE_C_FLAGS " -Wall -Wextra")
# Enable warning and enable space optimization in Linux
string(APPEND CMAKE_CXX_FLAGS " -Wall -Wextra -ffunction-sections -fdata-sections")
string(APPEND CMAKE_C_FLAGS " -Wall -Wextra -ffunction-sections -fdata-sections")
if(onnxruntime_DEV_MODE)
if(NOT onnxruntime_USE_TVM)
string(APPEND CMAKE_CXX_FLAGS " -Werror")

View file

@ -19,7 +19,7 @@ foreach(f ${ONNXRUNTIME_PROVIDER_NAMES})
list(APPEND SYMBOL_FILES "${ONNXRUNTIME_ROOT}/core/providers/${f}/symbols.txt")
endforeach()
add_custom_command(OUTPUT ${SYMBOL_FILE}
add_custom_command(OUTPUT ${SYMBOL_FILE}
COMMAND ${PYTHON_EXECUTABLE} "${REPO_ROOT}/tools/ci_build/gen_def.py" --version_file "${ONNXRUNTIME_ROOT}/../VERSION_NUMBER" --src_root "${ONNXRUNTIME_ROOT}" --config ${ONNXRUNTIME_PROVIDER_NAMES} --style=${OUTPUT_STYLE} --output ${SYMBOL_FILE}
DEPENDS ${SYMBOL_FILES}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
@ -35,10 +35,11 @@ if(UNIX)
if (APPLE)
set(BEGIN_WHOLE_ARCHIVE -Xlinker -all_load)
set(END_WHOLE_ARCHIVE -Xlinker -noall_load)
set(ONNXRUNTIME_SO_LINK_FLAG "-Xlinker -dead_strip")
else()
set(BEGIN_WHOLE_ARCHIVE -Xlinker --whole-archive)
set(END_WHOLE_ARCHIVE -Xlinker --no-whole-archive)
set(ONNXRUNTIME_SO_LINK_FLAG "-Xlinker --version-script=${SYMBOL_FILE} -Xlinker --no-undefined")
set(ONNXRUNTIME_SO_LINK_FLAG "-Xlinker --version-script=${SYMBOL_FILE} -Xlinker --no-undefined -Xlinker --gc-sections")
endif()
else()
set(ONNXRUNTIME_SO_LINK_FLAG "-DEF:${SYMBOL_FILE}")
@ -60,7 +61,7 @@ target_link_libraries(onnxruntime PRIVATE
${PROVIDERS_MKLDNN}
${PROVIDERS_TENSORRT}
onnxruntime_optimizer
onnxruntime_providers
onnxruntime_providers
onnxruntime_util
${onnxruntime_tvm_libs}
onnxruntime_framework

View file

@ -46,7 +46,7 @@ endif()
if(onnxruntime_PYBIND_EXPORT_OPSCHEMA)
target_compile_definitions(onnxruntime_pybind11_state PRIVATE onnxruntime_PYBIND_EXPORT_OPSCHEMA)
endif()
endif()
if (onnxruntime_USE_MKLDNN)
target_compile_definitions(onnxruntime_pybind11_state PRIVATE USE_MKLDNN=1)
@ -58,7 +58,7 @@ onnxruntime_add_include_to_target(onnxruntime_pybind11_state gsl)
if(APPLE)
set(ONNXRUNTIME_SO_LINK_FLAG "-Xlinker -exported_symbols_list ${ONNXRUNTIME_ROOT}/python/exported_symbols.lst")
elseif(UNIX)
set(ONNXRUNTIME_SO_LINK_FLAG "-Xlinker --version-script=${ONNXRUNTIME_ROOT}/python/version_script.lds -Xlinker --no-undefined")
set(ONNXRUNTIME_SO_LINK_FLAG "-Xlinker --version-script=${ONNXRUNTIME_ROOT}/python/version_script.lds -Xlinker --no-undefined -Xlinker --gc-sections")
else()
set(ONNXRUNTIME_SO_LINK_FLAG "-DEF:${ONNXRUNTIME_ROOT}/python/pybind.def")
endif()