Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 0 additions & 7 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -199,13 +199,6 @@ endblock()
# Project wide flags for controlling the build system.
################################################################################

# Note that delay-loading is incompatible with ASAN until a more robust mechanism
# is implemented. See: https://github.com/ROCm/TheRock/issues/1783
cmake_dependent_option(
THEROCK_FLAG_COMGR_DELAY_LOAD
"Enables delay loading and linker namespacing of the amd_comgr library (Linux only)"
ON "LINUX" OFF)

# Flag: -DTHEROCK_FLAG_INCLUDE_PROFILER=OFF
# Note that the profiler is an integral part of the system and disabling it is not
# fully supported. However, in early bringup, it can be useful to disable building
Expand Down
6 changes: 0 additions & 6 deletions CMakePresets.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,9 @@
"amd-llvm_BUILD_TYPE": "Release",
"therock-host-blas_BUILD_TYPE": "Release",
"therock-SuiteSparse_BUILD_TYPE": "Release",
"THEROCK_FLAG_COMGR_DELAY_LOAD": "OFF",
"THEROCK_SANITIZER": "ASAN",
"amd-llvm_SANITIZER": "OFF",
"amd-comgr_SANITIZER": "ASAN",
"amd-comgr-impl_SANITIZER": "ASAN",
"hipcc_SANITIZER": "OFF",
"hipify_SANITIZER": "OFF",
"aqlprofile_SANITIZER": "OFF",
Expand All @@ -58,11 +56,9 @@
"amd-llvm_BUILD_TYPE": "Release",
"therock-host-blas_BUILD_TYPE": "Release",
"therock-SuiteSparse_BUILD_TYPE": "Release",
"THEROCK_FLAG_COMGR_DELAY_LOAD": "OFF",
"THEROCK_SANITIZER": "HOST_ASAN",
"amd-llvm_SANITIZER": "OFF",
"amd-comgr_SANITIZER": "HOST_ASAN",
"amd-comgr-impl_SANITIZER": "HOST_ASAN",
"hipcc_SANITIZER": "OFF",
"hipify_SANITIZER": "OFF",
"aqlprofile_SANITIZER": "OFF",
Expand All @@ -85,11 +81,9 @@
"amd-llvm_BUILD_TYPE": "Release",
"therock-host-blas_BUILD_TYPE": "Release",
"therock-SuiteSparse_BUILD_TYPE": "Release",
"THEROCK_FLAG_COMGR_DELAY_LOAD": "OFF",
"THEROCK_SANITIZER": "TSAN",
"amd-llvm_SANITIZER": "OFF",
"amd-comgr_SANITIZER": "OFF",
"amd-comgr-impl_SANITIZER": "OFF",
"hipcc_SANITIZER": "OFF",
"hipify_SANITIZER": "OFF",
"aqlprofile_SANITIZER": "OFF",
Expand Down
13 changes: 0 additions & 13 deletions build_tools/packaging/linux/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -240,19 +240,6 @@
}
]
},
{
"Artifact": "amd-llvm",
"Artifact_Subdir": [
{
"Name": "amd-comgr-stub",
"Components": [
"lib",
"run",
"doc"
]
}
]
}
],
"Gfxarch": "False"
},
Expand Down
64 changes: 11 additions & 53 deletions compiler/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -146,23 +146,22 @@ if(THEROCK_ENABLE_COMPILER)
##############################################################################
# amd-comgr
# A client of libLLVM which provides an in-process compiler API to the HIP
# runtime.
# runtime. LLVM/Clang/LLD are statically linked and hidden behind comgr's
# version script, avoiding symbol interposition issues.
##############################################################################
set(_amd_comgr_target_name "amd-comgr")
set(_amd_comgr_stub_target_name)
if(THEROCK_FLAG_COMGR_DELAY_LOAD)
set(_amd_comgr_target_name "amd-comgr-impl")
set(_amd_comgr_stub_target_name "amd-comgr")
endif()

