mirror of
https://git.yoctoproject.org/poky
synced 2026-04-20 09:32:13 +02:00
rust-common.bbclass: use built-in rust targets for -native builds
Rust targets have the form of 'arch-unknown-linux-gnu' while oe's native targets are 'arch-linux-gnu', e.g. omit the vendor. The effect this has on rust-native builds is that rust first builds itself as stage0 for arch-unknown-linux-gnu, then builds itself again for arch-unknown-linux-gnu, then finally uses the compiler from second step to 'cross-compile' a compiler for 'arch-linux-gnu'. This last step is really not necessary, and we could save 4 minutes out of 12 if it is eliminated. Which is what this patch does by setting the target directly to 'arch-unknown-linux-gnu'; rust's build system then shortcuts the build process after the second step. Given a working rust-native will be needed as early as possible in a typical yocto build (e.g. when in a not too distant future making a useful kernel will not be possible without rust), producing it faster is important. (From OE-Core rev: a918ea5645d8a67cedaf3ecf6c382520bbcad85b) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
3565ea860a
commit
e33afcd0dc
@@ -53,12 +53,9 @@ def rust_base_triple(d, thing):
|
||||
else:
|
||||
arch = oe.rust.arch_to_rust_arch(d.getVar('{}_ARCH'.format(thing)))
|
||||
|
||||
# When bootstrapping rust-native, BUILD must be the same as upstream snapshot tarballs
|
||||
bpn = d.getVar('BPN')
|
||||
if thing == "BUILD" and bpn in ["rust"]:
|
||||
return arch + "-unknown-linux-gnu"
|
||||
|
||||
vendor = d.getVar('{}_VENDOR'.format(thing))
|
||||
# Substituting "unknown" when vendor is empty will match rust's standard
|
||||
# targets when building native recipes (including rust-native itself)
|
||||
vendor = d.getVar('{}_VENDOR'.format(thing)) or "-unknown"
|
||||
|
||||
# Default to glibc
|
||||
libc = "-gnu"
|
||||
|
||||
Reference in New Issue
Block a user