44
55[ FreeBSD] multi-platform 4.4BSD-based UNIX-like operating system.
66
7- [ FreeBSD ] : https://www.FreeBSD.org/
8-
97## Target maintainers
108
119- Alan Somers
` [email protected] ` ,
https://github.com/asomers @@ -17,23 +15,42 @@ The `x86_64-unknown-freebsd` target is Tier 2 with host tools.
1715` i686-unknown-freebsd ` is Tier 2 without host tools. Other targets are Tier 3.
1816See [ platform-support.md] ( ../platform-support.md ) for the full list.
1917
20- On all architectures, rustc requires FreeBSD version 12 or later to run and
21- produces binaries that require FreeBSD version 12, too. Prior to Rust 1.78.0,
22- rustc would run on FreeBSD 10 or later, but build binaries that required
23- FreeBSD 11. libc requires FreeBSD 11 or later.
18+ We commit that rustc will run on all currently supported releases of
19+ [ FreeBSD] [ supported-releases ] . EoL releases may be supported for a time, too.
20+ The same guarantees apply for the standard library and the libc crate.
21+
22+ Specific release support matrix, as of Rust 1.82.0:
23+
24+ | FreeBSD Release | rustc | std | libc |
25+ | --------------- | -------- | -------- | ------- |
26+ | 10 | < 1.78.0 | ? | ? |
27+ | 11 | < 1.78.0 | < 1.78.0 | current |
28+ | 12+ | current | current | current |
2429
25- ` extern "C" ` uses the official calling convention of the respective architectures.
30+ ` extern "C" ` uses the official calling convention of the respective
31+ architectures.
2632
2733FreeBSD OS binaries use the ELF file format.
2834
2935## Building Rust programs
3036
31- The ` x86_64-unknown-freebsd ` artifacts are distributed by the rust project and
32- may be installed with rustup. Other targets are built by the ports system and
33- may be installed with [ pkg(7)] ( https://man.freebsd.org/cgi/man.cgi?query=pkg )
34- or [ ports(7)] ( https://man.freebsd.org/cgi/man.cgi?query=ports ) .
37+ The ` x86_64-unknown-freebsd ` and ` i686-unknown-freebsd ` artifacts are
38+ distributed by the rust project and may be installed with rustup. Other
39+ targets are built by the ports system and may be installed with
40+ [ pkg(7)] [ pkg ] or [ ports(7)] [ ports ] .
41+
42+ By default the ` i686-unknown-freebsd ` target uses SSE2 instructions. To build
43+ code that does not require SSE2, build lang/rust from [ ports] [ ports ] and
44+ disable the ` SSE2 ` option at build time. That will produce non-compliant
45+ behavior. See [ issue #114479 ] [ x86-32-float-issue ] .
3546
3647## Testing
3748
3849The Rust test suite can be run natively. It can also be run from the ports tree
3950with the ` make test ` command from within the lang/rust directory.
51+
52+ [ FreeBSD ] : https://www.FreeBSD.org/
53+ [ supported-releases ] : https://www.freebsd.org/security/#sup
54+ [ ports ] : https://man.freebsd.org/cgi/man.cgi?query=ports
55+ [ pkg ] : https://man.freebsd.org/cgi/man.cgi?query=pkg
56+ [ x86-32-float-issue ] : https://github.com/rust-lang/rust/issues/114479
0 commit comments