@@ -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)
0 commit comments