Skip to content

Commit e8fd21a

Browse files
authored
Merge pull request #2025 from IntelPython/update-level-zero-loader-detection
Update Level Zero loader detection for newer compiler builds
2 parents 63f5129 + 3117a94 commit e8fd21a

File tree

1 file changed

+26
-15
lines changed

1 file changed

+26
-15
lines changed

libsyclinterface/CMakeLists.txt

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@ option(DPCTL_ENABLE_GLOG
4444

4545
set(DPCTL_LEVEL_ZERO_INCLUDE_DIR "" CACHE STRING "Level zero header path")
4646

47+
set(LIBZE_SET_LOADER_FILENAME "" CACHE STRING "User-provided Level Zero Loader filename")
48+
49+
set(LIBZE_DEFAULT_LOADER_FILENAME "libze_loader.so.1" CACHE STRING "Default Level Zero Loader filename")
50+
4751
# Minimum version requirement only when oneAPI dpcpp is used.
4852
if(DPCTL_DPCPP_FROM_ONEAPI)
4953
find_package(IntelSyclCompiler 2021.3.0 REQUIRED)
@@ -60,21 +64,28 @@ if(DPCTL_ENABLE_L0_PROGRAM_CREATION)
6064
get_level_zero_headers()
6165
endif()
6266
if (UNIX)
63-
find_library(PI_LEVEL_ZERO_LIB
64-
NAMES pi_level_zero ur_adapter_level_zero
65-
HINTS ${IntelSyclCompiler_LIBRARY_DIR}
66-
)
67-
find_program(READELF_PROG readelf)
68-
find_program(GREP_PROG grep)
69-
execute_process(
70-
COMMAND ${READELF_PROG} -d ${PI_LEVEL_ZERO_LIB}
71-
COMMAND ${GREP_PROG} libze_loader
72-
COMMAND ${GREP_PROG} -Po "libze_loader[^\]]*"
73-
OUTPUT_VARIABLE LIBZE_LOADER_FILENAME
74-
OUTPUT_STRIP_TRAILING_WHITESPACE
75-
ERROR_STRIP_TRAILING_WHITESPACE
76-
)
77-
set(LIBZE_LOADER_FILENAME ${LIBZE_LOADER_FILENAME} PARENT_SCOPE)
67+
if ("x${LIBZE_SET_LOADER_FILENAME}" STREQUAL "x")
68+
find_library(PI_LEVEL_ZERO_LIB
69+
NAMES pi_level_zero ur_adapter_level_zero
70+
HINTS ${IntelSyclCompiler_LIBRARY_DIR}
71+
)
72+
find_program(READELF_PROG readelf)
73+
find_program(GREP_PROG grep)
74+
execute_process(
75+
COMMAND ${READELF_PROG} -d ${PI_LEVEL_ZERO_LIB}
76+
COMMAND ${GREP_PROG} libze_loader
77+
COMMAND ${GREP_PROG} -Po "libze_loader[^\]]*"
78+
OUTPUT_VARIABLE LIBZE_LOADER_FILENAME
79+
OUTPUT_STRIP_TRAILING_WHITESPACE
80+
ERROR_STRIP_TRAILING_WHITESPACE
81+
)
82+
# if libze_loader is statically linked, LIBZE_LOADER_FILENAME will be an empty string
83+
if ("x${LIBZE_LOADER_FILENAME}" STREQUAL "x")
84+
set(LIBZE_LOADER_FILENAME ${LIBZE_DEFAULT_LOADER_FILENAME})
85+
endif()
86+
else ()
87+
set(LIBZE_LOADER_FILENAME ${LIBZE_SET_LOADER_FILENAME})
88+
endif()
7889
endif()
7990
set(LIBZE_LOADER_FILENAME ${LIBZE_LOADER_FILENAME} PARENT_SCOPE)
8091
endif()

0 commit comments

Comments
 (0)