Description
As discovered by @yingcong-wu in #16747 (comment) the run_prebuilt_e2e_tests CI jobs in PR testing fail in the case that the UR API changes.
I notice that those features are all tested in
llvm/sycl/test-e2e/lit.cfg.py
usingsubprocess.getstatusoutput
. I added a print to those tests and they all show the following error:2025-02-11T15:09:01.2540004Z lit.py: /__w/llvm/llvm/llvm/sycl/test-e2e/lit.cfg.py:328: note: /usr/bin/ld: /__w/llvm/llvm/toolchain/bin/../lib/libsycl.so: undefined reference to `urEnqueueCommandBufferExp@LIBUR_LOADER_0.12' 2025-02-11T15:09:01.2540580Z clang++: error: linker command failed with exit code 1 (use -v to see invocation) 2025-02-11T15:09:01.2541173Z lit.py: /__w/llvm/llvm/llvm/sycl/test-e2e/lit.cfg.py:356: note: /usr/bin/ld: /__w/llvm/llvm/toolchain/bin/../lib/libsycl-preview.so: undefined reference to `urEnqueueCommandBufferExp@LIBUR_LOADER_0.12'
(In https://github.com/intel/llvm/actions/runs/13265484428/job/37031762080, line 104607).
I think there is a problem with those feature checks(maybe linking to an out-dated UR libs?), and I think it would impact any UR ABI breaking changes.
Experimental features in Unified Runtime are allowed to make API/ABI breaking changes, and the SYCL-Graph experimental oneAPI extension relies on being able to do this. This CI job should be updated so that it can pass in such a case, or a policy should be established with the gatekeepers whereby PRs that fail run_prebuilt_e2e_tests CI runs due to this reason can still be merged.