-
Notifications
You must be signed in to change notification settings - Fork 13.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Manually moving shared libraries to a multiarch libdir, eg, /usr/lib/x86_64-linux-gnu, breaks after 1.67 #109994
Comments
Additional context from the linked u.r.l.o forum:
and
cc: @ozkanonur |
Thank you for the report. I can take care of it over the weekend. -- If anyone has time, feel free taking/fixing this before the weekend. |
Just remember we have already patched sys detection for supporting multiarch systems. Related commit 2186358 It's added to |
Oh! The same author of the Ubuntu patch. |
Hi, I'm experiencing the same issue when packaging 1.67 for Debian. 2186358 as mentioned by @ozkanonur didn't work. The fix is behind a check |
How did you test that patch? It's not shipped with |
The fix isn't shipped with 1.67, but the problematic code it's for is. I was building 1.68 with this 1.67, met this issue, cherry picked this fix, still met this issue, and figured the check evaluates to false, causing the fix to not take effect. |
Thank you for your feedback, I will check it this week. |
A deeper look concluded my previous finding partially wrong. In The comment line " Update: A test that special-case's Debian's situation worked, see https://salsa.debian.org/ncts/rust/-/commit/92d0b8f4aeb38f26803cf11ab8af0cfdb653796b. |
I have tested this on Debian 11, worked just fine. It's under review progress now. |
I see, thanks for the help 🥂 I'll cherry-pick that then. |
Description
Debian deploys a multiarch schema. For Rust,
librustc_driver-*.so
and other shared libraries needed forrustc
to run are installed to/usr/lib/x86_64-linux-gnu
on x86_64. Andrustlib
directory is installed as/usr/lib/rustlib
.During Rust build, Debian just lets
x.py
install the shared libraries to/usr/lib
, and then manually moves them to/usr/lib/x86_64-linux-gnu
.This works before 1.67.
But since 1.67,
rustc
will fail to findstd
crate, sincerustc
tries to findrustlib
directory through a relative path based onlibrustc_driver-*.so
.rustc
guessesrustlib
directory is/usr/lib/x86_64-linux-gnu/../lib/rustlib
aka/usr/lib/lib/rustlib
, which does not exist.To work around this, Ubuntu deploys a downstream patch. But as discussed with @bjorn3, that patch actually breaks what Rust 1.67 trying to get.
I hope Rust upstream can provide a better solution for this installation schema to work without downstream patch.
Version it worked on
It most recently worked on: Rust 1.66.1
Version with regression
1.67
The text was updated successfully, but these errors were encountered: