Skip to content

Commit 269246c

Browse files
authored
Merge pull request #12046 from tensor-tang/refine/infer/api/dynamic
inference api symbol hidden
2 parents fbe25ef + e4e0ffd commit 269246c

File tree

3 files changed

+30
-1
lines changed

3 files changed

+30
-1
lines changed

paddle/contrib/inference/CMakeLists.txt

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,19 @@ add_dependencies(paddle_inference_api_shared ${FLUID_CORE_MODULES} ${GLOB_OP_LIB
5353
set_target_properties(paddle_inference_api_shared PROPERTIES OUTPUT_NAME paddle_inference_api)
5454

5555
if(NOT APPLE)
56-
set(LINK_FLAGS "-fPIC -fvisibility=hidden")
56+
set(LINK_FLAGS "-Wl,--version-script ${CMAKE_CURRENT_SOURCE_DIR}/paddle_inference_api.map")
5757
set_target_properties(paddle_inference_api_shared PROPERTIES LINK_FLAGS "${LINK_FLAGS}")
58+
FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/check_symbol.cmake
59+
"execute_process(COMMAND bash -c \"${CMAKE_CURRENT_SOURCE_DIR}/check_symbol.sh"
60+
" ${CMAKE_CURRENT_BINARY_DIR}/libpaddle_inference_api.so\" RESULT_VARIABLE symbol_res)\n"
61+
"if(NOT \"\${symbol_res}\" STREQUAL \"0\")\n"
62+
" message(FATAL_ERROR \"Check symbol failed.\")\n"
63+
"endif()\n")
64+
add_custom_command(
65+
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/.check_symbol"
66+
COMMAND ${CMAKE_COMMAND} -P "${CMAKE_CURRENT_BINARY_DIR}/check_symbol.cmake"
67+
DEPENDS paddle_inference_api_shared)
68+
add_custom_target(check_symbol ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/.check_symbol")
5869
endif()
5970

6071
cc_test(test_paddle_inference_api
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#!/bin/bash
2+
3+
lib=$1
4+
if [ $# -ne 1 ]; then echo "No input library"; exit -1 ; fi
5+
6+
num_paddle_syms=$(nm -D --defined-only ${lib} | grep paddle | wc -l)
7+
num_google_syms=$(nm -D --defined-only ${lib} | grep google | wc -l)
8+
9+
if [ $num_paddle_syms -le 0 ]; then echo "Have no paddle symbols"; exit -1 ; fi
10+
if [ $num_google_syms -ge 1 ]; then echo "Have some google symbols"; exit -1 ; fi
11+
12+
exit 0
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
global:
3+
*paddle*;
4+
local:
5+
*;
6+
};

0 commit comments

Comments
 (0)