From 4edc9727bdf227e5bdbed0e132d541c3d00027df Mon Sep 17 00:00:00 2001 From: AravindanC Date: Fri, 2 Dec 2022 14:19:14 -0800 Subject: [PATCH] SWDEV-351540 - ASAN packaging for roctracer Change-Id: If23c92e785fbbeb27034a8958568dd86b847beed --- CMakeLists.txt | 23 ++++++++++++++++++++++- plugin/file/CMakeLists.txt | 6 +++++- src/CMakeLists.txt | 15 ++++++++++++++- 3 files changed, 41 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 27437652d2..0258262ff2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -96,6 +96,10 @@ install(FILES ${CPACK_RESOURCE_FILE_LICENSE} DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT runtime) +install(FILES ${CPACK_RESOURCE_FILE_LICENSE} + DESTINATION ${CMAKE_INSTALL_DOCDIR}-asan + COMPONENT asan) + ## Debian package specific variables if(DEFINED ENV{CPACK_DEBIAN_PACKAGE_RELEASE}) set(CPACK_DEBIAN_PACKAGE_RELEASE $ENV{CPACK_DEBIAN_PACKAGE_RELEASE}) @@ -111,6 +115,9 @@ set(CPACK_DEBIAN_DEV_PACKAGE_NAME "${PROJECT_NAME}-dev") set(CPACK_DEBIAN_DEV_PACKAGE_DEPENDS "${PROJECT_NAME}, rocm-core") set(CPACK_DEBIAN_TESTS_PACKAGE_NAME "${PROJECT_NAME}-tests") set(CPACK_DEBIAN_TESTS_PACKAGE_DEPENDS "${PROJECT_NAME}-dev") +# Debian package specific variable for ASAN +set(CPACK_DEBIAN_ASAN_PACKAGE_NAME "${PROJECT_NAME}-asan" ) +set(CPACK_DEBIAN_ASAN_PACKAGE_DEPENDS "rocm-core-asan" ) ## RPM package specific variables if(DEFINED ENV{CPACK_RPM_PACKAGE_RELEASE}) @@ -143,15 +150,25 @@ set(CPACK_RPM_DEV_PACKAGE_OBSOLETES "${PROJECT_NAME}-dev") set(CPACK_RPM_TESTS_PACKAGE_NAME "${PROJECT_NAME}-tests") set(CPACK_RPM_TESTS_PACKAGE_REQUIRES "${PROJECT_NAME}-devel") message("CPACK_RPM_PACKAGE_RELEASE: ${CPACK_RPM_PACKAGE_RELEASE}") +# RPM package specific variable for ASAN +set(CPACK_RPM_ASAN_PACKAGE_NAME "${PROJECT_NAME}-asan" ) +set(CPACK_RPM_ASAN_PACKAGE_REQUIRES "rocm-core-asan" ) if(NOT ROCM_DEP_ROCMCORE) string(REGEX REPLACE ",? ?rocm-core" "" CPACK_RPM_RUNTIME_PACKAGE_REQUIRES ${CPACK_RPM_RUNTIME_PACKAGE_REQUIRES}) string(REGEX REPLACE ",? ?rocm-core" "" CPACK_RPM_DEV_PACKAGE_REQUIRES ${CPACK_RPM_DEV_PACKAGE_REQUIRES}) + string(REGEX REPLACE ",? ?rocm-core-asan" "" CPACK_RPM_ASAN_PACKAGE_REQUIRES ${CPACK_RPM_ASAN_PACKAGE_REQUIRES}) string(REGEX REPLACE ",? ?rocm-core" "" CPACK_DEBIAN_RUNTIME_PACKAGE_DEPENDS ${CPACK_DEBIAN_RUNTIME_PACKAGE_DEPENDS}) string(REGEX REPLACE ",? ?rocm-core" "" CPACK_DEBIAN_DEV_PACKAGE_DEPENDS ${CPACK_DEBIAN_DEV_PACKAGE_DEPENDS}) + string(REGEX REPLACE ",? ?rocm-core-asan" "" CPACK_DEBIAN_ASAN_PACKAGE_DEPENDS ${CPACK_DEBIAN_ASAN_PACKAGE_DEPENDS}) endif() -set(CPACK_COMPONENTS_ALL runtime dev) +if(ENABLE_ASAN_PACKAGING) + # ASAN Package requires asan component with only libraries and license file + set(CPACK_COMPONENTS_ALL asan) +else() + set(CPACK_COMPONENTS_ALL runtime dev) +endif() include(CPack) @@ -168,6 +185,10 @@ cpack_add_component(tests DESCRIPTION "Tests for the ROCtracer" DEPENDS runtime) +cpack_add_component(asan + DISPLAY_NAME "ASAN" + DESCRIPTION "ASAN libraries for the ROCtracer") + endif() find_package(Doxygen) diff --git a/plugin/file/CMakeLists.txt b/plugin/file/CMakeLists.txt index 9770893e89..bf031f4083 100644 --- a/plugin/file/CMakeLists.txt +++ b/plugin/file/CMakeLists.txt @@ -47,4 +47,8 @@ target_link_libraries(file_plugin PRIVATE util roctracer amd_comgr hsa-runtime6 install(TARGETS file_plugin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME} - COMPONENT runtime) \ No newline at end of file + COMPONENT runtime) + +install(TARGETS file_plugin LIBRARY + DESTINATION ${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME} + COMPONENT asan) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3505cf062b..e1366e6bca 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -176,6 +176,10 @@ install(TARGETS roctracer LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT dev NAMELINK_ONLY) +install(TARGETS roctracer LIBRARY + DESTINATION ${CMAKE_INSTALL_LIBDIR} + COMPONENT asan) + ## Build the ROCTX library file(GLOB ROCTX_SOURCES "roctx/*.cpp") add_library(roctx ${LIBRARY_TYPE} ${ROCTX_SOURCES}) @@ -202,6 +206,10 @@ install(TARGETS roctx LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT dev NAMELINK_ONLY) +install(TARGETS roctx LIBRARY + DESTINATION ${CMAKE_INSTALL_LIBDIR} + COMPONENT asan) + ## Build the tracer_tool library if (${LIBRARY_TYPE} STREQUAL SHARED) @@ -224,15 +232,20 @@ target_link_libraries(roctracer_tool util roctracer hsa-runtime64::hsa-runtime64 target_link_options(roctracer_tool PRIVATE -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/tracer_tool/exportmap -Wl,--no-undefined) install(TARGETS roctracer_tool LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME} COMPONENT runtime) +install(TARGETS roctracer_tool LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME} COMPONENT asan) add_library(hip_stats SHARED hip_stats/hip_stats.cpp) target_compile_definitions(hip_stats PRIVATE __HIP_PLATFORM_AMD__) target_link_libraries(hip_stats roctracer stdc++fs) install(TARGETS hip_stats LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME} COMPONENT runtime) +install(TARGETS hip_stats LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME} COMPONENT asan) endif() -option(FILE_REORG_BACKWARD_COMPATIBILITY "Enable File Reorg with backward compatibility" ON) +if(NOT ENABLE_ASAN_PACKAGING) + option(FILE_REORG_BACKWARD_COMPATIBILITY "Enable File Reorg with backward compatibility" ON) +endif() + if(FILE_REORG_BACKWARD_COMPATIBILITY) include(${PROJECT_SOURCE_DIR}/roctracer-backward-compat.cmake) endif()