Skip to content

[SYCL] Move Linux device library install out of lib/ and into lib/dpcpp-(major_version)/sycl (#22036)#22160

Merged
KornevNikita merged 1 commit into
intel:sycl-rel-7_0from
sarnex:cherry4
May 28, 2026
Merged

[SYCL] Move Linux device library install out of lib/ and into lib/dpcpp-(major_version)/sycl (#22036)#22160
KornevNikita merged 1 commit into
intel:sycl-rel-7_0from
sarnex:cherry4

Conversation

@sarnex

@sarnex sarnex commented May 28, 2026

Copy link
Copy Markdown
Contributor

Cherry pick of 29ee2a6

Currently, we install all libdevice files to lib/. We are trying to improve our packaging to make it easier for Linux distros to package the compiler, and installing dozens of .bc files to /usr/lib breaks many distro policies. The main problems are that these files have no use to end users or applications using SYCL, they are only needed by the SYCL compiler itself. Installing to /usr/lib/libsycl-crt.bc for example doesn't make sense.

This change proposes moving the files to
lib/dpcpp-DPCPP_MAJOR_VERSION/sycl, so a real example would be lib/dpcpp-7/sycl.

This change is being made only for Linux, as the file packaging is already much different for Windows, for example today we put libraries in general (such as libsycl.dll) in bin/ but libdevice files in lib, so I don't see any need to match the behavior between OSes and complicate the Driver code even more.

Note the libdevice code also generates a host static library, libsycl-devicelib-host.a, which is completely untouched by this PR.

Closes: #21512


…pp-(major_version)/sycl (intel#22036)

Cherry pick of 29ee2a6

Currently, we install all libdevice files to `lib/`. We are trying to
improve our packaging to make it easier for Linux distros to package the
compiler, and installing dozens of .bc files to `/usr/lib` breaks many
distro policies. The main problems are that these files have no use to
end users or applications using SYCL, they are only needed by the SYCL
compiler itself. Installing to `/usr/lib/libsycl-crt.bc` for example
doesn't make sense.

This change proposes moving the files to
`lib/dpcpp-DPCPP_MAJOR_VERSION/sycl`, so a real example would be
`lib/dpcpp-7/sycl`.

This change is being made only for Linux, as the file packaging is
already much different for Windows, for example today we put libraries
in general (such as `libsycl.dll`) in `bin/` but `libdevice` files in
`lib`, so I don't see any need to match the behavior between OSes and
complicate the Driver code even more.

Note the `libdevice` code also generates a host static library,
`libsycl-devicelib-host.a`, which is completely untouched by this PR.

Closes: intel#21512

---------

Signed-off-by: Nick Sarnie <nick.sarnie@intel.com>
@sarnex sarnex temporarily deployed to WindowsCILock May 28, 2026 15:33 — with GitHub Actions Inactive
@sarnex sarnex temporarily deployed to WindowsCILock May 28, 2026 16:01 — with GitHub Actions Inactive
@sarnex sarnex temporarily deployed to WindowsCILock May 28, 2026 16:01 — with GitHub Actions Inactive
@sarnex sarnex temporarily deployed to WindowsCILock May 28, 2026 16:01 — with GitHub Actions Inactive
@sarnex sarnex marked this pull request as ready for review May 28, 2026 16:07
@sarnex sarnex requested a review from KornevNikita as a code owner May 28, 2026 16:07
@KornevNikita KornevNikita merged commit a8b3d2c into intel:sycl-rel-7_0 May 28, 2026
37 of 38 checks passed
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.

2 participants