Rust doesn't duplicate libraries anymore, so we mustn't remove libs in /usr/lib
to save space. As such we also won't need the rpath patch anymore.
Bootstrap from tarballs again since the version in the repos has gone bad due
to this.
Building rust fails with the error:
error[E0523]: found two different crates with name `bitflags` that are not
distinguished by differing `-C metadata`. This will result in symbol conflicts
between the two.
--> src/librustdoc/html/markdown.rs:36:5
|
36 | use pulldown_cmark::{html, CowStr, Event, Options, Parser, Tag};
| ^^^^^^^^^^^^^^
Upstream fixed it with the included patch.
* Update alpine-target.patch to fix the triplet on armhf and add the armv7 and ppc64le
triplets. This should have been done in 69851bdae1177246337f51a35734e93f1fd7e3d3,
but has been forgotten.
* Remove the following patches:
* llvm-with-ffi.patch -> only required when statically linking LLVM
* bootstrap-tool-respect-tool-config.patch -> plain outdated, not required anymore
Also disable full bootstrapping. Since we always bootstrap from $pkgver minus one
we don't need it and it increases buildtime considerably.
Also keep in mind that we have to add new arches in multiple steps:
1. Compile with the upstream triplets, compiling alpine's triplets in
2. Compile again, now with our triplets selected as build/target, now that
rustc knows about them
This means that the produced compilers MUST ONLY be used to bootstrap the actual
compilers with our triplets, DO NOT use these to compile packages! Since x86_64
still uses the usual triplets it's fine to upgrade/add packages for that arch
though, please DO NOT do this for armhf,armv7,aarch64,ppc64le or x86 though!
This is actually not necessary, because rust is pulled by cargo-bootstrap.
However, cargo-bootstrap is provided by this abuild too - it's a hack to
allow the abuild to depend on itself (read comment inside the abuild for
more information)! So rust-bootstrap is just for symmetry with
cargo-bootstrap.
Cargo is now distributed together with rustc. Upstream has removed
Cargo.lock from the cargo's repository in cargo 0.23.0, so we can't
build it with locked and freezed dependencies separately anymore.
alexcrichton replied on Feb 1:
> cargo is packaged next to rustc, it's not intended to be a separate
> package but rather built as one unit.
See 5c9665f41c