*-unknown-freebsd

Tier: 2/3

FreeBSD multi-platform 4.4BSD-based UNIX-like operating system.

Target maintainers

  • Alan Somers asomers@FreeBSD.org, https://github.com/asomers
  • Mikael Urankar mikael@FreeBSD.org, https://github.com/MikaelUrankar

Requirements

The x86_64-unknown-freebsd target is Tier 2 with host tools. i686-unknown-freebsd is Tier 2 without host tools. Other targets are Tier 3. See platform-support.md for the full list.

We commit that rustc will run on all currently supported releases of FreeBSD . EoL releases may be supported for a time, too. The same guarantees apply for the standard library and the libc crate.

Specific release support matrix, as of Rust 1.82.0:

FreeBSD Releaserustcstdlibc
10< 1.78.0??
11< 1.78.0< 1.78.0current
12+currentcurrentcurrent

extern "C" uses the official calling convention of the respective architectures.

FreeBSD OS binaries use the ELF file format.

Building Rust programs

The x86_64-unknown-freebsd and i686-unknown-freebsd artifacts are distributed by the rust project and may be installed with rustup. Other targets are built by the ports system and may be installed with pkg(7) or ports(7).

By default the i686-unknown-freebsd target uses SSE2 instructions. To build code that does not require SSE2, build lang/rust from ports and disable the SSE2 option at build time. That will produce non-compliant behavior. See issue #114479.

Testing

The Rust test suite can be run natively. It can also be run from the FreeBSD ports tree with the make test command from within the lang/rust directory.