summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-util/roctracer')
-rw-r--r--dev-util/roctracer/Manifest5
-rw-r--r--dev-util/roctracer/files/roctracer-4.3.0-glibc-2.34.patch35
-rw-r--r--dev-util/roctracer/files/roctracer-5.0.2-Werror.patch18
-rw-r--r--dev-util/roctracer/files/roctracer-5.0.2-headers.patch36
-rw-r--r--dev-util/roctracer/files/roctracer-5.0.2-strip-license.patch14
-rw-r--r--dev-util/roctracer/files/roctracer-5.1.3-no-aqlprofile.patch39
-rw-r--r--dev-util/roctracer/files/roctracer-5.3.3-Werror.patch15
-rw-r--r--dev-util/roctracer/files/roctracer-5.3.3-do-not-install-test-files.patch37
-rw-r--r--dev-util/roctracer/files/roctracer-5.3.3-flat-lib-layout.patch34
-rw-r--r--dev-util/roctracer/files/roctracer-5.3.3-rocm-path.patch12
-rw-r--r--dev-util/roctracer/files/roctracer-5.7.1-with-tests.patch11
-rw-r--r--dev-util/roctracer/metadata.xml19
-rw-r--r--dev-util/roctracer/roctracer-5.1.3-r1.ebuild78
-rw-r--r--dev-util/roctracer/roctracer-5.3.3-r1.ebuild66
-rw-r--r--dev-util/roctracer/roctracer-5.7.1-r1.ebuild87
15 files changed, 506 insertions, 0 deletions
diff --git a/dev-util/roctracer/Manifest b/dev-util/roctracer/Manifest
new file mode 100644
index 000000000000..48927e0649b5
--- /dev/null
+++ b/dev-util/roctracer/Manifest
@@ -0,0 +1,5 @@
+DIST hsa-class-f8b3870.tar.gz 37432 BLAKE2B c2a09e4a4c3708e8db432378874c63b9cefefb567ad19a9c17181ed2b60f38d0591a618f72b11f606eb44efc5e170adaf72f0ec1b93cde628ca2230a62e2d6de SHA512 f371a955bf59b7e0af07261981a6e68562fad0753d3f39d1e220034c17501abf839ed2fd88fbf376d659970395c8795a82c0560c7ed8d3b87c11c79864f5f612
+DIST rocm-tracer-5.1.3.tar.gz 511617 BLAKE2B 4142979b3b7d649798a7ac0b2a04b42aa7fbcbf82f2cf51b0e5363ec0da538046d6e59283d0ce1bfd341317bf24ac2f694d5c8a7d1f132f9b21caea5caf7eda3 SHA512 e73b0c921ffbdcac571d8b0825de39bd8a4fd5f2720ecdd0c189951db85efb607a0b1cd7a9bb02b3dbf329b277cb5e197525216a8e8927eea4e6ce290b7e7c7b
+DIST rocm-tracer-5.3.3.tar.gz 353041 BLAKE2B b7614707ae3af2f5a46d058dacadfb0ef3b980963ac49face66a80c8396e66cf13e0430ab41737ba15e163f5da03697376b13238ea1decfe7ee4a7f31c7664a5 SHA512 95a202f76f6b68a35942750233bd09d372a9be843150d7ec02824da13c6b9a7c8da7a752ac69f66776e7ccfb6176473745dc46a7baadfe77c99c0596fbc2ffeb
+DIST rocprofiler-5.1.3.tar.gz 1402172 BLAKE2B 16e9b127ede94a3f96056e84a2942b6c9f3aec90579fb12796ab8ba385160aa020e3dc77f7a475dadbc0a813a823ae733ca9560f6a09e55c4c82b13dd792dfa4 SHA512 6e9932a425eaaa2a1e1741280d7525c6360700f85edb3bcf4967fe9be4fed662bae0d2ba609701f0d9733769c340e93e32076024b27bab3303449c1d68d9e1ce
+DIST roctracer-5.7.1.tar.gz 354686 BLAKE2B 2e72d8df5cf53a913102a715dab55f7c6d33b2d4a9cad7647a61824deba0363cf3dbf96d8de3469a78d6b5c8e517c163c303bf6aa12eeaf8e43f82ac8381ef97 SHA512 62cf62fc505955426596bd6d539c92f4d730d90d820d817343525f1b7be693290727c8c447ca98b1a0e46d1d188b62b3f4fafcf6bffbf2479fc5d937fb354e13
diff --git a/dev-util/roctracer/files/roctracer-4.3.0-glibc-2.34.patch b/dev-util/roctracer/files/roctracer-4.3.0-glibc-2.34.patch
new file mode 100644
index 000000000000..e11b1148bb89
--- /dev/null
+++ b/dev-util/roctracer/files/roctracer-4.3.0-glibc-2.34.patch
@@ -0,0 +1,35 @@
+From 5f4c1c01de8f0da24956c1c931d3ffe7410b5b78 Mon Sep 17 00:00:00 2001
+From: David Seifert <soap@gentoo.org>
+Date: Sat, 30 Oct 2021 18:35:53 +0200
+Subject: [PATCH] pthread_yield -> sched_yield (glibc 2.34)
+
+Bug: https://bugs.gentoo.org/808049
+Upstream: https://github.com/ROCm-Developer-Tools/roctracer/pull/63
+---
+ src/core/memory_pool.h | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/core/memory_pool.h b/src/core/memory_pool.h
+index fe2f1a6..fbd9060 100644
+--- a/src/core/memory_pool.h
++++ b/src/core/memory_pool.h
+@@ -24,6 +24,7 @@ THE SOFTWARE.
+ #define MEMORY_POOL_H_
+
+ #include <pthread.h>
++#include <sched.h>
+ #include <stdlib.h>
+
+ #include <atomic>
+@@ -152,7 +153,7 @@ class MemoryPool {
+ }
+
+ static void sync_reader(const consumer_arg_t* arg) {
+- while(arg->valid.load() == true) PTHREAD_CALL(pthread_yield());
++ while(arg->valid.load() == true) PTHREAD_CALL(sched_yield());
+ }
+
+ static void* reader_fun(void* consumer_arg) {
+--
+2.33.1
+
diff --git a/dev-util/roctracer/files/roctracer-5.0.2-Werror.patch b/dev-util/roctracer/files/roctracer-5.0.2-Werror.patch
new file mode 100644
index 000000000000..ddcfd7d669df
--- /dev/null
+++ b/dev-util/roctracer/files/roctracer-5.0.2-Werror.patch
@@ -0,0 +1,18 @@
+User code should not use the aggressive warning and error flags.
+
+Index: roctracer-rocm-5.0.2/cmake_modules/env.cmake
+===================================================================
+--- roctracer-rocm-5.0.2.orig/cmake_modules/env.cmake
++++ roctracer-rocm-5.0.2/cmake_modules/env.cmake
+@@ -39,10 +39,8 @@ add_definitions ( -D__HIP_PLATFORM_HCC__
+
+ ## Linux Compiler options
+ set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+-set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall" )
+-set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror" )
+-set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror=return-type" )
+ set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fexceptions" )
++set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive" )
+ set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden" )
+ set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-math-errno" )
+ set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-threadsafe-statics" )
diff --git a/dev-util/roctracer/files/roctracer-5.0.2-headers.patch b/dev-util/roctracer/files/roctracer-5.0.2-headers.patch
new file mode 100644
index 000000000000..91e48892bc45
--- /dev/null
+++ b/dev-util/roctracer/files/roctracer-5.0.2-headers.patch
@@ -0,0 +1,36 @@
+do not install a second set of header files, strip package name from
+libraries and headers.
+
+Index: roctracer-rocm-5.0.2/CMakeLists.txt
+===================================================================
+--- roctracer-rocm-5.0.2.orig/CMakeLists.txt
++++ roctracer-rocm-5.0.2/CMakeLists.txt
+@@ -131,16 +131,12 @@ add_custom_target ( so-patch-link ALL WO
+ COMMAND ${CMAKE_COMMAND} -E create_symlink ../${DEST_NAME}/lib/${ROCTRACER_LIBRARY}.so.${LIB_VERSION_STRING} so-patch-link )
+
+ ## Install information
+-install ( TARGETS ${ROCTRACER_TARGET} LIBRARY DESTINATION ${DEST_NAME}/lib )
++install ( TARGETS ${ROCTRACER_TARGET} LIBRARY DESTINATION lib )
+ foreach ( header ${PUBLIC_HEADERS} )
+- get_filename_component ( header_subdir ${header} DIRECTORY )
+- install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/inc/${header} DESTINATION ${DEST_NAME}/include/${header_subdir} )
+- install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/inc/${header} DESTINATION include/${DEST_NAME}/${header_subdir} )
++ install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/inc/${header} DESTINATION include )
+ endforeach ()
+ foreach ( header ${GEN_HEADERS} )
+- get_filename_component ( header_subdir ${header} DIRECTORY )
+- install ( FILES ${PROJECT_BINARY_DIR}/inc/${header} DESTINATION ${DEST_NAME}/include/${header_subdir} )
+- install ( FILES ${PROJECT_BINARY_DIR}/inc/${header} DESTINATION include/${DEST_NAME}/${header_subdir} )
++ install ( FILES ${PROJECT_BINARY_DIR}/inc/${header} DESTINATION include )
+ endforeach ()
+ #install ( FILES ${PROJECT_BINARY_DIR}/inc-link DESTINATION include RENAME ${DEST_NAME} )
+ install ( FILES ${PROJECT_BINARY_DIR}/so-link DESTINATION lib RENAME ${ROCTRACER_LIBRARY}.so )
+@@ -162,7 +158,7 @@ add_custom_target ( so-roctx-major-link
+ add_custom_target ( so-roctx-patch-link ALL WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
+ COMMAND ${CMAKE_COMMAND} -E create_symlink ../${DEST_NAME}/lib/${ROCTX_LIBRARY}.so.${LIB_VERSION_STRING} so-roctx-patch-link )
+
+-install ( TARGETS "roctx64" LIBRARY DESTINATION ${DEST_NAME}/lib )
++install ( TARGETS "roctx64" LIBRARY DESTINATION lib )
+ install ( FILES ${PROJECT_BINARY_DIR}/so-roctx-link DESTINATION lib RENAME ${ROCTX_LIBRARY}.so )
+ install ( FILES ${PROJECT_BINARY_DIR}/so-roctx-major-link DESTINATION lib RENAME ${ROCTX_LIBRARY}.so.${LIB_VERSION_MAJOR} )
+ install ( FILES ${PROJECT_BINARY_DIR}/so-roctx-patch-link DESTINATION lib RENAME ${ROCTX_LIBRARY}.so.${LIB_VERSION_STRING} )
diff --git a/dev-util/roctracer/files/roctracer-5.0.2-strip-license.patch b/dev-util/roctracer/files/roctracer-5.0.2-strip-license.patch
new file mode 100644
index 000000000000..e9c33885a01c
--- /dev/null
+++ b/dev-util/roctracer/files/roctracer-5.0.2-strip-license.patch
@@ -0,0 +1,14 @@
+Index: roctracer-rocm-5.0.2/CMakeLists.txt
+===================================================================
+--- roctracer-rocm-5.0.2.orig/CMakeLists.txt
++++ roctracer-rocm-5.0.2/CMakeLists.txt
+@@ -173,9 +173,6 @@ set ( CPACK_PACKAGE_CONTACT "ROCm Profil
+ set ( CPACK_PACKAGE_DESCRIPTION_SUMMARY "AMD ROCTRACER library" )
+ set ( CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE" )
+
+-# Install license file
+-install(FILES ${CPACK_RESOURCE_FILE_LICENSE} DESTINATION share/doc/${CPACK_PACKAGE_NAME})
+-
+ ## Debian package specific variables
+ if ( DEFINED ENV{CPACK_DEBIAN_PACKAGE_RELEASE} )
+ set ( CPACK_DEBIAN_PACKAGE_RELEASE $ENV{CPACK_DEBIAN_PACKAGE_RELEASE} )
diff --git a/dev-util/roctracer/files/roctracer-5.1.3-no-aqlprofile.patch b/dev-util/roctracer/files/roctracer-5.1.3-no-aqlprofile.patch
new file mode 100644
index 000000000000..93ddee3e5b43
--- /dev/null
+++ b/dev-util/roctracer/files/roctracer-5.1.3-no-aqlprofile.patch
@@ -0,0 +1,39 @@
+Skip loading proprietary AQLProfile lib
+Index: roctracer-rocm-5.1.3/src/util/hsa_rsrc_factory.cpp
+===================================================================
+--- roctracer-rocm-5.1.3.orig/src/util/hsa_rsrc_factory.cpp
++++ roctracer-rocm-5.1.3/src/util/hsa_rsrc_factory.cpp
+@@ -127,14 +127,6 @@ HsaRsrcFactory::HsaRsrcFactory(bool init
+ if (cpu_pool_ == NULL) CHECK_STATUS("CPU memory pool is not found", HSA_STATUS_ERROR);
+ if (kern_arg_pool_ == NULL) CHECK_STATUS("Kern-arg memory pool is not found", HSA_STATUS_ERROR);
+
+- // Get AqlProfile API table
+- aqlprofile_api_ = {0};
+-#ifdef ROCP_LD_AQLPROFILE
+- status = LoadAqlProfileLib(&aqlprofile_api_);
+-#else
+- status = hsa_api_.hsa_system_get_major_extension_table(HSA_EXTENSION_AMD_AQLPROFILE, hsa_ven_amd_aqlprofile_VERSION_MAJOR, sizeof(aqlprofile_api_), &aqlprofile_api_);
+-#endif
+- CHECK_STATUS("aqlprofile API table load failed", status);
+
+ // Get Loader API table
+ loader_api_ = {0};
+Index: roctracer-rocm-5.1.3/test/hsa/src/hsa_rsrc_factory.cpp
+===================================================================
+--- roctracer-rocm-5.1.3.orig/test/hsa/src/hsa_rsrc_factory.cpp
++++ roctracer-rocm-5.1.3/test/hsa/src/hsa_rsrc_factory.cpp
+@@ -125,14 +125,6 @@ HsaRsrcFactory::HsaRsrcFactory(bool init
+ if (cpu_pool_ == NULL) CHECK_STATUS("CPU memory pool is not found", HSA_STATUS_ERROR);
+ if (kern_arg_pool_ == NULL) CHECK_STATUS("Kern-arg memory pool is not found", HSA_STATUS_ERROR);
+
+- // Get AqlProfile API table
+- aqlprofile_api_ = {0};
+-#ifdef ROCP_LD_AQLPROFILE
+- status = LoadAqlProfileLib(&aqlprofile_api_);
+-#else
+- status = hsa_api_.hsa_system_get_major_extension_table(HSA_EXTENSION_AMD_AQLPROFILE, hsa_ven_amd_aqlprofile_VERSION_MAJOR, sizeof(aqlprofile_api_), &aqlprofile_api_);
+-#endif
+- CHECK_STATUS("aqlprofile API table load failed", status);
+
+ // Get Loader API table
+ loader_api_ = {0};
diff --git a/dev-util/roctracer/files/roctracer-5.3.3-Werror.patch b/dev-util/roctracer/files/roctracer-5.3.3-Werror.patch
new file mode 100644
index 000000000000..b932bb5cb5d3
--- /dev/null
+++ b/dev-util/roctracer/files/roctracer-5.3.3-Werror.patch
@@ -0,0 +1,15 @@
+Should not use the aggressive -Werror flag.
+
+Index: roctracer-rocm-5.3.3/CMakeLists.txt
+===================================================================
+--- roctracer-rocm-5.3.3.orig/CMakeLists.txt
++++ roctracer-rocm-5.3.3/CMakeLists.txt
+@@ -37,7 +37,7 @@ endif()
+
+ set(CMAKE_CXX_STANDARD 17)
+ set(CMAKE_CXX_STANDARD_REQUIRED ON)
+-add_compile_options(-Wall -Werror)
++add_compile_options(-Wall)
+
+ set(THREADS_PREFER_PTHREAD_FLAG ON)
+
diff --git a/dev-util/roctracer/files/roctracer-5.3.3-do-not-install-test-files.patch b/dev-util/roctracer/files/roctracer-5.3.3-do-not-install-test-files.patch
new file mode 100644
index 000000000000..ac3e53c1f405
--- /dev/null
+++ b/dev-util/roctracer/files/roctracer-5.3.3-do-not-install-test-files.patch
@@ -0,0 +1,37 @@
+Remove all install commands for test
+===================================================================
+--- roctracer-rocm-5.3.3.orig/test/CMakeLists.txt
++++ roctracer-rocm-5.3.3/test/CMakeLists.txt
+@@ -87,7 +87,6 @@ function(generate_hsaco TARGET_ID INPUT_
+ DEPENDS ${INPUT_FILE} clang
+ COMMENT "Building ${OUTPUT_FILE}..."
+ VERBATIM)
+- install(FILES ${PROJECT_BINARY_DIR}/${OUTPUT_FILE} DESTINATION test/${PROJECT_NAME} COMPONENT tests)
+ set(HSACO_TARGET_LIST ${HSACO_TARGET_LIST} ${PROJECT_BINARY_DIR}/${OUTPUT_FILE} PARENT_SCOPE)
+ endfunction(generate_hsaco)
+
+@@ -150,24 +149,10 @@ add_dependencies(mytest dlopen)
+ ## Copy the golden traces and test scripts
+ configure_file(run.sh ${PROJECT_BINARY_DIR} COPYONLY)
+ execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink run.sh ${PROJECT_BINARY_DIR}/run_ci.sh)
+-install(PROGRAMS ${PROJECT_BINARY_DIR}/run.sh DESTINATION test/${PROJECT_NAME} COMPONENT tests)
+
+ configure_file(${PROJECT_SOURCE_DIR}/script/check_trace.py ${PROJECT_BINARY_DIR}/test/check_trace.py COPYONLY)
+-install(PROGRAMS ${PROJECT_BINARY_DIR}/test/check_trace.py DESTINATION test/${PROJECT_NAME}/test COMPONENT tests)
+
+ file(GLOB files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "golden_traces/tests_trace_cmp_levels.txt" "golden_traces/*_trace.txt")
+ foreach(file ${files})
+ configure_file(${file} ${PROJECT_BINARY_DIR}/test/${file} COPYONLY)
+ endforeach()
+-install(DIRECTORY ${PROJECT_BINARY_DIR}/test/golden_traces DESTINATION test/${PROJECT_NAME}/test COMPONENT tests)
+-
+-# install all executables
+-set(all_executables)
+-get_property(all_targets DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY BUILDSYSTEM_TARGETS)
+-foreach(target IN LISTS all_targets)
+- get_target_property(target_type ${target} TYPE)
+- if (target_type STREQUAL "EXECUTABLE")
+- list(APPEND all_executables ${target})
+- endif()
+-endforeach()
+-install(TARGETS ${all_executables} DESTINATION test/${PROJECT_NAME}/test COMPONENT tests)
diff --git a/dev-util/roctracer/files/roctracer-5.3.3-flat-lib-layout.patch b/dev-util/roctracer/files/roctracer-5.3.3-flat-lib-layout.patch
new file mode 100644
index 000000000000..46c8d1a168b8
--- /dev/null
+++ b/dev-util/roctracer/files/roctracer-5.3.3-flat-lib-layout.patch
@@ -0,0 +1,34 @@
+Install libs directly into /usr/lib64
+===================================================================
+Index: roctracer-rocm-5.3.3/src/CMakeLists.txt
+===================================================================
+--- roctracer-rocm-5.3.3.orig/src/CMakeLists.txt
++++ roctracer-rocm-5.3.3/src/CMakeLists.txt
+@@ -215,12 +215,12 @@ target_include_directories(roctracer_too
+ target_link_libraries(roctracer_tool util roctracer hsa-runtime64::hsa-runtime64 stdc++fs Threads::Threads atomic dl)
+ 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} COMPONENT runtime)
+
+ 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} COMPONENT runtime)
+
+ endif()
+
+Index: roctracer-rocm-5.3.3/plugin/file/CMakeLists.txt
+===================================================================
+--- roctracer-rocm-5.3.3.orig/plugin/file/CMakeLists.txt
++++ roctracer-rocm-5.3.3/plugin/file/CMakeLists.txt
+@@ -38,5 +38,5 @@ target_link_options(file_plugin PRIVATE
+ target_link_libraries(file_plugin PRIVATE util roctracer hsa-runtime64::hsa-runtime64 stdc++fs)
+
+ install(TARGETS file_plugin LIBRARY
+- DESTINATION ${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}
+- COMPONENT runtime)
+\ No newline at end of file
++ DESTINATION ${CMAKE_INSTALL_LIBDIR}
++ COMPONENT runtime)
diff --git a/dev-util/roctracer/files/roctracer-5.3.3-rocm-path.patch b/dev-util/roctracer/files/roctracer-5.3.3-rocm-path.patch
new file mode 100644
index 000000000000..d8cc792b4dbb
--- /dev/null
+++ b/dev-util/roctracer/files/roctracer-5.3.3-rocm-path.patch
@@ -0,0 +1,12 @@
+Append flags for clang to recognize device lib path
+===================================================================
+--- roctracer-rocm-5.3.3.orig/test/CMakeLists.txt
++++ roctracer-rocm-5.3.3/test/CMakeLists.txt
+@@ -80,6 +80,7 @@ add_dependencies(mytest codeobj_test)
+ function(generate_hsaco TARGET_ID INPUT_FILE OUTPUT_FILE)
+ separate_arguments(CLANG_ARG_LIST UNIX_COMMAND
+ "-O2 -x cl -Xclang -finclude-default-header -cl-denorms-are-zero -cl-std=CL2.0 -Wl,--build-id=sha1
++ --rocm-path=@GENTOO_PORTAGE_EPREFIX@/usr --rocm-device-lib-path=@GENTOO_PORTAGE_EPREFIX@/usr/lib/amdgcn/bitcode
+ -target amdgcn-amd-amdhsa -mcpu=${TARGET_ID} -o ${OUTPUT_FILE} ${INPUT_FILE}")
+ add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/${OUTPUT_FILE}
+ COMMAND clang ${CLANG_ARG_LIST}
diff --git a/dev-util/roctracer/files/roctracer-5.7.1-with-tests.patch b/dev-util/roctracer/files/roctracer-5.7.1-with-tests.patch
new file mode 100644
index 000000000000..eb728b8f7237
--- /dev/null
+++ b/dev-util/roctracer/files/roctracer-5.7.1-with-tests.patch
@@ -0,0 +1,11 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -56,7 +56,7 @@ endif()
+ add_subdirectory(src)
+
+ ## Build tests
+-if(${LIBRARY_TYPE} STREQUAL SHARED)
++if(WITH_TESTS)
+ add_subdirectory(test)
+ endif()
+
diff --git a/dev-util/roctracer/metadata.xml b/dev-util/roctracer/metadata.xml
new file mode 100644
index 000000000000..872a2a3bdb22
--- /dev/null
+++ b/dev-util/roctracer/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>sci@gentoo.org</email>
+ <name>Gentoo Science Project</name>
+ </maintainer>
+ <maintainer type="person" proxied="yes">
+ <email>xgreenlandforwyy@gmail.com</email>
+ <name>Yiyang Wu</name>
+ </maintainer>
+ <maintainer type="person" proxied="yes">
+ <email>gentoo@holzke.net</email>
+ <name>Wilfried Holzke</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">ROCm-Developer-Tools/roctracer</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-util/roctracer/roctracer-5.1.3-r1.ebuild b/dev-util/roctracer/roctracer-5.1.3-r1.ebuild
new file mode 100644
index 000000000000..22befb0d4430
--- /dev/null
+++ b/dev-util/roctracer/roctracer-5.1.3-r1.ebuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+
+inherit cmake prefix python-any-r1
+
+DESCRIPTION="Callback/Activity Library for Performance tracing AMD GPU's"
+HOMEPAGE="https://github.com/ROCm-Developer-Tools/roctracer.git"
+SRC_URI="https://github.com/ROCm-Developer-Tools/roctracer/archive/rocm-${PV}.tar.gz -> rocm-tracer-${PV}.tar.gz
+ https://github.com/ROCm-Developer-Tools/rocprofiler/archive/rocm-${PV}.tar.gz -> rocprofiler-${PV}.tar.gz
+ https://github.com/ROCmSoftwarePlatform/hsa-class/archive/f8b387043b9f510afdf2e72e38a011900360d6ab.tar.gz -> hsa-class-f8b3870.tar.gz"
+S="${WORKDIR}/roctracer-rocm-${PV}"
+
+LICENSE="MIT"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
+
+RDEPEND="dev-libs/rocr-runtime:${SLOT}
+ dev-util/hip:${SLOT}"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ $(python_gen_any_dep '
+ dev-python/CppHeaderParser[${PYTHON_USEDEP}]
+ dev-python/ply[${PYTHON_USEDEP}]
+ ')
+"
+
+PATCHES=(
+ # https://github.com/ROCm-Developer-Tools/roctracer/pull/63
+ "${FILESDIR}"/${PN}-4.3.0-glibc-2.34.patch
+ "${FILESDIR}"/${PN}-5.0.2-Werror.patch
+ "${FILESDIR}"/${PN}-5.0.2-headers.patch
+ "${FILESDIR}"/${PN}-5.0.2-strip-license.patch
+ "${FILESDIR}"/${PN}-5.1.3-no-aqlprofile.patch
+)
+
+python_check_deps() {
+ python_has_version "dev-python/CppHeaderParser[${PYTHON_USEDEP}]" \
+ "dev-python/ply[${PYTHON_USEDEP}]"
+}
+
+src_prepare() {
+ cmake_src_prepare
+
+ mv "${WORKDIR}"/rocprofiler-rocm-${PV} "${WORKDIR}"/rocprofiler || die
+ mv "${WORKDIR}"/hsa-class-*/test/util "${S}"/inc/ || die
+ rm "${S}"/inc/util/hsa* || die
+ cp -a "${S}"/src/util/hsa* "${S}"/inc/util/ || die
+
+ # change destination for headers to include/roctracer;
+
+ sed -e "/LIBRARY DESTINATION/s,lib,$(get_libdir)," \
+ -e "/DESTINATION/s,\${DEST_NAME}/include,include/roctracer," \
+ -e "/install ( FILES \${PROJECT_BINARY_DIR}\/so/d" \
+ -e "/DESTINATION/s,\${DEST_NAME}/lib64,$(get_libdir),g" \
+ -i CMakeLists.txt || die
+
+ # do not download additional sources via git
+ sed -e "/execute_process ( COMMAND sh -xc \"if/d" \
+ -e "/add_subdirectory ( \${HSA_TEST_DIR} \${PROJECT_BINARY_DIR}/d" \
+ -e "/DESTINATION/s,\${DEST_NAME}/tool,$(get_libdir),g" \
+ -i test/CMakeLists.txt || die
+
+ hprefixify script/*.py
+}
+
+src_configure() {
+ export HIP_PATH="$(hipconfig -p)"
+
+ local mycmakeargs=(
+ -DCMAKE_PREFIX_PATH="${EPREFIX}/usr/include/hsa"
+ )
+
+ cmake_src_configure
+}
diff --git a/dev-util/roctracer/roctracer-5.3.3-r1.ebuild b/dev-util/roctracer/roctracer-5.3.3-r1.ebuild
new file mode 100644
index 000000000000..54def42e46a6
--- /dev/null
+++ b/dev-util/roctracer/roctracer-5.3.3-r1.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..11} )
+
+ROCM_VERSION=${PV}
+
+inherit cmake prefix python-any-r1 rocm
+
+DESCRIPTION="Callback/Activity Library for Performance tracing AMD GPU's"
+HOMEPAGE="https://github.com/ROCm-Developer-Tools/roctracer.git"
+SRC_URI="https://github.com/ROCm-Developer-Tools/roctracer/archive/rocm-${PV}.tar.gz -> rocm-tracer-${PV}.tar.gz"
+S="${WORKDIR}/roctracer-rocm-${PV}"
+
+LICENSE="MIT"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="dev-libs/rocr-runtime
+ dev-util/hip"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ $(python_gen_any_dep '
+ dev-python/CppHeaderParser[${PYTHON_USEDEP}]
+ dev-python/ply[${PYTHON_USEDEP}]
+ ')
+"
+
+PATCHES=( "${FILESDIR}"/roctracer-5.3.3-flat-lib-layout.patch
+ "${FILESDIR}"/roctracer-5.3.3-do-not-install-test-files.patch
+ "${FILESDIR}"/roctracer-5.3.3-Werror.patch )
+
+python_check_deps() {
+ python_has_version "dev-python/CppHeaderParser[${PYTHON_USEDEP}]" \
+ "dev-python/ply[${PYTHON_USEDEP}]"
+}
+
+src_prepare() {
+ cmake_src_prepare
+
+ hprefixify script/*.py
+ eapply $(prefixify_ro "${FILESDIR}"/${PN}-5.3.3-rocm-path.patch)
+}
+
+src_configure() {
+ export ROCM_PATH="$(hipconfig -p)"
+ local mycmakeargs=(
+ -DCMAKE_MODULE_PATH="${EPREFIX}/usr/lib64/cmake/hip"
+ -DAMDGPU_TARGETS="$(get_amdgpu_flags)"
+ -DFILE_REORG_BACKWARD_COMPATIBILITY=OFF
+ -DHIP_CXX_COMPILER=hipcc
+ )
+
+ cmake_src_configure
+}
+
+src_test() {
+ check_amdgpu
+ cd "${BUILD_DIR}" || die
+ # if LD_LIBRARY_PATH not set, dlopen cannot find correct lib
+ LD_LIBRARY_PATH="${EPREFIX}"/usr/lib64 bash run.sh || die
+}
diff --git a/dev-util/roctracer/roctracer-5.7.1-r1.ebuild b/dev-util/roctracer/roctracer-5.7.1-r1.ebuild
new file mode 100644
index 000000000000..e16ea7d01a5a
--- /dev/null
+++ b/dev-util/roctracer/roctracer-5.7.1-r1.ebuild
@@ -0,0 +1,87 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+LLVM_MAX_SLOT=17
+ROCM_VERSION=${PV}
+
+inherit cmake prefix python-any-r1 rocm llvm
+
+DESCRIPTION="Callback/Activity Library for Performance tracing AMD GPU's"
+HOMEPAGE="https://github.com/ROCm-Developer-Tools/roctracer"
+SRC_URI="https://github.com/ROCm-Developer-Tools/roctracer/archive/rocm-${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/roctracer-rocm-${PV}"
+
+LICENSE="MIT"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="dev-libs/rocr-runtime
+ dev-util/hip"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ $(python_gen_any_dep '
+ dev-python/CppHeaderParser[${PYTHON_USEDEP}]
+ dev-python/ply[${PYTHON_USEDEP}]
+ ')
+"
+
+PATCHES=(
+ "${FILESDIR}"/roctracer-5.7.1-with-tests.patch
+)
+
+python_check_deps() {
+ python_has_version "dev-python/CppHeaderParser[${PYTHON_USEDEP}]" \
+ "dev-python/ply[${PYTHON_USEDEP}]"
+}
+
+src_prepare() {
+ cmake_src_prepare
+
+ hprefixify script/*.py
+ eapply $(prefixify_ro "${FILESDIR}"/${PN}-5.3.3-rocm-path.patch)
+
+ # Install libs directly into /usr/lib64
+ sed -e 's:${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}:${CMAKE_INSTALL_LIBDIR}:g' \
+ -i src/CMakeLists.txt plugin/file/CMakeLists.txt || die
+
+ # Remove all install commands for tests
+ sed -E '/^ *install\(.+/d' -i test/CMakeLists.txt || die
+
+ # Fix search path for HIP cmake
+ sed -e "s,\${ROCM_PATH}/lib/cmake,/usr/$(get_libdir)/cmake,g" -i test/CMakeLists.txt || die
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_MODULE_PATH="${EPREFIX}/usr/$(get_libdir)/cmake/hip"
+ -DFILE_REORG_BACKWARD_COMPATIBILITY=OFF
+ -DWITH_TESTS=$(usex test)
+ )
+ use test && mycmakeargs+=(
+ -DCMAKE_FIND_DEBUG_MODE=ON
+ -DHIP_ROOT_DIR="${EPREFIX}/usr"
+ -DHIP_CLANG_INSTALL_DIR="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin"
+ -DGPU_TARGETS="$(get_amdgpu_flags)"
+ )
+
+ cmake_src_configure
+}
+
+src_test() {
+ check_amdgpu
+ cd "${BUILD_DIR}" || die
+ # if LD_LIBRARY_PATH not set, dlopen cannot find correct lib
+ LD_LIBRARY_PATH="${EPREFIX}/usr/$(get_libdir):${LD_LIBRARY_PATH}" bash run.sh || die
+}
+
+src_install() {
+ cmake_src_install
+
+ # remove unneeded copy
+ rm -r "${ED}/usr/share/doc/${PF}-asan" || die
+}