Re: git: 7b0c8167940b - main - net/ntpd-rs: mark as broken on i386
Date: Sat, 20 Jul 2024 19:36:48 UTC
20.07.2024 21:13, Jan Beich пишет: > Mikaël Urankar <mikael@FreeBSD.org> writes: > >> On 7/20/24 17:43, Jan Beich wrote: >> >>> Mikael Urankar <mikael@FreeBSD.org> writes: >>> >>>> +NOT_FOR_ARCHS= i386 >>>> +NOT_FOR_ARCHS_REASON= the ring crate requires SSE2 instruction on intel cpu >>> Why not pass -C target-feature=+sse2 like games/jumpy instead? >> Per [1] we are supposed to target Pentium Pro / Pentium II (i686), >> sse2 is not available on these cpus. This is enforced in our rust >> ports with [2]. >> >> [1] https://www.freebsd.org/platforms/i386/ >> [2] >> https://github.com/freebsd/freebsd-ports/blob/main/lang/rust/files/patch-compiler_rustc__target_src_spec_targets_i686__unknown__freebsd.rs > In general, I agree. For leaf ports we can make exceptions. Instead of a > missing package i386 users get a package which works on a subset of CPUs. IMHO, we can also add message in pkg-message with warning about using SSE2 and short list of supported CPU: starting from Intel Pentium 4 (Willamette) + AMD Athlon 64 (Clawhammer/K8); and not supported: Intel Pentium 3 + AMD Athlon XP and older. Same for other extensions too. Ofc if we can't build this port without using SSE/SSE2/etc. For example we can build mongodb without AVX. > FreeBSD dropped i386 decades ago, used to target i486 but due to Clang > atomics had to bump the requirement to i686. Rust forced i686 even earlier. > > Between pentiumpro (i686) and pentium4 there're 2 CPU generations. > And between pentium4 and penryn there're 2 CPU generations. > > i386 isn't unique. Many amd64 packages require CMPXCHG16B and some > require SSSE3, SSE4 and even AVX2. Modern projects may give up > on old x86-64 CPUs either due to lack of interest or to prioritize > real-time performance (e.g., console emulators). -- Best regards, Vladimir Druzenko