Skip to content

[UR][CMake] Keep UR dependency installs out of the sycl component - #23712

Open
lukaszstolarczuk wants to merge 1 commit into
syclfrom
fix-build-umf
Open

lukaszstolarczuk wants to merge 1 commit into
syclfrom
fix-build-umf

Conversation

@lukaszstolarczuk

Copy link
Copy Markdown
Contributor

Since 8673c6f2cda8, llvm/tools/CMakeLists.txt sets CMAKE_INSTALL_DEFAULT_COMPONENT_NAME to the external project name while adding it, i.e. "sycl" for this tree. Any install() rule without an explicit COMPONENT under the sycl external project then lands in the "sycl" component instead of the never-deployed "Unspecified" one.

Unified Runtime's fetched dependencies (UMF in particular) install files without a COMPONENT, so after the WW44 pulldown deploy-sycl-toolchain started shipping umf libs, headers, and configs in the toolchain.

Save CMAKE_INSTALL_DEFAULT_COMPONENT_NAME and reset it to "Unspecified" around the UR add_subdirectory, restoring the pre-pulldown behavior. UR's own install rules all set an explicit COMPONENT and are unaffected; the intentional unified-memory-framework component (shared libumf only) keeps working.

Ref. #23676
Fixes: #23708

Since llvm/llvm-project@8673c6f2cda8 ("[CMake] Give LLVM_EXTERNAL_PROJECTS
installs a default component"), llvm/tools/CMakeLists.txt sets
CMAKE_INSTALL_DEFAULT_COMPONENT_NAME to the external project name while
adding it, i.e. "sycl" for this tree. Any install() rule without an
explicit COMPONENT under the sycl external project then lands in the
"sycl" component instead of the never-deployed "Unspecified" one.

Unified Runtime's fetched dependencies (UMF in particular) install files
without a COMPONENT, so after the WW44 pulldown deploy-sycl-toolchain
started shipping umf libs, headers, and configs in the toolchain.

Save CMAKE_INSTALL_DEFAULT_COMPONENT_NAME and reset it to "Unspecified"
around the UR add_subdirectory, restoring the pre-pulldown behavior. UR's
own install rules all set an explicit COMPONENT and are unaffected; the
intentional unified-memory-framework component (shared libumf only) keeps
working.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@lukaszstolarczuk
lukaszstolarczuk requested a review from a team as a code owner November 3, 2026 16:29
@lukaszstolarczuk
lukaszstolarczuk requested review from a team and dm-vodopyanov November 3, 2026 16:29
@lukaszstolarczuk

Copy link
Copy Markdown
Contributor Author

# Keep such projects in the never-deployed "Unspecified" component instead;
# UR's own install rules all set an explicit COMPONENT and are unaffected.
set(_ur_saved_default_component "${CMAKE_INSTALL_DEFAULT_COMPONENT_NAME}")
set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "Unspecified")

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that instead of using the push/pop WA, we could just set COMPONENT in all UR targets, since we have full control over the UR CMake files.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this PR covers that:
#23722

we can/should merge @kswiecicki change instead of this, I believe.

sidenote: if every any component forgets to add COMPONENT name we may silently let it in into sycl's installation.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SYCL Benchmarks are failing (provider_os_memory.c:(.text.os_finalize+0x51): undefined reference to `hwloc_bitmap_free')

2 participants