From: Conor Dooley <conor@kernel.org>
To: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
Cc: "Conor Dooley" <conor.dooley@microchip.com>,
linux-riscv@lists.infradead.org,
"Miguel Ojeda" <ojeda@kernel.org>,
"Alex Gaynor" <alex.gaynor@gmail.com>,
"Wedson Almeida Filho" <wedsonaf@gmail.com>,
"Boqun Feng" <boqun.feng@gmail.com>,
"Gary Guo" <gary@garyguo.net>,
"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
"Jonathan Corbet" <corbet@lwn.net>,
"Paul Walmsley" <paul.walmsley@sifive.com>,
"Palmer Dabbelt" <palmer@dabbelt.com>,
"Nathan Chancellor" <nathan@kernel.org>,
"Nick Desaulniers" <ndesaulniers@google.com>,
"Tom Rix" <trix@redhat.com>,
rust-for-linux@vger.kernel.org, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org, llvm@lists.linux.dev
Subject: Re: [PATCH v1 0/2] RISC-V: enable rust
Date: Wed, 5 Apr 2023 22:18:41 +0100 [thread overview]
Message-ID: <20230405-itinerary-handgrip-a5ffba368148@spud> (raw)
In-Reply-To: <20230403-repose-cartwheel-c3e10c231cae@spud>
[-- Attachment #1: Type: text/plain, Size: 3321 bytes --]
On Mon, Apr 03, 2023 at 06:14:57PM +0100, Conor Dooley wrote:
> On Mon, Apr 03, 2023 at 06:35:45PM +0200, Miguel Ojeda wrote:
> > As long as bindgen generates things with the right ABI etc., yeah.
> > But, in principle, enabling one extension one side but not the other
> > could be wrong if it ends up in something that Rust uses, e.g. if the
> > C side does:
> >
> > #ifdef __ARM_ARCH_7R__
> > int x;
> > #else
> > char x;
> > #endif
> >
> > and Rust attempts to use it, then particular `-march` builds could be broken.
>
> To be on the safe side then, we should really disable the extensions
> across the whole kernel. I don't *think* we have any madness at the
> moment like in the above, but it is better to be on the safe side.
So I am still of this opinion. I don't want to silently have a mismatch
between one side of the kernel and the other. Recipe for disaster.
If it's off for the Rust side of things, it should be off for C too.
> > but since the GCC+Rust builds are so experimental, I
> > think as long as something is tested from time to time, it would be
> > great (to at least know not everything is completely broken).
> >
> > But if you think that would be too much effort to maintain, or even
> > GCC builds in general, then please feel free to ignore it for the time
> > being, i.e. it is better to have LLVM builds rather than nothing! :)
>
> Yeah, it may be worth getting just the LLVM bits in. I abhor the -march
> handling and it may end up looking like shite with the zicsr &
> zifencei handling.
> Worst comes to worst, can permit gcc builds by just removing all the
> extensions that get passed in -march for RUST && CC_IS_GCC type
> scenarios. The only one of those at the moment is zihintpause & I don't
> suppose too many tears will be shed over that.
Been thinking about this some more, and I don't really like where this
is going. I think I am gonna explicitly disable gcc support if
anything.
I wrote out a list of issues I have with all of this, but I then had
second thoughts about some of them, so I've deleted that section of this
mail.
I need to think long and hard about the mixing and matching of support
between several versions of the tools (bindgen/llvm, rustc, gcc) for
different extensions & potentially different versions of the ISA spec.
I'll revisit this when my thoughts have settled down.
> For now it's safe to assume that LLVM doesn't require zicsr or zifencei
> [1], we don't need to do a version dance right away.
I also needed to remove `-mno-riscv-attribute` from bindgen's cflags
for things to work. That's probably not something yous have to deal with
as you're on an old kernel for the rust branch. Or maybe it got
backported to v6.2.n, idk.
Oh and bindgen doesn't actually seem to succeed with the hacks anyway:
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/__/include/linux/compiler_types_h_146_2)" is not a valid Ident'
I had a quick check on lore but didn't see a fix for that one.
And there's also the code model that doesn't yet seem to be handled.
The script looks to always use medany. Writing that here lest I forget
about it.
Either way, I marked the series as "Changes Requested" on patchwork :)
Cheers,
Conor.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
next prev parent reply other threads:[~2023-04-05 21:18 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-07 10:24 [PATCH v1 0/2] RISC-V: enable rust Conor Dooley
2023-03-07 10:24 ` [PATCH v1 1/2] scripts: generate_rust_target: enable building on RISC-V Conor Dooley
2023-03-07 11:21 ` Miguel Ojeda
2023-03-07 10:24 ` [PATCH v1 2/2] RISC-V: enable building 64-bit kernels with rust support Conor Dooley
2023-03-07 10:56 ` Miguel Ojeda
2023-03-07 11:01 ` Conor Dooley
2023-03-07 11:56 ` Miguel Ojeda
2023-03-07 12:51 ` Conor Dooley
2023-03-07 11:07 ` [PATCH v1 0/2] RISC-V: enable rust Miguel Ojeda
2023-03-30 8:23 ` Conor Dooley
2023-03-30 9:11 ` Conor Dooley
2023-04-03 16:35 ` Miguel Ojeda
2023-04-03 17:14 ` Conor Dooley
2023-04-05 21:18 ` Conor Dooley [this message]
2023-04-03 16:32 ` Miguel Ojeda
2023-06-08 7:01 ` Conor Dooley
2023-06-08 7:10 ` Conor Dooley
2023-06-08 7:50 ` Kwanghoon Son
2023-06-08 11:52 ` Miguel Ojeda
2023-06-08 12:28 ` Conor Dooley
2024-01-17 11:30 ` Conor Dooley
2024-01-17 18:23 ` Miguel Ojeda
2024-01-18 15:49 ` Conor Dooley
2024-01-18 16:09 ` Miguel Ojeda
2024-01-25 12:30 ` Conor Dooley
2024-01-25 12:50 ` Miguel Ojeda
2024-01-25 13:45 ` Conor Dooley
2024-01-26 21:00 ` Miguel Ojeda
2024-01-26 22:00 ` Conor Dooley
2024-01-27 13:46 ` Miguel Ojeda
2024-02-09 15:18 ` Conor Dooley
2024-02-10 8:13 ` Trevor Gross
2024-02-12 19:03 ` Ramon de C Valle
2024-02-12 20:36 ` Sami Tolvanen
2024-02-13 20:08 ` Ramon de C Valle
2024-02-14 3:14 ` Trevor Gross
[not found] ` <CAOcBZORDaHHH3jTL3GO7OsDubhhyQE0Uy2uAjJpiRzrKBgqaOw@mail.gmail.com>
2024-02-12 19:11 ` Miguel Ojeda
2024-02-12 20:17 ` Conor Dooley
2024-02-12 20:37 ` Conor Dooley
2024-02-13 20:09 ` Ramon de C Valle
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=20230405-itinerary-handgrip-a5ffba368148@spud \
--to=conor@kernel.org \
--cc=alex.gaynor@gmail.com \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun.feng@gmail.com \
--cc=conor.dooley@microchip.com \
--cc=corbet@lwn.net \
--cc=gary@garyguo.net \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=llvm@lists.linux.dev \
--cc=miguel.ojeda.sandonis@gmail.com \
--cc=nathan@kernel.org \
--cc=ndesaulniers@google.com \
--cc=ojeda@kernel.org \
--cc=palmer@dabbelt.com \
--cc=paul.walmsley@sifive.com \
--cc=rust-for-linux@vger.kernel.org \
--cc=trix@redhat.com \
--cc=wedsonaf@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox