From: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: "Miguel Ojeda" <ojeda@kernel.org>,
"Linus Torvalds" <torvalds@linux-foundation.org>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Sven Van Asbroeck" <thesven73@gmail.com>,
"Catalin Marinas" <catalin.marinas@arm.com>,
"Dave Hansen" <dave.hansen@linux.intel.com>,
"Miguel Cano" <macanroj@gmail.com>,
"Paul Mackerras" <paulus@samba.org>,
"Gary Guo" <gary@garyguo.net>, "Douglas Su" <d0u9.su@outlook.com>,
"Borislav Petkov" <bp@alien8.de>,
linux-riscv@lists.infradead.org, "Will Deacon" <will@kernel.org>,
"Martin Rodriguez Reboredo" <yakoyoku@gmail.com>,
"Anton Ivanov" <anton.ivanov@cambridgegreys.com>,
"H. Peter Anvin" <hpa@zytor.com>,
"Masahiro Yamada" <masahiroy@kernel.org>,
x86@kernel.org, "Russell King" <linux@armlinux.org.uk>,
"Ingo Molnar" <mingo@redhat.com>,
"Wedson Almeida Filho" <wedsonaf@google.com>,
"Alex Gaynor" <alex.gaynor@gmail.com>,
"Antonio Terceiro" <antonio.terceiro@linaro.org>,
"Adam Bratschi-Kaye" <ark.email@gmail.com>,
"Albert Ou" <aou@eecs.berkeley.edu>,
rust-for-linux@vger.kernel.org, linux-kbuild@vger.kernel.org,
"Boqun Feng" <boqun.feng@gmail.com>,
linux-um@lists.infradead.org,
"BjÃB 6rn Roy Baron" <bjorn3_gh@protonmail.com>,
"Michal Marek" <michal.lkml@markovi.net>,
"Daniel Xu" <dxu@dxuuu.xyz>, "David Gow" <davidgow@google.com>,
"Paul Walmsley" <paul.walmsley@sifive.com>,
"Dariusz Sosnowski" <dsosnowski@dsosnowski.pl>,
linux-arm-kernel@lists.infradead.org,
"Tiago Lam" <tiagolam@gmail.com>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Nick Desaulniers" <ndesaulniers@google.com>,
linux-kernel@vger.kernel.org,
"Boris-Chengbiao Zhou" <bobo1239@web.de>,
"Jarkko Sakkinen" <jarkko@kernel.org>,
"Palmer Dabbelt" <palmer@dabbelt.com>,
"Richard Weinberger" <richard@nod.at>,
"Finn Behrens" <me@kloenk.de>,
"Johannes Berg" <johannes@sipsolutions.net>,
linuxppc-dev@lists.ozlabs.org,
"Philip Herron" <philip.herron@embecosm.com>,
"Arthur Cohen" <arthur.cohen@embecosm.com>
Subject: Re: [PATCH v8 27/31] Kbuild: add Rust support
Date: Wed, 17 Aug 2022 17:13:25 +0200 [thread overview]
Message-ID: <CANiq72nNucEhXAXkXSujnGkpQrkv3-Pcn7ua8N=2XB-suAjs9w@mail.gmail.com> (raw)
In-Reply-To: <CAK8P3a0jqhGY9E85VC9gNem5q6-dWeq0H6-7bhJopinMnLtOKQ@mail.gmail.com>
Hi Arnd,
On Wed, Aug 17, 2022 at 4:40 PM Arnd Bergmann <arnd@arndb.de> wrote:
>
> Hi Miguel,
>
> I tried enabling rust support in the gcc builds I provide at
> https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/arm64/12.1.0/
Thanks for giving it a go!
> to make this more accessible, but it appears that the command line
> options here are not portable:
>
> /home/arnd/cross/x86_64/gcc-12.1.0+rust-nolibc/x86_64-linux/bin/x86_64-linux-gccrs
So you mean with GCC Rust, right? (i.e. we have "GCC builds" working,
via compiling the Rust side with LLVM and linking with the GCC C side,
but it is not intended for production or to be supported, even if we
cover it in our CI, test it boots and loads modules etc.).
Indeed, `gccrs` does not support `rustc` flags yet. I am not sure if
the GCC Rust team will eventually provide a driver for those like
clang does for e.g. `cl` -- I would hope they do, since many projects
would benefit from it, but maybe they plan to start simply by
modifying Cargo to call them as they need instead.
If they don't support it, we will have to map the flags on our side --
it should not be a big problem. However, see below...
> I guess nobody has tried this so far. Would you think that fixing this is only
> a matter for fixing the build system to pass the correct flags depending on the
> compiler, or is this broken in a more fundamental way?
If you meant GCC Rust, then it is a bit too early for the compiler. As
far as I now, they are working on compiling the `core` crate and
supporting more stable language features. They are also researching
the integration of the borrow checker, though we wouldn't need that
for "only" compiling the kernel.
Now, if they decided to focus on supporting Rust for Linux early on
(which would be great), they would still need to work on the delta
between what what they target now and what we use (which includes both
stable and some unstable features), plus I assume infrastructure bits
like the platform (target spec) support, the flags / `rustc` driver
(though I would be happy to do as much as possible on our side to
help), etc.
(We privately talked about possible timelines for all that if they
were to focus on Rust for Linux etc., but I let them comment or not on
that... Cc'ing them! :)
Cheers,
Miguel
next prev parent reply other threads:[~2022-08-17 15:13 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-02 1:49 [PATCH v8 00/31] Rust support Miguel Ojeda
2022-08-02 1:49 ` [PATCH v8 01/31] kallsyms: use `sizeof` instead of hardcoded size Miguel Ojeda
2022-08-02 1:49 ` [PATCH v8 02/31] kallsyms: avoid hardcoding buffer size Miguel Ojeda
2022-08-02 8:29 ` David Laight
2022-08-02 9:45 ` Rasmus Villemoes
2022-08-02 1:49 ` [PATCH v8 03/31] kallsyms: add static relationship between `KSYM_NAME_LEN{,_BUFFER}` Miguel Ojeda
2022-08-02 1:49 ` [PATCH v8 04/31] kallsyms: support "big" kernel symbols Miguel Ojeda
2022-08-02 1:49 ` [PATCH v8 05/31] kallsyms: increase maximum kernel symbol length to 512 Miguel Ojeda
2022-08-02 1:49 ` [PATCH v8 06/31] workqueue: introduce `__INIT_WORK_WITH_KEY` Miguel Ojeda
2022-08-15 21:14 ` Tejun Heo
2022-08-15 21:53 ` Miguel Ojeda
2022-08-02 1:49 ` [PATCH v8 07/31] locking/spinlock: introduce `__spin_lock_init` Miguel Ojeda
2022-08-03 20:58 ` Boqun Feng
2022-08-02 1:49 ` [PATCH v8 08/31] locking/spinlock: introduce `_raw_spin_lock_init` Miguel Ojeda
2022-08-03 21:00 ` Boqun Feng
2022-08-02 1:49 ` [PATCH v8 09/31] rust: add C helpers Miguel Ojeda
2022-08-02 1:49 ` [PATCH v8 10/31] rust: add `compiler_builtins` crate Miguel Ojeda
2022-08-02 1:49 ` [PATCH v8 12/31] rust: adapt `alloc` crate to the kernel Miguel Ojeda
2022-08-02 1:50 ` [PATCH v8 13/31] rust: add `build_error` crate Miguel Ojeda
2022-08-02 1:50 ` [PATCH v8 14/31] rust: add `macros` crate Miguel Ojeda
2022-08-02 1:50 ` [PATCH v8 15/31] rust: add `bindings` crate Miguel Ojeda
2022-08-02 1:50 ` [PATCH v8 18/31] rust: export generated symbols Miguel Ojeda
2022-08-02 1:50 ` [PATCH v8 19/31] vsprintf: add new `%pA` format specifier Miguel Ojeda
2022-08-02 1:50 ` [PATCH v8 20/31] scripts: checkpatch: diagnose uses of `%pA` in the C side as errors Miguel Ojeda
2022-08-02 1:50 ` [PATCH v8 21/31] scripts: checkpatch: enable language-independent checks for Rust Miguel Ojeda
2022-08-02 1:50 ` [PATCH v8 22/31] scripts: add `rustdoc_test_{builder,gen}.py` scripts Miguel Ojeda
2022-08-02 1:50 ` [PATCH v8 23/31] scripts: add `generate_rust_analyzer.py` scripts Miguel Ojeda
2022-08-02 1:50 ` [PATCH v8 24/31] scripts: decode_stacktrace: demangle Rust symbols Miguel Ojeda
2022-08-02 1:50 ` [PATCH v8 25/31] configs: add `rust` config Miguel Ojeda
2022-08-02 1:50 ` [PATCH v8 26/31] docs: add Rust documentation Miguel Ojeda
2022-08-02 1:50 ` [PATCH v8 27/31] Kbuild: add Rust support Miguel Ojeda
2022-08-17 14:39 ` Arnd Bergmann
2022-08-17 15:13 ` Miguel Ojeda [this message]
2022-08-17 15:24 ` Arnd Bergmann
2022-08-17 23:13 ` Miguel Ojeda
2022-08-17 16:11 ` Björn Roy Baron
2022-08-17 22:42 ` Miguel Ojeda
2022-09-06 18:08 ` Masahiro Yamada
2022-09-06 23:34 ` Michael Ellerman
2022-08-02 1:50 ` [PATCH v8 28/31] samples: add Rust examples Miguel Ojeda
2022-08-02 14:07 ` Konstantin Shelekhin
2022-08-02 20:04 ` Wei Liu
2022-08-03 9:23 ` Konstantin Shelekhin
2022-08-04 20:31 ` Miguel Ojeda
2022-08-05 11:40 ` Konstantin Shelekhin
2022-08-06 11:58 ` Miguel Ojeda
2022-08-02 1:50 ` [PATCH v8 29/31] MAINTAINERS: Rust Miguel Ojeda
2022-08-02 2:25 ` Boqun Feng
2022-08-02 3:41 ` Miguel Ojeda
2022-08-02 14:53 ` Gary Guo
2022-08-04 10:15 ` bjorn3
2022-08-02 1:50 ` [PATCH v8 30/31] [RFC] drivers: gpio: PrimeCell PL061 in Rust Miguel Ojeda
2022-08-02 12:26 ` [PATCH v8 00/31] Rust support Matthew Wilcox
2022-08-02 13:45 ` Miguel Ojeda
2022-08-02 13:48 ` Christoph Hellwig
2022-08-02 14:16 ` Miguel Ojeda
2022-08-02 14:01 ` Matthew Wilcox
2022-08-02 15:09 ` Miguel Ojeda
2022-08-02 17:46 ` Miguel Ojeda
[not found] ` <20220802015052.10452-18-ojeda@kernel.org>
2022-08-02 13:34 ` [PATCH v8 17/31] rust: add `kernel` crate Greg Kroah-Hartman
2022-08-02 14:33 ` Miguel Ojeda
2022-08-02 14:36 ` Greg Kroah-Hartman
2022-08-02 14:53 ` Miguel Ojeda
2022-08-03 7:30 ` Greg Kroah-Hartman
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='CANiq72nNucEhXAXkXSujnGkpQrkv3-Pcn7ua8N=2XB-suAjs9w@mail.gmail.com' \
--to=miguel.ojeda.sandonis@gmail.com \
--cc=alex.gaynor@gmail.com \
--cc=anton.ivanov@cambridgegreys.com \
--cc=antonio.terceiro@linaro.org \
--cc=aou@eecs.berkeley.edu \
--cc=ark.email@gmail.com \
--cc=arnd@arndb.de \
--cc=arthur.cohen@embecosm.com \
--cc=bjorn3_gh@protonmail.com \
--cc=bobo1239@web.de \
--cc=boqun.feng@gmail.com \
--cc=bp@alien8.de \
--cc=catalin.marinas@arm.com \
--cc=d0u9.su@outlook.com \
--cc=dave.hansen@linux.intel.com \
--cc=davidgow@google.com \
--cc=dsosnowski@dsosnowski.pl \
--cc=dxu@dxuuu.xyz \
--cc=gary@garyguo.net \
--cc=gregkh@linuxfoundation.org \
--cc=hpa@zytor.com \
--cc=jarkko@kernel.org \
--cc=johannes@sipsolutions.net \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linux-um@lists.infradead.org \
--cc=linux@armlinux.org.uk \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=macanroj@gmail.com \
--cc=masahiroy@kernel.org \
--cc=me@kloenk.de \
--cc=michal.lkml@markovi.net \
--cc=mingo@redhat.com \
--cc=ndesaulniers@google.com \
--cc=ojeda@kernel.org \
--cc=palmer@dabbelt.com \
--cc=paul.walmsley@sifive.com \
--cc=paulus@samba.org \
--cc=philip.herron@embecosm.com \
--cc=richard@nod.at \
--cc=rust-for-linux@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=thesven73@gmail.com \
--cc=tiagolam@gmail.com \
--cc=torvalds@linux-foundation.org \
--cc=wedsonaf@google.com \
--cc=will@kernel.org \
--cc=x86@kernel.org \
--cc=yakoyoku@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;
as well as URLs for NNTP newsgroup(s).