Add symbol versioning
Add symbol versioning to the roctracer64 and roctx64 library, and only expose the OnLoad and OnUnload tracer_tool symbols. Change-Id: I7f160fc3e568567fd1146ff5b9c0aef3bdcccf53
This commit is contained in:
+2
-1
@@ -26,7 +26,8 @@ cmake_minimum_required(VERSION 3.16.0)
|
||||
set(ROCTRACER_NAME "roctracer")
|
||||
set(ROCTRACER_TARGET "${ROCTRACER_NAME}")
|
||||
|
||||
project(ROCTRACER VERSION 4.0.0)
|
||||
string(TOUPPER "${ROCTRACER_NAME}" ROCTRACER_NAME_upper)
|
||||
project(${ROCTRACER_NAME_upper} VERSION 4.1.0)
|
||||
|
||||
## Build is not supported on Windows plaform
|
||||
if(WIN32)
|
||||
|
||||
@@ -125,6 +125,7 @@ add_library(roctracer ${LIBRARY_TYPE}
|
||||
set_target_properties(roctracer PROPERTIES
|
||||
CXX_VISIBILITY_PRESET hidden
|
||||
OUTPUT_NAME "roctracer64"
|
||||
LINK_DEPENDS core.exportmap
|
||||
VERSION ${ROCTRACER_VERSION}
|
||||
SOVERSION ${ROCTRACER_VERSION_MAJOR}
|
||||
)
|
||||
@@ -145,6 +146,10 @@ target_include_directories(roctracer
|
||||
${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/inc ${PROJECT_SOURCE_DIR}/src
|
||||
${PROJECT_BINARY_DIR}/inc
|
||||
)
|
||||
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/core/exportmap.in core.exportmap @ONLY)
|
||||
target_link_options(roctracer PRIVATE -Wl,--version-script=core.exportmap -Wl,--no-undefined)
|
||||
|
||||
target_link_libraries(roctracer PRIVATE hsa-runtime64::hsa-runtime64 Threads::Threads dl)
|
||||
|
||||
install(TARGETS ${ROCTRACER_TARGET} LIBRARY DESTINATION lib)
|
||||
@@ -167,6 +172,7 @@ add_library(roctx ${LIBRARY_TYPE} ${ROCTX_SOURCES})
|
||||
set_target_properties(roctx PROPERTIES
|
||||
CXX_VISIBILITY_PRESET hidden
|
||||
OUTPUT_NAME "roctx64"
|
||||
LINK_DEPENDS roctx.exportmap
|
||||
VERSION ${ROCTRACER_VERSION}
|
||||
SOVERSION ${ROCTRACER_VERSION_MAJOR}
|
||||
)
|
||||
@@ -176,4 +182,7 @@ target_include_directories(roctx PRIVATE
|
||||
${PROJECT_SOURCE_DIR}/src
|
||||
)
|
||||
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/roctx/exportmap.in roctx.exportmap @ONLY)
|
||||
target_link_options(roctx PRIVATE -Wl,--version-script=roctx.exportmap -Wl,--no-undefined)
|
||||
|
||||
install(TARGETS roctx LIBRARY DESTINATION lib)
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
@CMAKE_PROJECT_NAME@_4.1 {
|
||||
global: OnLoad;
|
||||
OnUnload;
|
||||
roctracer_activity_pop_external_correlation_id;
|
||||
roctracer_activity_push_external_correlation_id;
|
||||
roctracer_close_pool;
|
||||
roctracer_close_pool_expl;
|
||||
roctracer_default_pool;
|
||||
roctracer_default_pool_expl;
|
||||
roctracer_disable_activity;
|
||||
roctracer_disable_callback;
|
||||
roctracer_disable_domain_activity;
|
||||
roctracer_disable_domain_callback;
|
||||
roctracer_disable_op_activity;
|
||||
roctracer_disable_op_callback;
|
||||
roctracer_enable_activity;
|
||||
roctracer_enable_activity_expl;
|
||||
roctracer_enable_callback;
|
||||
roctracer_enable_domain_activity;
|
||||
roctracer_enable_domain_activity_expl;
|
||||
roctracer_enable_domain_callback;
|
||||
roctracer_enable_op_activity;
|
||||
roctracer_enable_op_activity_expl;
|
||||
roctracer_enable_op_callback;
|
||||
roctracer_error_string;
|
||||
roctracer_flush_activity;
|
||||
roctracer_flush_activity_expl;
|
||||
roctracer_flush_buf;
|
||||
roctracer_get_timestamp;
|
||||
roctracer_load;
|
||||
roctracer_mark;
|
||||
roctracer_next_record;
|
||||
roctracer_op_code;
|
||||
roctracer_open_pool;
|
||||
roctracer_open_pool_expl;
|
||||
roctracer_op_string;
|
||||
roctracer_set_properties;
|
||||
roctracer_start;
|
||||
roctracer_stop;
|
||||
roctracer_unload;
|
||||
roctracer_version_major;
|
||||
roctracer_version_minor;
|
||||
local: *;
|
||||
};
|
||||
@@ -0,0 +1,12 @@
|
||||
@CMAKE_PROJECT_NAME@_4.1 {
|
||||
global: RegisterApiCallback;
|
||||
RemoveApiCallback;
|
||||
roctxMarkA;
|
||||
roctxRangePop;
|
||||
roctxRangePushA;
|
||||
roctxRangeStartA;
|
||||
roctxRangeStop;
|
||||
roctx_version_major;
|
||||
roctx_version_minor;
|
||||
local: *;
|
||||
};
|
||||
@@ -78,7 +78,8 @@ if(DEFINED ROCTRACER_TARGET)
|
||||
target_compile_definitions(roctracer_tool PRIVATE HIP_PROF_HIP_API_STRING=1 __HIP_PLATFORM_HCC__)
|
||||
target_include_directories(roctracer_tool PRIVATE hsa/test ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/inc ${HIP_INCLUDE_DIRECTORIES} ${GEN_INC_DIR})
|
||||
target_link_libraries(roctracer_tool ${ROCTRACER_TARGET} hsa-runtime64::hsa-runtime64 Threads::Threads atomic dl)
|
||||
set_target_properties(roctracer_tool PROPERTIES CXX_VISIBILITY_PRESET hidden)
|
||||
set_target_properties(roctracer_tool PROPERTIES CXX_VISIBILITY_PRESET hidden LINK_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/tool/exportmap)
|
||||
target_link_options(roctracer_tool PRIVATE -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/tool/exportmap -Wl,--no-undefined)
|
||||
install(TARGETS roctracer_tool LIBRARY DESTINATION lib/${ROCTRACER_NAME})
|
||||
endif ()
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{ global: OnLoad; OnUnload; local: *; };
|
||||
Reference in New Issue
Block a user