summaryrefslogtreecommitdiff
path: root/dev-util/hip/files/0001-SWDEV-352878-LLVM-pkg-search-directly-using-find_dep.patch
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-01-31 15:02:11 +0000
committerV3n3RiX <venerix@koprulu.sector>2023-01-31 15:02:11 +0000
commite860dfa5acdb67f8e2b8938b005dbaaaaf2c984a (patch)
tree38fd83ad8fb940fa7c8b31bc24cda66c9346ca80 /dev-util/hip/files/0001-SWDEV-352878-LLVM-pkg-search-directly-using-find_dep.patch
parente9bf3526a3a5e02396f24203bf8535a21b6f9784 (diff)
gentoo auto-resync : 31:01:2023 - 15:02:11
Diffstat (limited to 'dev-util/hip/files/0001-SWDEV-352878-LLVM-pkg-search-directly-using-find_dep.patch')
-rw-r--r--dev-util/hip/files/0001-SWDEV-352878-LLVM-pkg-search-directly-using-find_dep.patch163
1 files changed, 163 insertions, 0 deletions
diff --git a/dev-util/hip/files/0001-SWDEV-352878-LLVM-pkg-search-directly-using-find_dep.patch b/dev-util/hip/files/0001-SWDEV-352878-LLVM-pkg-search-directly-using-find_dep.patch
new file mode 100644
index 000000000000..9dbfe8a55395
--- /dev/null
+++ b/dev-util/hip/files/0001-SWDEV-352878-LLVM-pkg-search-directly-using-find_dep.patch
@@ -0,0 +1,163 @@
+From 6c12b045bc3c434dd13e74bf124ed54afec668c6 Mon Sep 17 00:00:00 2001
+From: AravindanC <aravindan.cheruvally@amd.com>
+Date: Fri, 26 Aug 2022 15:02:09 -0700
+Subject: [PATCH] SWDEV-352878 - LLVM pkg search directly using find_dep() for
+ CLANG Include path
+
+Change-Id: I355e39890757be07de8b9332deca159f35039dfd
+Signed-off-by: Yiyang Wu <xgreenlandforwyy@gmail.com>
+---
+ hip-config.cmake.in | 108 ++++++++++++++++++++++++++------------------
+ 1 file changed, 64 insertions(+), 44 deletions(-)
+
+diff --git a/hip-config.cmake.in b/hip-config.cmake.in
+index 89d1224e..67d898d8 100755
+--- a/hip-config.cmake.in
++++ b/hip-config.cmake.in
+@@ -147,41 +147,62 @@ if(HIP_COMPILER STREQUAL "clang")
+ if(NOT HIP_CXX_COMPILER)
+ set(HIP_CXX_COMPILER ${CMAKE_CXX_COMPILER})
+ endif()
+- if(HIP_CXX_COMPILER MATCHES ".*hipcc" OR HIP_CXX_COMPILER MATCHES ".*clang\\+\\+")
+- execute_process(COMMAND ${HIP_CXX_COMPILER} --version
++
++ # Use HIP_CXX_COMPILER option -print-resource-dir
++ # To fetch the clang include path
++ execute_process(
++ COMMAND ${HIP_CXX_COMPILER} -print-resource-dir
++ OUTPUT_VARIABLE HIP_CLANG_INCLUDE_PATH
++ OUTPUT_STRIP_TRAILING_WHITESPACE
++ RESULT_VARIABLE CLANG_INCLUDE_PATH_FETCH_EXIT_CODE)
++
++ if( NOT "${CLANG_INCLUDE_PATH_FETCH_EXIT_CODE}" STREQUAL "0" )
++ if(HIP_CXX_COMPILER MATCHES ".*hipcc" OR HIP_CXX_COMPILER MATCHES ".*clang\\+\\+")
++ # IF not successful in fetching HIP_CLANG_INCLUDE_PATH using
++ # HIP_CXX_COMPILER binary command options -print-resource-dir
++ # fallback to old method of getting include by finding HIP_CLANG_ROOT
++ # and from predefined relative path of HIP_CLANG_ROOT
++ execute_process(COMMAND ${HIP_CXX_COMPILER} --version
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ OUTPUT_VARIABLE HIP_CXX_COMPILER_VERSION_OUTPUT)
+- # Capture the repo, branch and patch level details of the HIP CXX Compiler.
+- # Ex. clang version 13.0.0 (https://github.com/ROCm-Developer-Tools/HIP main 12345 COMMIT_HASH)
+- # HIP_CLANG_REPO: https://github.com/ROCm-Developer-Tools/HIP
+- # HIP_CLANG_BRANCH: main
+- # HIP_CLANG_PATCH_LEVEL: 12345
+- if(${HIP_CXX_COMPILER_VERSION_OUTPUT} MATCHES "clang version [0-9]+\\.[0-9]+\\.[0-9]+ \\(([^ \n]*) ([^ \n]*) ([^ \n]*)")
+- set(HIP_CLANG_REPO ${CMAKE_MATCH_1})
+- set(HIP_CLANG_BRANCH ${CMAKE_MATCH_2})
+- set(HIP_CLANG_PATCH_LEVEL ${CMAKE_MATCH_3})
+- endif()
+- endif()
+- if(HIP_CXX_COMPILER MATCHES ".*hipcc")
+- if(HIP_CXX_COMPILER_VERSION_OUTPUT MATCHES "InstalledDir:[ \t]*([^\n]*)")
+- get_filename_component(HIP_CLANG_ROOT "${CMAKE_MATCH_1}" DIRECTORY)
+- endif()
+- elseif (HIP_CXX_COMPILER MATCHES ".*clang\\+\\+")
+- get_filename_component(_HIP_CLANG_REAL_PATH "${HIP_CXX_COMPILER}" REALPATH)
+- get_filename_component(_HIP_CLANG_BIN_PATH "${_HIP_CLANG_REAL_PATH}" DIRECTORY)
+- get_filename_component(HIP_CLANG_ROOT "${_HIP_CLANG_BIN_PATH}" DIRECTORY)
+- endif()
+- file(GLOB HIP_CLANG_INCLUDE_SEARCH_PATHS ${HIP_CLANG_ROOT}/lib/clang/*/include)
+- find_path(HIP_CLANG_INCLUDE_PATH stddef.h
+- HINTS
++ # Capture the repo, branch and patch level details of the HIP CXX Compiler.
++ # Ex. clang version 13.0.0 (https://github.com/ROCm-Developer-Tools/HIP main 12345 COMMIT_HASH)
++ # HIP_CLANG_REPO: https://github.com/ROCm-Developer-Tools/HIP
++ # HIP_CLANG_BRANCH: main
++ # HIP_CLANG_PATCH_LEVEL: 12345
++ if(${HIP_CXX_COMPILER_VERSION_OUTPUT} MATCHES "clang version [0-9]+\\.[0-9]+\\.[0-9]+ \\(([^ \n]*) ([^ \n]*) ([^ \n]*)")
++ set(HIP_CLANG_REPO ${CMAKE_MATCH_1})
++ set(HIP_CLANG_BRANCH ${CMAKE_MATCH_2})
++ set(HIP_CLANG_PATCH_LEVEL ${CMAKE_MATCH_3})
++ endif()
++ if(HIP_CXX_COMPILER MATCHES ".*hipcc")
++ if(HIP_CXX_COMPILER_VERSION_OUTPUT MATCHES "InstalledDir:[ \t]*([^\n]*)")
++ get_filename_component(HIP_CLANG_ROOT "${CMAKE_MATCH_1}" DIRECTORY)
++ endif()
++ elseif (HIP_CXX_COMPILER MATCHES ".*clang\\+\\+")
++ get_filename_component(_HIP_CLANG_REAL_PATH "${HIP_CXX_COMPILER}" REALPATH)
++ get_filename_component(_HIP_CLANG_BIN_PATH "${_HIP_CLANG_REAL_PATH}" DIRECTORY)
++ get_filename_component(HIP_CLANG_ROOT "${_HIP_CLANG_BIN_PATH}" DIRECTORY)
++ endif()
++
++
++ file(GLOB HIP_CLANG_INCLUDE_SEARCH_PATHS ${HIP_CLANG_ROOT}/lib/clang/*/include)
++ find_path(HIP_CLANG_INCLUDE_PATH stddef.h
++ HINTS
+ ${HIP_CLANG_INCLUDE_SEARCH_PATHS}
+- NO_DEFAULT_PATH)
++ NO_DEFAULT_PATH)
++ # Since INTERFACE_INCLUDE_DIRECTORIES need to set the parent directory
++ # of HIP_CLANG_INCLUDE_PATH incase using find_path() of stddefs.h
++ set(HIP_CLANG_INCLUDE_PATH "${HIP_CLANG_INCLUDE_PATH}/..")
++ endif() # HIP_CXX_COMPILER Check
++ endif() # CLANG_INCLUDE_PATH_FETCH_EXIT_CODE Check
++
+ if(NOT WIN32)
+ find_dependency(AMDDeviceLibs)
+ endif()
+ set(AMDGPU_TARGETS "gfx900;gfx906;gfx908;gfx90a;gfx1030" CACHE STRING "AMD GPU targets to compile for")
+ set(GPU_TARGETS "${AMDGPU_TARGETS}" CACHE STRING "GPU targets to compile for")
+-endif()
++endif() # HIP_COMPILER check
+
+ if(NOT WIN32)
+ find_dependency(amd_comgr)
+@@ -263,11 +284,11 @@ if(HIP_COMPILER STREQUAL "clang")
+ hip_add_interface_link_flags(hip::device --hip-link)
+
+ set_property(TARGET hip::device APPEND PROPERTY
+- INTERFACE_INCLUDE_DIRECTORIES "${HIP_CLANG_INCLUDE_PATH}/.."
++ INTERFACE_INCLUDE_DIRECTORIES "${HIP_CLANG_INCLUDE_PATH}"
+ )
+
+ set_property(TARGET hip::device APPEND PROPERTY
+- INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${HIP_CLANG_INCLUDE_PATH}/.."
++ INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${HIP_CLANG_INCLUDE_PATH}"
+ )
+
+ foreach(GPU_TARGET ${GPU_TARGETS})
+@@ -291,25 +312,24 @@ if(HIP_COMPILER STREQUAL "clang")
+ endif()
+ endif()
+
+- file(GLOB HIP_CLANGRT_LIB_SEARCH_PATHS "${HIP_CLANG_ROOT}/lib/clang/*/lib/*")
+- find_library(CLANGRT_BUILTINS
+- NAMES
+- clang_rt.builtins
+- clang_rt.builtins-x86_64
+- PATHS
+- ${HIP_CLANGRT_LIB_SEARCH_PATHS}
+- ${HIP_CLANG_INCLUDE_PATH}/../lib/linux
+- ${HIP_CLANG_INCLUDE_PATH}/../lib/windows
+- NO_DEFAULT_PATH)
++
++ # Use HIP_CXX option -print-libgcc-file-name --rtlib=compiler-rt
++ # To fetch the compiler rt library file name.
++ execute_process(
++ COMMAND ${HIP_CXX_COMPILER} -print-libgcc-file-name --rtlib=compiler-rt
++ OUTPUT_VARIABLE CLANGRT_BUILTINS
++ OUTPUT_STRIP_TRAILING_WHITESPACE
++ RESULT_VARIABLE CLANGRT_BUILTINS_FETCH_EXIT_CODE)
+
+ # Add support for __fp16 and _Float16, explicitly link with compiler-rt
+- if(NOT CLANGRT_BUILTINS)
+- message(FATAL_ERROR "clangrt builtins lib not found")
+- else()
++ if( "${CLANGRT_BUILTINS_FETCH_EXIT_CODE}" STREQUAL "0" )
++ # CLANG_RT Builtins found Successfully Set interface link libraries property
+ set_property(TARGET hip::host APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${CLANGRT_BUILTINS}")
+ set_property(TARGET hip::device APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${CLANGRT_BUILTINS}")
+- endif()
+-endif()
++ else()
++ message(STATUS "clangrt builtins lib not found: ${CLANGRT_BUILTINS_FETCH_EXIT_CODE}")
++ endif() # CLANGRT_BUILTINS_FETCH_EXIT_CODE Check
++endif() # HIP_COMPILER Check
+
+ set( hip_LIBRARIES hip::host hip::device)
+ set( hip_LIBRARY ${hip_LIBRARIES})
+--
+2.38.1
+