diff options
Diffstat (limited to 'meta/classes/rust-target-config.bbclass')
-rw-r--r-- | meta/classes/rust-target-config.bbclass | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/meta/classes/rust-target-config.bbclass b/meta/classes/rust-target-config.bbclass index ab177cf59f..bc6bd77abb 100644 --- a/meta/classes/rust-target-config.bbclass +++ b/meta/classes/rust-target-config.bbclass | |||
@@ -292,6 +292,7 @@ def rust_gen_target(d, thing, wd, arch): | |||
292 | import json | 292 | import json |
293 | sys = d.getVar('{}_SYS'.format(thing)) | 293 | sys = d.getVar('{}_SYS'.format(thing)) |
294 | prefix = d.getVar('{}_PREFIX'.format(thing)) | 294 | prefix = d.getVar('{}_PREFIX'.format(thing)) |
295 | rustsys = d.getVar('RUST_{}_SYS'.format(thing)) | ||
295 | 296 | ||
296 | abi = None | 297 | abi = None |
297 | cpu = "generic" | 298 | cpu = "generic" |
@@ -318,13 +319,9 @@ def rust_gen_target(d, thing, wd, arch): | |||
318 | features = features or d.getVarFlag('FEATURES', arch_abi) or "" | 319 | features = features or d.getVarFlag('FEATURES', arch_abi) or "" |
319 | features = features.strip() | 320 | features = features.strip() |
320 | 321 | ||
321 | llvm_target = d.getVar('RUST_TARGET_SYS') | ||
322 | if thing == "BUILD": | ||
323 | llvm_target = d.getVar('RUST_HOST_SYS') | ||
324 | |||
325 | # build tspec | 322 | # build tspec |
326 | tspec = {} | 323 | tspec = {} |
327 | tspec['llvm-target'] = llvm_target | 324 | tspec['llvm-target'] = rustsys |
328 | tspec['data-layout'] = d.getVarFlag('DATA_LAYOUT', arch_abi) | 325 | tspec['data-layout'] = d.getVarFlag('DATA_LAYOUT', arch_abi) |
329 | if tspec['data-layout'] is None: | 326 | if tspec['data-layout'] is None: |
330 | bb.fatal("No rust target defined for %s" % arch_abi) | 327 | bb.fatal("No rust target defined for %s" % arch_abi) |
@@ -358,7 +355,7 @@ def rust_gen_target(d, thing, wd, arch): | |||
358 | tspec['panic-strategy'] = d.getVar("RUST_PANIC_STRATEGY") | 355 | tspec['panic-strategy'] = d.getVar("RUST_PANIC_STRATEGY") |
359 | 356 | ||
360 | # write out the target spec json file | 357 | # write out the target spec json file |
361 | with open(wd + sys + '.json', 'w') as f: | 358 | with open(wd + rustsys + '.json', 'w') as f: |
362 | json.dump(tspec, f, indent=4) | 359 | json.dump(tspec, f, indent=4) |
363 | 360 | ||
364 | # These are accounted for in tmpdir path names so don't need to be in the task sig | 361 | # These are accounted for in tmpdir path names so don't need to be in the task sig |
@@ -366,10 +363,13 @@ rust_gen_target[vardepsexclude] += "ABIEXTENSION llvm_cpu" | |||
366 | 363 | ||
367 | do_rust_gen_targets[vardeps] += "DATA_LAYOUT TARGET_ENDIAN TARGET_POINTER_WIDTH TARGET_C_INT_WIDTH MAX_ATOMIC_WIDTH FEATURES" | 364 | do_rust_gen_targets[vardeps] += "DATA_LAYOUT TARGET_ENDIAN TARGET_POINTER_WIDTH TARGET_C_INT_WIDTH MAX_ATOMIC_WIDTH FEATURES" |
368 | 365 | ||
369 | RUST_TARGETGENS = "BUILD" | 366 | RUST_TARGETS_DIR = "${WORKDIR}/rust-targets/" |
367 | export RUST_TARGET_PATH = "${RUST_TARGETS_DIR}" | ||
368 | |||
369 | RUST_TARGETGENS = "BUILD HOST TARGET" | ||
370 | 370 | ||
371 | python do_rust_gen_targets () { | 371 | python do_rust_gen_targets () { |
372 | wd = d.getVar('WORKDIR') + '/targets/' | 372 | wd = d.getVar('RUST_TARGETS_DIR') |
373 | # Order of BUILD, HOST, TARGET is important in case the files overwrite, most specific last | 373 | # Order of BUILD, HOST, TARGET is important in case the files overwrite, most specific last |
374 | rust_gen_target(d, 'BUILD', wd, d.getVar('BUILD_ARCH')) | 374 | rust_gen_target(d, 'BUILD', wd, d.getVar('BUILD_ARCH')) |
375 | if "HOST" in d.getVar("RUST_TARGETGENS"): | 375 | if "HOST" in d.getVar("RUST_TARGETGENS"): |
@@ -379,5 +379,5 @@ python do_rust_gen_targets () { | |||
379 | } | 379 | } |
380 | 380 | ||
381 | addtask rust_gen_targets after do_patch before do_compile | 381 | addtask rust_gen_targets after do_patch before do_compile |
382 | do_rust_gen_targets[dirs] += "${WORKDIR}/targets" | 382 | do_rust_gen_targets[dirs] += "${RUST_TARGETS_DIR}" |
383 | 383 | ||