therock_cmake_subproject_declare("${_amd_comgr_target_name}"
therock_cmake_subproject_declare(amd-comgr
USE_DIST_AMDGPU_TARGETS
NO_INSTALL_RPATH # See manual handling in the pre_hook.
LOGICAL_TARGET_NAME "amd-comgr"
EXTERNAL_SOURCE_DIR "amd-llvm/amd/comgr"
BINARY_DIR "amd-comgr"
BACKGROUND_BUILD
CMAKE_ARGS
# Statically link LLVM/Clang into comgr. Combined with comgr's
# -fvisibility=hidden and version script (local: *;), this hides all LLVM
# symbols inside libamd_comgr.so, preventing symbol interposition without
# requiring namespace isolation via dlmopen.
-DCOMGR_STATIC_LLVM=ON
# TODO: Currently unstable. Enable in >6.4.
-DCOMGR_DISABLE_SPIRV=ON
-DTHEROCK_HIP_MAJOR_VERSION=${THEROCK_HIP_MAJOR_VERSION}
Expand All @@ -179,55 +178,15 @@ if(THEROCK_ENABLE_COMPILER)
INTERFACE_INSTALL_RPATH_DIRS
"lib"
)
if(NOT THEROCK_FLAG_COMGR_DELAY_LOAD)
therock_cmake_subproject_provide_package("${_amd_comgr_target_name}" amd_comgr lib/cmake/amd_comgr)
endif()
therock_cmake_subproject_activate("${_amd_comgr_target_name}")
therock_cmake_subproject_provide_package(amd-comgr amd_comgr lib/cmake/amd_comgr)
therock_cmake_subproject_activate(amd-comgr)

therock_test_validate_shared_lib(
PATH amd-comgr/dist/lib
LIB_NAMES
libamd_comgr.so
)

##############################################################################
# amd-comgr stub
# Generates a stub that is used for dynamically loading amd-comgr in an
# appropriately private namespace. Since all uses of LLVM are hidden behind
# the comgr interface, this allows us to completely hide our LLVM and make it
# impossible to conflict.
# When enabled, this is declared as the "amd-comgr" target so that all
# dependencies in TheRock will use it. It also advertises the amd_comgr
# CMake package to be sourced from itself.
##############################################################################

if(THEROCK_FLAG_COMGR_DELAY_LOAD)
therock_cmake_subproject_declare("${_amd_comgr_stub_target_name}"
FPRINT_SOURCE_HASH
USE_DIST_AMDGPU_TARGETS
NO_INSTALL_RPATH
LOGICAL_TARGET_NAME "amd-comgr-stub"
EXTERNAL_SOURCE_DIR "amd-comgr-stub"
BINARY_DIR "amd-comgr-stub"
BACKGROUND_BUILD
CMAKE_ARGS
-DAMD_COMGR_STAGE_PATH=${CMAKE_CURRENT_BINARY_DIR}/amd-comgr/stage
RUNTIME_DEPS
"${_amd_comgr_target_name}"
INTERFACE_LINK_DIRS
"lib"
INTERFACE_INSTALL_RPATH_DIRS
"lib"
)
therock_cmake_subproject_glob_c_sources("${_amd_comgr_stub_target_name}" SUBDIRS src)
therock_cmake_subproject_provide_package("${_amd_comgr_stub_target_name}" amd_comgr lib/cmake/amd_comgr_stub)
therock_cmake_subproject_activate("${_amd_comgr_stub_target_name}")

add_test(NAME amd_comgr_stub_test
COMMAND "${CMAKE_CURRENT_BINARY_DIR}/amd-comgr-stub/dist/bin/test_amd_comgr_stub"
)
endif()

##############################################################################
# hipcc
# Provides hipcc and hipconfig
Expand Down Expand Up @@ -259,8 +218,7 @@ if(THEROCK_ENABLE_COMPILER)
SUBPROJECT_DEPS
amd-llvm
hipcc
"${_amd_comgr_target_name}"
${_amd_comgr_stub_target_name}
amd-comgr
)
endif(THEROCK_ENABLE_COMPILER)

Expand Down
111 changes: 0 additions & 111 deletions compiler/amd-comgr-stub/CMakeLists.txt

This file was deleted.

47 changes: 0 additions & 47 deletions compiler/amd-comgr-stub/README.md

This file was deleted.

6 changes: 0 additions & 6 deletions compiler/amd-comgr-stub/config.cmake.in

This file was deleted.

Loading
Loading