HomeFreeBSD

lang/rust: enable SSE2 by default on i386

Description

lang/rust: enable SSE2 by default on i386

Upstream Rust always requires SSE2 for x86. But back in 2017[^1][^2] we
patched lang/rust to disable SSE2 for i386. At the time, it was
reported that some people were still using non-SSE2 capable hardware.
More recently, LLVM bugs have been discovered[^3][^4] that can result in
rounding bugs and reduced accuracy when using f64 on non-SSE hardware.
In weird cases, they can even cause wilder unpredictable behavior, like
segfaults.

Revert our change for the sake of Pentium 4 (and later) users. But add
an SSE2 option. Disabling it will allow the port to be used on Pentium
3 and older CPUs.

[^1]: https://github.com/freebsd/freebsd-ports/commit/d65b2886b1b3b2135f0b8982de4d9754517acf61
[^2]: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=223415
[^3]: https://github.com/rust-lang/rust/issues/114479
[^4]: https://github.com/llvm/llvm-project/issues/44218

Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D47227

Details

Provenance
asomersAuthored on Oct 21 2024, 7:25 PM
Reviewer
emaste
Differential Revision
D47227: lang/rust: enable SSE2 by default on i386
Parents
R11:fe3a6cd7e057: x11-toolkits/linux-rl9-gtk2: provide a REAL aarch64 plist
Branches
Unknown
Tags
Unknown