4
4
5
5
[ FreeBSD] multi-platform 4.4BSD-based UNIX-like operating system.
6
6
7
- [ FreeBSD ] : https://www.FreeBSD.org/
8
-
9
7
## Target maintainers
10
8
11
9
- Alan Somers ` asomers@FreeBSD.org ` , https://github.com/asomers
@@ -17,23 +15,42 @@ The `x86_64-unknown-freebsd` target is Tier 2 with host tools.
17
15
` i686-unknown-freebsd ` is Tier 2 without host tools. Other targets are Tier 3.
18
16
See [ platform-support.md] ( ../platform-support.md ) for the full list.
19
17
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 |
24
29
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.
26
32
27
33
FreeBSD OS binaries use the ELF file format.
28
34
29
35
## Building Rust programs
30
36
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 ] .
35
46
36
47
## Testing
37
48
38
49
The Rust test suite can be run natively. It can also be run from the ports tree
39
50
with 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