Skip to content

Commit 28d2135

Browse files
bokrzesiigcbot
authored andcommitted
Adjust OpenCL clang paths
* Adjust OpenCL clang paths Adding support for `opencl-clang2` lib version
1 parent 75c4209 commit 28d2135

File tree

2 files changed

+29
-20
lines changed

2 files changed

+29
-20
lines changed

IGC/BiFModule/CMakeLists.txt

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -30,23 +30,28 @@ if(UNIX)
3030
if(CCLANG_READELF_RESULT AND NOT CCLANG_READELF_RESULT EQUAL 0)
3131
message(FATAL_ERROR "[IGC\\BiFModule] : Error occurred while executing readelf: ${CCLANG_READELF_RESULT}")
3232
endif()
33-
string(REGEX MATCH "\\[${COMMON_CLANG_LIB_FULL_NAME}\\.([0-9](\\.[0-9]*)*[a-zA-Z0-9]*)\\]" CCLANG_SONAME_VERSION "${CCLANG_READELF_CALL}")
34-
set(CCLANG_SONAME_VERSION "${CMAKE_MATCH_1}")
35-
36-
# Check if common clang library is newer than 5.0.0 version on which we have SPIR-V support
37-
if("${CCLANG_SONAME_VERSION}" VERSION_GREATER "5.0.0")
38-
set_property(TARGET opencl-clang-lib PROPERTY "IMPORTED_SONAME" "${COMMON_CLANG_LIB_FULL_NAME}.${CCLANG_SONAME_VERSION}")
39-
else()
40-
# Handle libopencl-clang2.so
41-
string(REPLACE "-clang${CMAKE_SHARED_LIBRARY_SUFFIX}" "-clang2${CMAKE_SHARED_LIBRARY_SUFFIX}" TEST_COMMON_CLANG_LIB_FULL_NAME ${COMMON_CLANG_LIB_FULL_NAME})
42-
string(REGEX MATCH "\\[${TEST_COMMON_CLANG_LIB_FULL_NAME}\\.([0-9](\\.[0-9]*)*[a-zA-Z0-9]*)\\]" CCLANG_SONAME_VERSION "${CCLANG_READELF_CALL}")
43-
set(CCLANG_SONAME_VERSION "${CMAKE_MATCH_1}")
44-
if(NOT CCLANG_SONAME_VERSION STREQUAL "")
45-
set_property(TARGET opencl-clang-lib PROPERTY "IMPORTED_SONAME" "${TEST_COMMON_CLANG_LIB_FULL_NAME}.${CCLANG_SONAME_VERSION}")
46-
else()
47-
message(FATAL_ERROR "[IGC\\BiFModule] : Version ${CCLANG_SONAME_VERSION} of library ${COMMON_CLANG_LIB_FULL_NAME} is below version 5.0.0 (where it's starts support of SPIR-V), please upgrade this library at least to version 5.0.0")
48-
endif()
49-
endif()
33+
34+
# READ ELF CALL Output:
35+
# Dynamic section at offset 0x6957838 contains 35 entries:
36+
# Tag Type Name/Value
37+
# 0x0000000000000001 (NEEDED) Shared library: [libz.so.1]
38+
# 0x0000000000000001 (NEEDED) Shared library: [libzstd.so.1]
39+
# 0x0000000000000001 (NEEDED) Shared library: [libstdc++.so.6]
40+
# 0x0000000000000001 (NEEDED) Shared library: [libm.so.6]
41+
# 0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1]
42+
# 0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
43+
# 0x0000000000000001 (NEEDED) Shared library: [ld-linux-x86-64.so.2]
44+
# 0x000000000000000e (SONAME) Library soname: [libopencl-clang.so.16]
45+
# 0x0000000000000010 (SYMBOLIC) 0x0
46+
# 0x000000000000001d (RUNPATH) Library runpath: [$ORIGIN/../lib]
47+
# 0x000000000000000c (INIT) 0x7ab000
48+
# 0x000000000000000d (FINI) 0x53ed664
49+
50+
set(CLANG_LIB_REGEX "${COMMON_CLANG_LIB_NAME_WITH_PREFIX}([0-9]+|\\.|so)+")
51+
string(REGEX MATCH "${CLANG_LIB_REGEX}" IMPORTED_SONAME "${CCLANG_READELF_CALL}")
52+
message("Extraced SONAME: ${IMPORTED_SONAME}")
53+
54+
set_property(TARGET opencl-clang-lib PROPERTY "IMPORTED_SONAME" "${IMPORTED_SONAME}")
5055
endif()
5156
if (NOT CCLANG_FROM_SYSTEM)
5257
install(FILES $<TARGET_SONAME_FILE:opencl-clang-lib> DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR} COMPONENT igc-opencl)

IGC/cmake/igc_find_opencl_clang.cmake

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ if(NOT DEFINED COMMON_CLANG_LIBRARY_NAME)
2222
set(COMMON_CLANG_LIBRARY_NAME opencl-clang)
2323
endif()
2424

25-
set(COMMON_CLANG_LIB_FULL_NAME "lib${COMMON_CLANG_LIBRARY_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}")
25+
set(COMMON_CLANG_LIB_NAME_WITH_PREFIX "lib${COMMON_CLANG_LIBRARY_NAME}")
26+
set(COMMON_CLANG_LIB_FULL_NAME "${COMMON_CLANG_LIB_NAME_WITH_PREFIX}*${CMAKE_SHARED_LIBRARY_SUFFIX}")
2627

2728
find_library(CCLANG_FROM_SYSTEM ${COMMON_CLANG_LIBRARY_NAME})
2829

@@ -43,16 +44,19 @@ endif()
4344
###
4445

4546
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
46-
set(LINUX_PATH_GENERIC "prebuild-opencl-clang-linux/linux/${OS_NAME}/${OS_VERSION_NUMBER}")
47-
set(LINUX_PATH_VERSIONED "prebuild-opencl-clang-linux-${OS_VERSION_NUMBER}/linux/${OS_NAME}/${OS_VERSION_NUMBER}")
47+
string(TOLOWER "${OS_NAME}" OS_NAME_LOWER_CASE)
48+
set(LINUX_PATH_GENERIC "prebuild-opencl-clang-linux/linux/${OS_NAME_LOWER_CASE}/${OS_VERSION_NUMBER}")
49+
set(LINUX_PATH_VERSIONED "prebuild-opencl-clang-linux-${OS_VERSION_NUMBER}/linux/${OS_NAME_LOWER_CASE}/${OS_VERSION_NUMBER}")
4850

4951
if (EXISTS ${IGC_BUILD__GFX_DEV_SRC_DIR}/../../${LINUX_PATH_VERSIONED})
5052
set(LINUX_PATH "${LINUX_PATH_VERSIONED}")
5153
else()
5254
set(LINUX_PATH "${LINUX_PATH_GENERIC}")
5355
endif()
56+
message("Prebuild OpenCL Clang Linux Path: ${LINUX_PATH}")
5457
else()
5558
set(WINDOWS_PATH "prebuild-opencl-clang_${IGC_BUILD__CLANG_VERSION}/windows/Release/${cpuSuffix}")
59+
message("Prebuild OpenCL Clang Windows Path: ${WINDOWS_PATH}")
5660
endif()
5761
### Check by order first available way to link with opencl-clang
5862
if(NOT CCLANG_FROM_SYSTEM)

0 commit comments

Comments
 (0)