Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upRe-bootstrapping from the *current* release #29556
Comments
steveklabnik
added
the
A-build
label
Nov 4, 2015
This comment has been minimized.
This comment has been minimized.
|
A self-rebuild will be required if there is any need to regenerate the Rust package. Rust x.y will already be in the distro buildroot, thus the prior x.(y-1) is no longer available, but perhaps we need to apply some bugfix or security patch to Rust, or relink due to a changed dependency, etc. (Actually, I'm not sure how that will technically work, if something like LLVM gets rebased and we need to simultaneously use the old and link against the new. But that's a distro issue.) Anyway, I may be able to work on this bug with some light mentoring hints. Can someone point to a starting point? |
This comment has been minimized.
This comment has been minimized.
|
This might be easier as part of rustbuild rather than the makefiles (as it's in theory easier to read the dependency list). If you want to dive into the makefiles, the relevant targets start around here for libraries. For rustbuild, the list of dependencies show up in this file. In rustbuild at least, this would probably look like:
As for the Makefiles, well, I would perhaps avoid touching them if I were you :) |
This comment has been minimized.
This comment has been minimized.
|
I've been banging my head on the makefiles, but I think I just had a eureka moment to simplify this. We don't actually need to skip any stages -- we just need to adjust how the stage0->1 build is configured. That's basically just the choice of |
This comment has been minimized.
This comment has been minimized.
|
@alexcrichton, could you please take at look at this gist patch? I don't expect it to be mergable yet, which is why I didn't open a PR, but I hope to get your opinion on the approach. Basically as I mentioned above, this still goes through all the same stages, but it treats the snapshot/local compiler as if it already has the stage1 features and the same bootstrap key. |
This comment has been minimized.
This comment has been minimized.
|
Looks reasonable to me! I'm not sure if it was intended to skip the bootstrap as part of this issue, but the plumbing there is at least what I'd expect |
brson commentedNov 4, 2015
In some scenarios (I've forgotten offhand), distros want to rebuild the compiler using itself. This is more-or-less equivalent to starting the build at stage 2.
We'll provide a way in the Makefile to do this easily.
re https://internals.rust-lang.org/t/perfecting-rust-packaging-the-plan/2767