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

From: Daniel Engberg <diizzy_at_FreeBSD.org>
Date: Sat, 20 Jun 2026 17:19:12 UTC
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.
> 
>> Best regards,
>> Daniel
>>
> 

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.

Best regards,
Daniel