gentoo/musl

the future of dev-lang/rust with musl support outside the scope of amd64 and aarch64

Closed this issue · 1 comments

hey everyone,

I've been compiling firefox-esr for my little armv7a-musl box for the last years, using dev-lang/rust ebuilds from smaeul his overlay. There are stages available at https://portage.smaeul.xyz/distfiles/ , and he seemingly has stopped pushing out new stages with rust-1.48.0 being the last one.

I reached out for him, and he pushed an ebuild and patchset for rust-1.48.0 to his overlay. I have it bootstraped and compiled into a perfectly working rustc + cargo binary, but this might be the end of that road. I'm not a rust hacker myself, and while its possible for me to backport his rust-1.48.0 patchset to rust-1.49.0 in a sense that it will apply, I run into massive problems down the road:

sysroot: "/var/tmp/portage/dev-lang/rust-1.49.0/work/rustc-1.49.0-src/build/x86_64-gentoo-linux-musl/stage0-sysroot"
libdir: "/var/tmp/portage/dev-lang/rust-1.49.0/work/rust-stage0/lib"
error[E0609]: no field `target` on type `rustc_target::spec::Target`
    --> compiler/rustc_codegen_ssa/src/back/link.rs:2036:41
     |
2036 |                         && !sess.target.target.options.crt_static_allows_dylibs
     |                                         ^^^^^^ unknown field
     |
     = note: available fields are: `llvm_target`, `pointer_width`, `arch`, `data_layout`, `options`

error: aborting due to previous error

For more information about this error, try `rustc --explain E0609`.

Did not run successfully: exit code: 1
error: could not compile `rustc_codegen_ssa`

which I lack the expertise to debug properly.

So, what kind of options are there for a musl powered rust on systems other than amd64 and aarch64, where upstream provides a prebuilt stage for? My idea was to use system-bootstrap, and so make my way through until I reach a llvm-12 based version, but I'm running into really tricky problems.

seems there is none