-
Notifications
You must be signed in to change notification settings - Fork 2
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
I'm stuck with backporting your patchset to rustc-1.49.0-src for armv7a #31
Comments
I bumped rust to 1.48 a few months ago, but never published it because I didn't have opportunity to test it well. My solution was to use the "secret" nightly escape hatch: exporting See commit f99138c. |
thank you so much for pushing the patchset, but tell me where did it end up? Its clearly not merged to the overlay, hence I pulled the commit via |
so, I've tested rust-1.48.0 a bit. It compiles bootstraps and compiles fine on amd64, and armv7a. I was able to compile librsvg and cbindgen on both of them, plus spidermonkey for amd64. so you can commit rust-1.48.0 ebuild and patchset to the overlay, if that counts as testing for you. |
@smaeul I just saw the ppc64 stages you built, and I imagine that there must be a patchset and other fancy stuff. Do you think its possible to release them? Sadly, I never made it to a self hosting rust for armv7a :( for aarch64-musl, all is fine with the in-tree ebuild. |
The patches are in the |
I don't really understand? I saw the stages and assumed that there is a fully working patchset, otherwise they must not exist? :-S |
@smaeul which rust chost do you recommend for armv7a? The prebuilt rust-1.48 stage actually has Also, are http-parser and libssh2 dependencies still needed for musl based rust compiler? (I have the patchset backported up to 1.55.0 on amd64, but need more time to test with really slow armv7 hardware) |
I don't have any specific recommendation. As long as you are adding a CHOST, and not modifying an upstream CHOST, you should not have any compatibility problems. The CHOST I used when building stage tarballs isn't really important. Yes, http-parser and libssh2 are still needed. They are dependencies of cargo. (See |
Ok, so its possible to switch over to armv7-gentoo-linux-musleabihf, introduced with the based on lddtree alone it seems that the dependency on libhttp_parser.so was dropped with dev-lang/rust-1.48.0; most likely replaced by libnghttp2.so through libcurl.so
same with amd64 and dev-lang/rust-1.49.0
even though I can clearly see the libssh2.so, the ebuilds from gentoo tree dropped libssh2 dep with the introduction of rust-1.47.0 ebuild |
how confident are you in your statement, that cargo must be linked against libssh2? The more I read about it in older bugs (https://bugs.gentoo.org/749381), the more I get the impression that the ebuild actually overlinks against libssh2.so you seem to have linked the stages statically, so they should work, but it might be a problem further down the road with subsequent uses of "system-bootstrap" |
I didn't mean to imply that cargo must link libssh2. In fact, I have run into the exact issue from that bug, and agree with the solution to use the bundled libssh2. I only meant that cargo currently does link libssh2. |
follow gentoo decision to remove system-libssh2, trying to avoid abi nightmare in the future during +system-bootstrap Bug: https://bugs.gentoo.org/749381 Bug: smaeul#31
/usr/bin/cargo without system-libssh2:
|
follow gentoo decision to remove system-libssh2, trying to avoid abi nightmare in the future during +system-bootstrap Bug: https://bugs.gentoo.org/749381 See: smaeul#31 Signed-off-by: Steffen Kuhn <[email protected]>
Can you please commit the libssh2 removal? I have 1.50.0 queued up (: |
follow gentoo decision to remove system-libssh2, trying to avoid abi nightmare in the future during +system-bootstrap Bug: https://bugs.gentoo.org/749381 See: #31 Signed-off-by: Steffen Kuhn <[email protected]> Signed-off-by: Samuel Holland <[email protected]>
I continued my porting, it was painfree up to rust-1.53.0 which allows to build firefox-96.0 and unbreaks cbindgen, and cargo-c also. With rust-1.54.0, I'm a bit stuck because your patch to modify the new file to the old behavior doesn't seem to work, so I'm a little lost here. I got away with dropping the patch for now, but thats not a good strategy here, is it? |
other than that, things are just fine:
|
Did you see the branches here? https://github.com/smaeul/rust/branches For example that patch I have in 1.58.1 as smaeul/rust@5751145. |
Yes I did have a look at them, but for some reason it doesn't ship the libc patch and when I finally got that sorted out I must have forgotten about them 🤣 |
hey, I just saw that you forwarded the ebuilds to 1.58.1 and 1.59.0, including the patchset - seems you agree with me to drop the libc patch for 1.59.0 - you don't know why this isn't needed anymore, do you? also, can you make use of these files? maybe its possible to repack them to a full stage consisting of rustc, std and cargo?
|
rust-lang/libc#2272 as part of rust-lang/rust#90527. |
@smaeul I managed to continue with backporting your patchset up to rust-1.64.0, and I also managed to repack all of rustc, rust-std and cargo into one stage: Also I did have a quick look at the 1.65.0 beta branch, and it seems there are many changes, maybe too many for me to grasp. Do you think its possible for you to have a look at my efforts, once 1.65.0 has hit the stable channels? I'll try my best to solve this myself, but I may fail badly :D |
Issue with rust-1.65.0_beta was solved via rust-lang/rust#101942 |
hey there, I saw the in tree rust ebuilds allow to build for amd64-musl and aarch64-musl, upstream seems to push out stage3 archives for a while now. Sadly, that is not the case for armv7a. There is only a rust-std for armv7-unknown-linux-musleabihf, that is not enough to bootstrap a full rustc compiler.
In an effort to bootstrap my way up slowly to at least rust-1.51.0 for proper firefox91-esr support, I tried to rebase your rustc-1.47.0 patchset, and I almost succeeded. Only one patch gives me a big headache, that is the 0030-libc-linkage.patch: https://github.com/smaeul/portage-overlay/blob/master/dev-lang/rust/files/0030-libc-linkage.patch#L7
this is my backport, just switching the dir name:
which fails with this error:
only solution for this problem I was able to find is to use a nightly compiler, that is not an option in this case it seems to me. All other patches were rather easy, but this one I don't get it what to do to fix it. Can you please help me to find a solution?
The text was updated successfully, but these errors were encountered: