convert to real Rust triples properly
This should fix conversion to real Rust triples for musl targets, for i686 targets and possibly others.
This commit is contained in:
@@ -12,18 +12,24 @@ def rust_base_triple(d, thing):
|
||||
# All the Yocto targets are Linux and are 'unknown'
|
||||
vendor = "-unknown"
|
||||
os = d.getVar('{}_OS'.format(thing), True)
|
||||
libc = d.getVar('TCLIBC', True)
|
||||
|
||||
if arch.startswith("arm"):
|
||||
if os.endswith("gnueabi"):
|
||||
os += bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'hf', '', d)
|
||||
elif arch.startswith("aarch64"):
|
||||
os = "linux-gnu"
|
||||
elif arch.startswith("x86_64"):
|
||||
os = "linux-gnu"
|
||||
elif arch.startswith("i586"):
|
||||
arch = "i686"
|
||||
os = "linux-gnu"
|
||||
return arch + vendor + '-' + os
|
||||
# Prefix with a dash and convert glibc -> gnu
|
||||
if libc == "glibc":
|
||||
libc = "-gnu"
|
||||
elif libc == "musl":
|
||||
libc = "-musl"
|
||||
|
||||
# Don't double up musl (only appears to be the case on aarch64)
|
||||
if os == "linux-musl":
|
||||
if libc != "-musl":
|
||||
bb.fatal("{}_OS was '{}' but TCLIBC was not 'musl'".format(thing, os))
|
||||
os = "linux"
|
||||
|
||||
# This catches ARM targets and appends the necessary hard float bits
|
||||
if os == "linux-gnueabi" or os == "linux-musleabi":
|
||||
libc = bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'hf', '', d)
|
||||
return arch + vendor + '-' + os + libc
|
||||
|
||||
RUST_BUILD_SYS = "${@rust_base_triple(d, 'BUILD')}"
|
||||
RUST_HOST_SYS = "${@rust_base_triple(d, 'HOST')}"
|
||||
|
||||
Reference in New Issue
Block a user