All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Peter Bergin <peter@berginkonsult.se>, yocto@lists.yoctoproject.org
Subject: Re: [yocto] Regression in rust-cross-canadian-aarch64
Date: Tue, 28 Jun 2022 11:09:34 +0100	[thread overview]
Message-ID: <cc0d97a6c235cf16ebebaf4be5f4c646d503adac.camel@linuxfoundation.org> (raw)
In-Reply-To: <58c0ec3e-a06a-7829-1168-ef7e70b365f0@berginkonsult.se>

On Tue, 2022-06-28 at 11:00 +0200, Peter Bergin wrote:
> On 2022-06-19 22:47, Peter Bergin wrote:
> 
> 
> The reason for this issue seems to be this commit:
> 
>      commit 781eaa955dce5deab47371c25dae72b36c011900
>      Author: Richard Purdie <richard.purdie@linuxfoundation.org>
>      Date:   Sat May 21 14:02:47 2022 +0100
> 
>          rust-common: Drop LLVM_TARGET and simplify
> 
>          This all seems over complicated for something which is 
> basically always
>          one of two values. This might even help cross-canadian work on 
> something
>          which isn't x86-64.
> 
>          (From OE-Core rev: bd36593ba3db758b3eacc974e48468a665967961)
> 
>          Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
> 
> 
> When building rust-cross-canadian-aarch64 the file 
> 'tmp/work/x86_64-nativesdk-pokysdk-linux/rust-cross-canadian-aarch64/1.60.0-r0/targets/aarch64-poky-linux.json' 
> will be populated with the information '"llvm-target": 
> "x86_64-unknown-linux-gnu"'. This will lead to object files in wrong 
> format during 'Building stage2 std artifacts (x86_64-unknown-linux-gnu 
> -> aarch64-poky-linux)' in the do_compile step.
> 
> In 'meta/recipes-devtools/rust/rust-common.inc':
> 
>      # build tspec
>      tspec = {}
>      if bb.data.inherits_class('cross-canadian', d):
>          tspec['llvm-target'] = d.getVar('RUST_HOST_SYS', arch_abi)
>      else:
>          tspec['llvm-target'] = d.getVar('RUST_TARGET_SYS', arch_abi)
> 
> So for some reason it seems intentional to set 'llvm-target' to HOST_SYS 
> when 'cross-canadian'. The behavior has changed with this patch. Before 
> 'llvm-target' was set to RUST_TARGET_SYS for all target archs other than 
> x86_64 where it was set to RUST_HOST_SYS. I guess this change has to do 
> with the commit message 'This might even help cross-canadian work on 
> something which isn't x86-64.'? But unfortunately it seems to break the 
> case building on x86_64 for aarch64. It would be good to get some help 
> here to sort this out.

I'm wondering if we need something like:

diff --git a/meta/recipes-devtools/rust/rust-common.inc b/meta/recipes-devtools/rust/rust-common.inc
index 621cd4ad576..ef70c48d0f4 100644
--- a/meta/recipes-devtools/rust/rust-common.inc
+++ b/meta/recipes-devtools/rust/rust-common.inc
@@ -309,10 +309,7 @@ def rust_gen_target(d, thing, wd, features, cpu, arch, abi=""):
 
     # build tspec
     tspec = {}
-    if bb.data.inherits_class('cross-canadian', d):
-        tspec['llvm-target'] = d.getVar('RUST_HOST_SYS', arch_abi)
-    else:
-        tspec['llvm-target'] = d.getVar('RUST_TARGET_SYS', arch_abi)
+    tspec['llvm-target'] = d.getVar('RUST_TARGET_SYS', arch_abi)
     tspec['data-layout'] = d.getVarFlag('DATA_LAYOUT', arch_abi)
     tspec['max-atomic-width'] = int(d.getVarFlag('MAX_ATOMIC_WIDTH', arch_abi))
     tspec['target-pointer-width'] = d.getVarFlag('TARGET_POINTER_WIDTH', arch_abi)


?

Cheers,

Richard




       reply	other threads:[~2022-06-28 10:09 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <16FA2096B2BC4C47.21247@lists.yoctoproject.org>
     [not found] ` <58c0ec3e-a06a-7829-1168-ef7e70b365f0@berginkonsult.se>
2022-06-28 10:09   ` Richard Purdie [this message]
2022-06-28 11:38   ` [yocto] Regression in rust-cross-canadian-aarch64 Richard Purdie
2022-06-28 15:54     ` Randy MacLeod

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cc0d97a6c235cf16ebebaf4be5f4c646d503adac.camel@linuxfoundation.org \
    --to=richard.purdie@linuxfoundation.org \
    --cc=peter@berginkonsult.se \
    --cc=yocto@lists.yoctoproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.