-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
Bootstrap configuration --host=
option not enough on its own
#33908
Comments
This is working as intended as our build system always has, the |
The problem is, during cross-bootstrap (this feature works great just for getting additional targets), contrary to the usual As I'd opined in the reddit thread I didn't have a problem with it, but maybe it should behave more intuitively indeed - your call. |
I've just remembered an ARM issue about two sets of crates in the same tarball - don't tell me it was the same problem all that time! |
I would personally actually be surprised if |
Presently to cross-bootstrap a single architecture compiler without fail, it's either necessary to set all three Should the case where just |
I don't think it would really change anything because to build a stageN compiler for any target you need a stageN build compiler to build it. |
--host=
option broken?--host=
option not enough on its own
Whatever. |
It was already brought to @alexcrichton's attention two months ago, and again yesterday, the
--build
flag was needed to set the LLVM runtime during cross-bootstrap, i.e. determine the actually desired host compiler.For some reason he keeps repeating the same advice, so it's time to open an issue about it.
Lets's illustrate the problem on ARM, that is an arm-linux-gnueabihf host, which normally picks
arm-unknown-linux-gnueabihf
as the build configuration, trying to bootstrap thearmv7
version:Following @alexcrichton's suggestion:
./configure --host=armv7-unknown-linux-gnueabihf
we get the following:
that is, compiler runtime was picked up from the actual host detection, whereas the
armv7
part is added as a second crate-set. To actually get the host compiler we want in a single switch, the following is necessary:./configure --build=armv7-unknown-linux-gnueabihf
This doesn't look completely illogical (or it would have been noticed a long time ago) cause we have two separate build systems (rust and llvm), and unlike gcc, llvm can emit code for every supported architecture by default.
The text was updated successfully, but these errors were encountered: