[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAK8P3a2YuGsSJY2-=npqXMHXEr+zaF36iDrM+kP=9nS85FLpbA@mail.gmail.com>
Date: Wed, 17 Aug 2022 17:24:30 +0200
From: Arnd Bergmann <arnd@...db.de>
To: Miguel Ojeda <miguel.ojeda.sandonis@...il.com>
Cc: Arnd Bergmann <arnd@...db.de>, Miguel Ojeda <ojeda@...nel.org>,
Linus Torvalds <torvalds@...ux-foundation.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Sven Van Asbroeck <thesven73@...il.com>,
Catalin Marinas <catalin.marinas@....com>,
Dave Hansen <dave.hansen@...ux.intel.com>,
Miguel Cano <macanroj@...il.com>,
Paul Mackerras <paulus@...ba.org>, Gary Guo <gary@...yguo.net>,
Douglas Su <d0u9.su@...look.com>,
Borislav Petkov <bp@...en8.de>,
linux-riscv@...ts.infradead.org, Will Deacon <will@...nel.org>,
Martin Rodriguez Reboredo <yakoyoku@...il.com>,
Anton Ivanov <anton.ivanov@...bridgegreys.com>,
"H. Peter Anvin" <hpa@...or.com>,
Masahiro Yamada <masahiroy@...nel.org>, x86@...nel.org,
Russell King <linux@...linux.org.uk>,
Ingo Molnar <mingo@...hat.com>,
Wedson Almeida Filho <wedsonaf@...gle.com>,
Alex Gaynor <alex.gaynor@...il.com>,
Antonio Terceiro <antonio.terceiro@...aro.org>,
Adam Bratschi-Kaye <ark.email@...il.com>,
Albert Ou <aou@...s.berkeley.edu>,
rust-for-linux@...r.kernel.org, linux-kbuild@...r.kernel.org,
Boqun Feng <boqun.feng@...il.com>,
linux-um@...ts.infradead.org,
BjÃB 6rn Roy Baron <bjorn3_gh@...tonmail.com>,
Michal Marek <michal.lkml@...kovi.net>,
Daniel Xu <dxu@...uu.xyz>, David Gow <davidgow@...gle.com>,
Paul Walmsley <paul.walmsley@...ive.com>,
Dariusz Sosnowski <dsosnowski@...snowski.pl>,
linux-arm-kernel@...ts.infradead.org,
Tiago Lam <tiagolam@...il.com>,
Thomas Gleixner <tglx@...utronix.de>,
Nick Desaulniers <ndesaulniers@...gle.com>,
linux-kernel@...r.kernel.org,
Boris-Chengbiao Zhou <bobo1239@....de>,
Jarkko Sakkinen <jarkko@...nel.org>,
Palmer Dabbelt <palmer@...belt.com>,
Richard Weinberger <richard@....at>,
Finn Behrens <me@...enk.de>,
Johannes Berg <johannes@...solutions.net>,
linuxppc-dev@...ts.ozlabs.org,
Philip Herron <philip.herron@...ecosm.com>,
Arthur Cohen <arthur.cohen@...ecosm.com>
Subject: Re: [PATCH v8 27/31] Kbuild: add Rust support
On Wed, Aug 17, 2022 at 5:13 PM Miguel Ojeda
<miguel.ojeda.sandonis@...il.com> wrote:
> On Wed, Aug 17, 2022 at 4:40 PM Arnd Bergmann <arnd@...db.de> wrote:
> >
> > 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.).
Yes, I meant GCC rust, with the contents of
https://gcc.gnu.org/git/?p=gcc.git;a=shortlog;h=refs/heads/devel/rust/master
merged into the gcc-12.1.0 release tag.
> > 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! :)
Thanks for the explanation. My hope was that building the kernel
would actually be easier here than building the more complicated
rust user space.
The gcc cross-compilers on kernel.org are similarly easy to build for
all architectures the kernel supports because the complexity is
usually in picking a working libc for the more obscure architectures,
so I was naively thinking that this would work for building the
rust support across all architectures in Linux.
I tried one more step and just removed the unsupported command
line flags to see what would happen, but that did not get me any
further:
/home/arnd/cross/x86_64/gcc-12.1.0+rust-nolibc/x86_64-linux/bin/x86_64-linux-gccrs
-frust-edition=2021 -Dunsafe_op_in_unsafe_fn -Drust_2018_idioms
-Dunreachable_pub -Dnon_ascii_idents
-Drustdoc::missing_crate_level_docs -Dclippy::correctness
-Dclippy::style -Dclippy::suspicious -Dclippy::complexity
-Dclippy::perf -Dclippy::let_unit_value -Dclippy::mut_mut
-Dclippy::needless_bitwise_bool -Dclippy::needless_continue -O
/git/arm-soc/scripts/generate_rust_target.rs; mv
scripts/generate_rust_target.d scripts/.generate_rust_target.d; sed -i
'/^#/d' scripts/.generate_rust_target.d
rust1: internal compiler error: Segmentation fault
0x7f37ee04b51f ???
./signal/../sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c:0
0x7f37ee032fcf __libc_start_call_main
../sysdeps/nptl/libc_start_call_main.h:58
0x7f37ee03307c __libc_start_main_impl
../csu/libc-start.c:409
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
Arnd
Powered by blists - more mailing lists