diff --git a/projects/roctracer/CMakeLists.txt b/projects/roctracer/CMakeLists.txt index 98f7c5f819..5b5b9f8d38 100644 --- a/projects/roctracer/CMakeLists.txt +++ b/projects/roctracer/CMakeLists.txt @@ -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) diff --git a/projects/roctracer/src/CMakeLists.txt b/projects/roctracer/src/CMakeLists.txt index 0910c8e3bd..c7527de3eb 100644 --- a/projects/roctracer/src/CMakeLists.txt +++ b/projects/roctracer/src/CMakeLists.txt @@ -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) diff --git a/projects/roctracer/src/core/exportmap.in b/projects/roctracer/src/core/exportmap.in new file mode 100644 index 0000000000..e6bc458db6 --- /dev/null +++ b/projects/roctracer/src/core/exportmap.in @@ -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: *; +}; diff --git a/projects/roctracer/src/roctx/exportmap.in b/projects/roctracer/src/roctx/exportmap.in new file mode 100644 index 0000000000..0243bfdd8a --- /dev/null +++ b/projects/roctracer/src/roctx/exportmap.in @@ -0,0 +1,12 @@ +@CMAKE_PROJECT_NAME@_4.1 { +global: RegisterApiCallback; + RemoveApiCallback; + roctxMarkA; + roctxRangePop; + roctxRangePushA; + roctxRangeStartA; + roctxRangeStop; + roctx_version_major; + roctx_version_minor; +local: *; +}; diff --git a/projects/roctracer/test/CMakeLists.txt b/projects/roctracer/test/CMakeLists.txt index 4f0255a34e..c2b6e3e7e4 100644 --- a/projects/roctracer/test/CMakeLists.txt +++ b/projects/roctracer/test/CMakeLists.txt @@ -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 () diff --git a/projects/roctracer/test/tool/exportmap b/projects/roctracer/test/tool/exportmap new file mode 100644 index 0000000000..67575061ae --- /dev/null +++ b/projects/roctracer/test/tool/exportmap @@ -0,0 +1 @@ +{ global: OnLoad; OnUnload; local: *; };