All of lore.kernel.org
 help / color / mirror / Atom feed
From: Khem Raj <raj.khem@gmail.com>
To: Alexander Kanavin <alex.kanavin@gmail.com>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [OE-core] [PATCH] rust: Disable 64bit atomics on crossbeam on riscv32
Date: Tue, 25 Oct 2022 17:45:57 -0700	[thread overview]
Message-ID: <CAMKF1sqthWA=ZyfVVfcrdYYemLT3VkFnSFP-aUJ8bbBr_0Pqcw@mail.gmail.com> (raw)
In-Reply-To: <CANNYZj8d9b-se+mjFJwcm_TuyNY74np-=hi+QjGjt8zgh874Dw@mail.gmail.com>

On Tue, Oct 25, 2022 at 9:15 AM Alexander Kanavin
<alex.kanavin@gmail.com> wrote:
>
> Ok, I have looked into this properly now. So:
>
> - the fail started to occur in 1.64 because crossbeam-utils is now a
> dependency of rust core (hard fail) and not just rustfmt (soft fail)
> - the correct way to address it is indeed to map oe arch (riscv32) to
> rust arch (riscv32gc) via meta/lib/oe/rust.py, which works globally
> across all recipes where this may occur.
> - however doing that exposed confusion about how we map arches, as
> there is actually a *third* arch involved (the internal llvm one
> listed in custom target definition), which too needs to be correctly
> mapped from oe arch so I fixed that as well.
>
> None of the three arch sets match each other exactly, unfortunately.

Right.

>
> Patches are coming shortly.
>

Thanks, I think we can also unbolt the workaround in librsvg as well.

diff --git a/meta/recipes-gnome/librsvg/librsvg_2.54.5.bb
b/meta/recipes-gnome/librsvg/librsvg_2.54.5.bb
index fc52ae61c5..daf60217d4 100644
--- a/meta/recipes-gnome/librsvg/librsvg_2.54.5.bb
+++ b/meta/recipes-gnome/librsvg/librsvg_2.54.5.bb
@@ -35,7 +35,6 @@ export RUST_TARGET = "${RUST_HOST_SYS}"
 RUSTFLAGS:append:mips = " --cfg crossbeam_no_atomic_64"
 RUSTFLAGS:append:mipsel = " --cfg crossbeam_no_atomic_64"
 RUSTFLAGS:append:powerpc = " --cfg crossbeam_no_atomic_64"
-RUSTFLAGS:append:riscv32 = " --cfg crossbeam_no_atomic_64"

 CARGO_DISABLE_BITBAKE_VENDORING = "1"
 do_configure[postfuncs] += "cargo_common_do_configure"

> Alex
>
> On Sat, 22 Oct 2022 at 21:56, Alexander Kanavin via
> lists.openembedded.org <alex.kanavin=gmail.com@lists.openembedded.org>
> wrote:
> >
> > Ok, I'd like to understand where the failure is exactly. I just ran
> > 'bitbake rust' with poky master (rust 1.63) for qemuriscv32 machine,
> > and it succeeded. How can I see the fail? Did this become broken with
> > a 1.64.0 upgrade in your branch? (which I believe hasn't yet been
> > through the autobuilder, and so might show similar fails for other
> > targets without atomic_64 support)
> >
> > Alex
> >
> > On Fri, 21 Oct 2022 at 00:30, Khem Raj <raj.khem@gmail.com> wrote:
> > >
> > > riscv32 builds fail since AtomicI64 is not available in sync::atomic for
> > > this architecture. Therefore it needs to be opted out and the way out is
> > > to pass it by RUSTFLAGS, however rust target recipe overrides RUSTFLAGS
> > > before exporting it so its better to piggy back on the variable its
> > > using which is RUST_DEBUG_REMAP
> > >
> > > Signed-off-by: Khem Raj <raj.khem@gmail.com>
> > > ---
> > >  meta/recipes-devtools/rust/rust_1.64.0.bb | 1 +
> > >  1 file changed, 1 insertion(+)
> > >
> > > diff --git a/meta/recipes-devtools/rust/rust_1.64.0.bb b/meta/recipes-devtools/rust/rust_1.64.0.bb
> > > index 1f9dbd3cce..b05f188d9c 100644
> > > --- a/meta/recipes-devtools/rust/rust_1.64.0.bb
> > > +++ b/meta/recipes-devtools/rust/rust_1.64.0.bb
> > > @@ -9,6 +9,7 @@ FILES:${PN}-dev = ""
> > >
> > >  # Used by crossbeam_atomic.patch
> > >  export TARGET_VENDOR
> > > +RUST_DEBUG_REMAP:append:riscv32 = " --cfg crossbeam_no_atomic_64"
> > >
> > >  do_compile () {
> > >      rust_runx build --stage 2
> > > --
> > > 2.38.1
> > >
> > >
> > >
> > >
> >
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> > View/Reply Online (#172064): https://lists.openembedded.org/g/openembedded-core/message/172064
> > Mute This Topic: https://lists.openembedded.org/mt/94464934/1686489
> > Group Owner: openembedded-core+owner@lists.openembedded.org
> > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alex.kanavin@gmail.com]
> > -=-=-=-=-=-=-=-=-=-=-=-
> >


  reply	other threads:[~2022-10-26  0:46 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-20 22:30 [PATCH] rust: Disable 64bit atomics on crossbeam on riscv32 Khem Raj
2022-10-21  6:03 ` [OE-core] " Alexander Kanavin
2022-10-21 14:05   ` Khem Raj
2022-10-21 15:41     ` Alexander Kanavin
2022-10-21 16:06       ` Khem Raj
2022-10-21 16:18         ` Alexander Kanavin
2022-10-21 16:59           ` Khem Raj
2022-10-21 17:12             ` Alexander Kanavin
2022-10-21 17:16               ` Khem Raj
2022-10-21 17:28                 ` Alexander Kanavin
2022-10-21 20:10                   ` Khem Raj
2022-10-22 19:56 ` Alexander Kanavin
     [not found] ` <17207C5BC457528C.2993@lists.openembedded.org>
2022-10-25 16:15   ` Alexander Kanavin
2022-10-26  0:45     ` Khem Raj [this message]
2022-10-26  7:58       ` Alexander Kanavin
2022-10-26 13:12         ` Khem Raj

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='CAMKF1sqthWA=ZyfVVfcrdYYemLT3VkFnSFP-aUJ8bbBr_0Pqcw@mail.gmail.com' \
    --to=raj.khem@gmail.com \
    --cc=alex.kanavin@gmail.com \
    --cc=openembedded-core@lists.openembedded.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.