Re: git: 7b0c8167940b - main - net/ntpd-rs: mark as broken on i386

From: Vladimir Druzenko <vvd_at_freebsd.org>
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