lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Tue,  9 Apr 2024 18:25:15 +0100
From: Conor Dooley <conor@...nel.org>
To: linux-riscv@...ts.infradead.org
Cc: conor@...nel.org,
	Conor Dooley <conor.dooley@...rochip.com>,
	Miguel Ojeda <ojeda@...nel.org>,
	Alex Gaynor <alex.gaynor@...il.com>,
	Wedson Almeida Filho <wedsonaf@...il.com>,
	Boqun Feng <boqun.feng@...il.com>,
	Gary Guo <gary@...yguo.net>,
	Björn Roy Baron <bjorn3_gh@...tonmail.com>,
	Jonathan Corbet <corbet@....net>,
	Paul Walmsley <paul.walmsley@...ive.com>,
	Palmer Dabbelt <palmer@...belt.com>,
	Nathan Chancellor <nathan@...nel.org>,
	Nick Desaulniers <ndesaulniers@...gle.com>,
	rust-for-linux@...r.kernel.org,
	linux-doc@...r.kernel.org,
	linux-kernel@...r.kernel.org,
	llvm@...ts.linux.dev
Subject: [PATCH v3 0/1] RISC-V: enable rust

From: Conor Dooley <conor.dooley@...rochip.com>

I've intentionally not turned on the gcc support, as discussed on
v1. I've also switched over to using the target, but it is a bit heavier
than the one arm64 seems to be using. RISC-V has fewer targets available
and this was the closest. I preserved the redzone disabling, just moved
into the Makefile. Any comment from Gary or the LLVM lads on the target
would be great I think:
https://github.com/rust-lang/rust/blob/master/compiler/rustc_target/src/spec/targets/riscv64imac_unknown_none_elf.rs
arm64 is using:
https://github.com/rust-lang/rust/blob/master/compiler/rustc_target/src/spec/targets/aarch64_unknown_none.rs

I was gonna send this yesterday, but found out last minute I had invalid
code in the target generation script. The kernel test robot had given my
branch the global all-clear - the rust coverage with all the
"depends on !FOO" must really limit the build coverage. I built for x86
with rust enabled locally this time to make sure..

As this as lifted from the state of the Rust-for-Linux tree, the commit
messages from there cannot be preserved, so these patches have commit
messages that I wrote.

I've tested this on Icicle, and the modules seem to work as expected.
Unfortunately there appear to be implicit 32-bit divisions (or similar)
in core Rust code, so, as in the downstream Rust-for-Linux tree, Rust is
only enabled for 64-bit.

Thanks,
Conor.

Changes in v3:
- Use a builtin target and modify it in kbuild
- Drop the kCFI patch, that's been merged independently

Changes in v2:
- Rebase, since a good bit of time has passed!
- Add the extra patch, disabling when CFI_CLANG is enabled.

Changes in v1:
- rebase on v6.3-rc1
- resort the `um` entry in the arch-support table while adding RISC-V
  to it
- drop 32-bit bits
- have another crack at assigning authorship

Changes in RFC-RESEND:
- fix the asymmetrical additions in the Makefile bits
- add cc-cover to my git send-email command...

CC: Miguel Ojeda <ojeda@...nel.org>
CC: Alex Gaynor <alex.gaynor@...il.com>
CC: Wedson Almeida Filho <wedsonaf@...il.com>
CC: Boqun Feng <boqun.feng@...il.com>
CC: Gary Guo <gary@...yguo.net>
CC: Björn Roy Baron <bjorn3_gh@...tonmail.com>
CC: Jonathan Corbet <corbet@....net>
CC: Paul Walmsley <paul.walmsley@...ive.com>
CC: Palmer Dabbelt <palmer@...belt.com>
CC: Nathan Chancellor <nathan@...nel.org>
CC: Nick Desaulniers <ndesaulniers@...gle.com>
CC: rust-for-linux@...r.kernel.org
CC: linux-doc@...r.kernel.org
CC: linux-kernel@...r.kernel.org
CC: linux-riscv@...ts.infradead.org
CC: llvm@...ts.linux.dev

Miguel Ojeda (1):
  RISC-V: enable building 64-bit kernels with rust support

 Documentation/rust/arch-support.rst | 1 +
 arch/riscv/Kconfig                  | 1 +
 arch/riscv/Makefile                 | 7 +++++++
 scripts/generate_rust_target.rs     | 6 ++++++
 4 files changed, 15 insertions(+)

-- 
2.43.0


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