With v7.0.1 on Linux (Ubuntu 24.04). Note that issue can't be reproduced on b73d26e (latest sycl branch head as of 8/27/2026) - I explain why in the #23045 (comment).
Consider that system has outdated system-wide installation of L0, for example, on PVC system with LTS 2350 driver set:
$ find /usr/lib/x86_64-linux-gnu/ -name libze_loader.so.1.*
/usr/lib/x86_64-linux-gnu/libze_loader.so.1.24.0
$ pkg-config --modversion level-zero
1.24.0
This version is too old to build dpclang. Thus user can opt-in to build dpclang against custom installation of L0, so he does:
git clone https://github.com/oneapi-src/level-zero.git && cd level-zero
git checkout v1.33.1
cmake -B _build -S . -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$HOME/_install
cmake --build _build
cmake --install _build
Note that user installs L0 into custom local directory $HOME/_install. In this case build of the dpclang will fail:
$ export PKG_CONFIG_PATH=$HOME/_install/lib/pkgconfig/
$ export LD_LIBRARY_PATH=$HOME/_install/lib:$LD_LIBRARY_PATH
$ cmake -B _build -S llvm -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX \
-DBUILD_SHARED_LIBS=ON \
-DLLVM_BUILD_TOOLS=ON \
-DLLVM_ENABLE_ASSERTIONS=ON \
-DLLVM_ENABLE_DOXYGEN=OFF \
-DLLVM_ENABLE_LLD=OFF \
-DLLVM_ENABLE_PROJECTS='clang;sycl;llvm-spirv;opencl;xpti;xptifw;compiler-rt;libdevice;sycl-jit' \
-DLLVM_ENABLE_RTTI=ON \
-DLLVM_ENABLE_SPHINX=OFF \
-DLLVM_ENABLE_ZSTD=ON \
-DLLVM_EXTERNAL_PROJECTS='sycl;llvm-spirv;opencl;xpti;xptifw;compiler-rt;libdevice;sycl-jit' \
-DLLVM_SPIRV_ENABLE_LIBSPIRV_DIS=OFF \
-DLLVM_TARGETS_TO_BUILD='host;SPIRV' \
-DSYCL_ENABLE_EXTENSION_JIT=ON \
-DSYCL_ENABLE_MAJOR_RELEASE_PREVIEW_LIB=OFF \
-DSYCL_ENABLE_WERROR=OFF \
-DSYCL_ENABLE_XPTI_TRACING=ON \
-DLLVM_EXTERNAL_LIBDEVICE_SOURCE_DIR=$(pwd)/libdevice \
-DLLVM_EXTERNAL_LLVM_SPIRV_SOURCE_DIR=$(pwd)/llvm-spirv \
-DLLVM_EXTERNAL_SYCL_JIT_SOURCE_DIR=$(pwd)/sycl-jit \
-DLLVM_EXTERNAL_SYCL_SOURCE_DIR=$(pwd)/sycl \
-DLLVM_EXTERNAL_XPTI_SOURCE_DIR=$(pwd)/xpti \
-DLLVM_EXTERNAL_XPTIFW_SOURCE_DIR=$(pwd)/xptifw \
-DSYCL_INCLUDE_TESTS=OFF \
-DXPTI_ENABLE_WERROR=OFF
$ cmake --build _build
/usr/bin/c++ -DUR_ADAPTER_LEVEL_ZERO_V2 -DUR_ENABLE_SANITIZER -DUR_ENABLE_TRACING -DUR_STATIC_LEVEL_ZERO -DUR_VALIDATION_LAYER_SUPPORTED_VERSION=\"0\" -DUR_VERSION=\"0\" -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GLIBCXX_USE_CXX11_ABI=1 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Dur_adapter_level_zero_v2_EXPORTS -I/home/dvrogozh/git/intel-llvm/_build/unified-runtime/source/adapters/level_zero -I/home/dvrogozh/git/intel-llvm/unified-runtime/source/adapters/level_zero -I/home/dvrogozh/git/intel-llvm/_build/include -I/home/dvrogozh/git/intel-llvm/llvm/include -I/home/dvrogozh/git/intel-llvm/unified-runtime/source/adapters/level_zero/../.. -I/home/dvrogozh/git/intel-llvm/unified-runtime/source/adapters/level_zero/../../ur -I/home/dvrogozh/git/intel-llvm/unified-runtime/source/adapters/level_zero/LevelZeroLoader-Headers -I/home/dvrogozh/git/intel-llvm/unified-runtime/include -I/home/dvrogozh/git/intel-llvm/unified-runtime/source/common -I/home/dvrogozh/git/intel-llvm/_build/_deps/unified-memory-framework-src/include -I/home/dvrogozh/git/intel-llvm/_build/_deps/unified-memory-framework-src/src -I/home/dvrogozh/git/intel-llvm/_build/_deps/unified-memory-framework-src/src/ravl -I/home/dvrogozh/git/intel-llvm/_build/_deps/unified-memory-framework-src/src/critnib -I/home/dvrogozh/git/intel-llvm/_build/_deps/unified-memory-framework-src/src/provider -I/home/dvrogozh/git/intel-llvm/_build/_deps/unified-memory-framework-src/src/memspaces -I/home/dvrogozh/git/intel-llvm/_build/_deps/unified-memory-framework-src/src/memtargets -I/home/dvrogozh/git/intel-llvm/_build/_deps/unified-memory-framework-src/src/uthash -I/home/dvrogozh/tmp/_install/lib/pkgconfig/../../include/level_zero -I/home/dvrogozh/git/intel-llvm/_build/content-exp-headers/level_zero/include -I/home/dvrogozh/git/intel-llvm/_build/content-exp-headers/level_zero/include/../.. -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-dangling-reference -Wno-redundant-move -Wno-pessimizing-move -Wno-array-bounds -Wno-stringop-overread -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wno-error -O3 -DNDEBUG -std=c++17 -fPIC -UNDEBUG -Wall -Wpedantic -Wempty-body -Wformat -Wformat-security -Wunused-parameter -fstack-protector-strong -fvisibility=hidden -fcf-protection=full -fstack-clash-protection -fdiagnostics-color=always -MD -MT unified-runtime/source/adapters/level_zero/CMakeFiles/ur_adapter_level_zero_v2.dir/v2/graph.cpp.o -MF unified-runtime/source/adapters/level_zero/CMakeFiles/ur_adapter_level_zero_v2.dir/v2/graph.cpp.o.d -o unified-runtime/source/adapters/level_zero/CMakeFiles/ur_adapter_level_zero_v2.dir/v2/graph.cpp.o -c /home/dvrogozh/git/intel-llvm/unified-runtime/source/adapters/level_zero/v2/graph.cpp
In file included from /home/dvrogozh/tmp/_install/lib/pkgconfig/../../include/level_zero/loader/ze_loader.h:16,
from /home/dvrogozh/git/intel-llvm/unified-runtime/source/adapters/level_zero/v2/../common.hpp:28,
from /home/dvrogozh/git/intel-llvm/unified-runtime/source/adapters/level_zero/v2/common.hpp:16,
from /home/dvrogozh/git/intel-llvm/unified-runtime/source/adapters/level_zero/v2/graph.hpp:13,
from /home/dvrogozh/git/intel-llvm/unified-runtime/source/adapters/level_zero/v2/graph.cpp:11:
/home/dvrogozh/tmp/_install/lib/pkgconfig/../../include/level_zero/loader/../layers/zel_tracing_register_cb.h:874:5: error: ‘ze_validate_runtime_requirements_output_t’ does not name a type; did you mean ‘_ze_device_validate_runtime_requirements_params_t’?
874 | ze_validate_runtime_requirements_output_t** ppOut;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| _ze_device_validate_runtime_requirements_params_t
/home/dvrogozh/tmp/_install/lib/pkgconfig/../../include/level_zero/loader/../layers/zel_tracing_register_cb.h:926:5: error: ‘ze_device_compiler_info_t’ does not name a type; did you mean ‘ze_device_properties_t’?
926 | ze_device_compiler_info_t* pparamName;
| ^~~~~~~~~~~~~~~~~~~~~~~~~
| ze_device_properties_t
Please, support this usage scenario. This usage comes from the pytorch CI where dpclang and PTI libraries have different requirements for the minimal L0 version and system level L0 is too old to be used by both. To handle this issue we need to build L0 on pytorch CI side and use it to further build dpclang, PTI and pytorch - that's where we step into issue. On pytorch side see:
CC: @sarnex, @dm-vodopyanov, @mschilling0
With v7.0.1 on Linux (Ubuntu 24.04). Note that issue can't be reproduced on b73d26e (latest sycl branch head as of 8/27/2026) - I explain why in the #23045 (comment).
Consider that system has outdated system-wide installation of L0, for example, on PVC system with LTS 2350 driver set:
This version is too old to build dpclang. Thus user can opt-in to build dpclang against custom installation of L0, so he does:
Note that user installs L0 into custom local directory
$HOME/_install. In this case build of the dpclang will fail:Please, support this usage scenario. This usage comes from the pytorch CI where dpclang and PTI libraries have different requirements for the minimal L0 version and system level L0 is too old to be used by both. To handle this issue we need to build L0 on pytorch CI side and use it to further build dpclang, PTI and pytorch - that's where we step into issue. On pytorch side see:
CC: @sarnex, @dm-vodopyanov, @mschilling0