This is an old revision of the document!


The rust team takes care of Rust Programming Language and Rust-related ports and packages.

  • lang/rust tracks Rust Stable and is updated every 6 weeks. It uses lang/rust-bootstrap to bootstrap.
  • lang/rust-nightly tracks Rust Nightly and is updated weekly. It uses prebuilt bootstraps provided by upstream, which are currently limited to amd64 and i386 architectures.
  • lang/rust-bootstrap creates cross-compiled bootstraps for all supported architectures which are later used to build lang/rust.
  • Cargo integration is available in the ports framework via USES=cargo (Mk/Uses/cargo.mk)

We currently maintain lang/rust for the following architecture and release combinations:

  • FreeBSD 11.4+ for i386, amd64, armv6
  • FreeBSD 12.1+ additionally for: armv7, aarch64 (arm64) 1), powerpc64 ELFv1 2)
  • FreeBSD 13.0+ additionally for: powerpc64 Big Endian ELFv2, powerpc64 Little Endian ELFv2

It is possible to create FreeBSD kernel drivers and modules written in Rust using RustKPI (GitHub), created by JohannesLundberg as part of his Masters Thesis on Safe Kernel Programming with Rust (2018, PDF).

Rust-based FreeBSD Kernel Modules (Hello World, RustKPI) and an e1000 Rust FreeBSD network driver are also available in the repository.


1)
< 12.1 not supported due to a bug in rtld
2)
13.0 will use the new ELFv2 ABI
  • rust.1628843250.txt.gz
  • Last modified: 2021/08/13 08:27
  • by MarkLinimon