Skip to content

Commit b0dd2fc

Browse files
committed
Test Level Zero provider when ze_loader is opened with RTLD_LOCAL
1 parent 3b738d5 commit b0dd2fc

File tree

2 files changed

+18
-5
lines changed

2 files changed

+18
-5
lines changed

src/utils/utils_level_zero.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,10 +144,15 @@ int InitLevelZeroOps() {
144144
const char *lib_name = "libze_loader.so";
145145
#endif
146146
// Load Level Zero symbols
147-
// NOTE that we use UMF_UTIL_OPEN_LIBRARY_GLOBAL which add all loaded symbols to the
147+
#if OPEN_ZE_LIBRARY_GLOBAL
148+
// NOTE UMF_UTIL_OPEN_LIBRARY_GLOBAL adds all loaded symbols to the
148149
// global symbol table.
150+
int open_flags = UMF_UTIL_OPEN_LIBRARY_GLOBAL;
151+
#else
152+
int open_flags = 0;
153+
#endif
149154
zeDlHandle = std::unique_ptr<void, DlHandleCloser>(
150-
utils_open_library(lib_name, UMF_UTIL_OPEN_LIBRARY_GLOBAL));
155+
utils_open_library(lib_name, open_flags));
151156
*(void **)&libze_ops.zeInit =
152157
utils_get_symbol_addr(zeDlHandle.get(), "zeInit", lib_name);
153158
if (libze_ops.zeInit == nullptr) {

test/CMakeLists.txt

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -415,12 +415,20 @@ if(UMF_BUILD_GPU_TESTS AND UMF_BUILD_LEVEL_ZERO_PROVIDER)
415415
LIBS ${UMF_UTILS_FOR_TEST} ze_loader)
416416

417417
add_umf_test(
418-
NAME provider_level_zero_dlopen
418+
NAME provider_level_zero_dlopen_global
419419
SRCS providers/provider_level_zero.cpp
420420
${UMF_UTILS_DIR}/utils_level_zero.cpp ${BA_SOURCES_FOR_TEST}
421421
LIBS ${UMF_UTILS_FOR_TEST})
422-
target_compile_definitions(umf_test-provider_level_zero_dlopen
423-
PUBLIC USE_DLOPEN=1)
422+
target_compile_definitions(umf_test-provider_level_zero_dlopen_global
423+
PUBLIC USE_DLOPEN=1 OPEN_ZE_LIBRARY_GLOBAL=1)
424+
425+
add_umf_test(
426+
NAME provider_level_zero_dlopen_local
427+
SRCS providers/provider_level_zero.cpp
428+
${UMF_UTILS_DIR}/utils_level_zero.cpp ${BA_SOURCES_FOR_TEST}
429+
LIBS ${UMF_UTILS_FOR_TEST})
430+
target_compile_definitions(umf_test-provider_level_zero_dlopen_local
431+
PUBLIC USE_DLOPEN=1 OPEN_ZE_LIBRARY_GLOBAL=0)
424432
endif()
425433

426434
if(NOT UMF_BUILD_LEVEL_ZERO_PROVIDER)

0 commit comments

Comments
 (0)