Re: git: a5e4dc2e4a39 - main - multimedia/vapoursynth: Update to R73 and adopt port

From: Vladimir Druzenko <vvd_at_freebsd.org>
Date: Sat, 20 Jun 2026 17:55:16 UTC
20.06.2026 20:19, Daniel Engberg пишет:
>
> On 2026-06-20 17:06, Vladimir Druzenko wrote:
>> 20.06.2026 14:54, Daniel Engberg пишет:
>>> On 2026-06-19 22:27, Vladimir Druzenko wrote:
>>>> After this update build fails:
>>>> FAILED: [code=1] 
>>>> libavx2.a.p/src_core_kernel_x86_convolution_avx2.cpp.o
>>>> c++ -Ilibavx2.a.p -I. -I.. -I../include -fvisibility=hidden -flto - 
>>>> fdiagnostics-color=never -DNDEBUG -D_FILE_OFFSET_BITS=64 -Wall - 
>>>> Winvalid-pch -std=c++17 -DVS_CORE_EXPORTS -DVS_CURRENT_RELEASE=73 - 
>>>> DVS_GRAPH_API '-DVS_PATH_PLUGINDIR="/usr/local/lib/vapoursynth"' - 
>>>> DVS_USE_LATEST_API -DVSSCRIPT_USE_LATEST_API 
>>>> -Wno-ignored-attributes - fno-math-errno -fno-trapping-math 
>>>> -DVS_TARGET_OS_LINUX - DHAVE_SCHED_GETAFFINITY 
>>>> -DHAVE_CPUSET_GETAFFINITY -DVS_TARGET_CPU_X86 - O2 -pipe 
>>>> -march=core2 -fstack-protector-strong -fno-strict-aliasing - fPIC 
>>>> -MD -MQ libavx2.a.p/src_core_kernel_x86_convolution_avx2.cpp.o -MF 
>>>> libavx2.a.p/src_core_kernel_x86_convolution_avx2.cpp.o.d -o 
>>>> libavx2.a.p/ src_core_kernel_x86_convolution_avx2.cpp.o -c ../src/ 
>>>> core/kernel/x86/ convolution_avx2.cpp
>>>
>>> Addressed in https://cgit.freebsd.org/ports/commit/? 
>>> id=a2fb9923e7014adde1da669b8322e5a8b631fc90
>>>
>>> Machine toggles don't help because they reflect on host system not 
>>> target system 
>> First of all, this is not true:
>> [/usr/ports/multimedia/vapoursynth]$ for C in "" nocona core2 penryn 
>> nehalem westmere sandybridge ivybridge haswell broadwell skylake 
>> skylake-avx512; do CPUTYPE=${C} make -V CPUTYPE -V MACHINE_CPU; echo; 
>> done
>>
>> amd64 sse2 sse mmx
>>
>> nocona
>> sse3 amd64 sse2 sse mmx
>>
>> core2
>> ssse3 sse3 amd64 sse2 sse mmx
>>
>> penryn
>> sse41 ssse3 sse3 amd64 sse2 sse mmx
>>
>> nehalem
>> sse42 sse41 ssse3 sse3 amd64 sse2 sse mmx
>>
>> westmere
>> sse42 sse41 ssse3 sse3 amd64 sse2 sse mmx
>>
>> sandybridge
>> avx sse42 sse41 ssse3 sse3 amd64 sse2 sse mmx
>>
>> ivybridge
>> avx sse42 sse41 ssse3 sse3 f16c amd64 sse2 sse mmx
>>
>> haswell
>> avx2 avx sse42 sse41 ssse3 sse3 f16c amd64 sse2 sse mmx
>>
>> broadwell
>> avx2 avx sse42 sse41 ssse3 sse3 f16c amd64 sse2 sse mmx
>>
>> skylake
>> avx2 avx sse42 sse41 ssse3 sse3 f16c amd64 sse2 sse mmx
>>
>> skylake-avx512
>> avx512 avx2 avx sse42 sse41 ssse3 sse3 f16c amd64 sse2 sse mmx
>>
>> MACHINE_CPU depends from CPUTYPE and if CPUTYPE is not defined then 
>> MACHINE_CPU have only basic features of the ARCH.
>> Tested on host with skylake-avx512 Intel Xeon Scalable Bronze 3104 
>> and on Intel Core 2 Quad Q6600.
>>
>> Secondly, even if you were right, your fix is ​​more of a joke than a 
>> fix. It doesn't even help with the IvyBridge CPU. 
>
> Why would it help on ivy bridge if avx2 is the requirement?
>
> MACHINE_CPU in it's current form is flawed however it can somewhat 
> determine features based on CPUTYPE but also broken if you have 
> something not defined such as znver5 (Ryzen 9000 series). What I'm not 
> going to do is to maintain a separate list for compatible/non 
> compatible CPUs.
>
> Another option would be what we do for OpenEXR but replicating that 
> for each port is less than ideal.
>
> Ideally https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=272900 would 
> be nice in the end in some form but there are much larger issues to 
> take care of first overall. 

Why do you think AVX2 is a requirement? The port builds perfectly well 
without it. Those who want to build with AVX2 can do so themselves. We 
support the base AMD64 architecture even without SSE3 in the ports.

Don't you understand that you broke the port for all CPUs older than 
Haswell?
With an active review, you simply stole the port and broke it, and now 
you're wasting everyone's time on stupid arguments.
Essentially, the port is broken now, and instead of arguing with you 
now, I could just commit a fix with "Approved: blanket (fix port)".

-- 
Best regards,
Vladimir Druzenko