[x265] MinGW/GCC: Unsupported intrinsics in Win32/8bit compilation?

Mario *LigH* Rohkrämer contact at ligh.de
Fri Sep 20 14:53:59 CEST 2019


I borrowed the toolchain files from the CMake call in MABS, now it 
builds again.


Mario *LigH* Rohkrämer schrieb am 17.09.2019 um 14:07:
> Triple the errors for Win64 target, where all precisions have assembler 
> routines:
> 
> +----
> [ 85%] Linking CXX shared library libx265.dll
> E:/MABS/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: 
> CMakeFiles/x265-shared.dir/objects.a(vec-primitives.cpp.obj):vec-primitives.cpp:(.text+0x31): 
> undefined reference to 
> `x265::setupIntrinsicDCT_sse3(x265::EncoderPrimitives&)'
> E:/MABS/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: 
> CMakeFiles/x265-shared.dir/objects.a(vec-primitives.cpp.obj):vec-primitives.cpp:(.text+0x3e): 
> undefined reference to 
> `x265::setupIntrinsicDCT_ssse3(x265::EncoderPrimitives&)'
> E:/MABS/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: 
> CMakeFiles/x265-shared.dir/objects.a(vec-primitives.cpp.obj):vec-primitives.cpp:(.text+0x55): 
> undefined reference to 
> `x265::setupIntrinsicDCT_sse41(x265::EncoderPrimitives&)'
> E:/MABS/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: 
> .\libx265_main10.a(vec-primitives.cpp.obj):vec-primitives.cpp:(.text+0x31): 
> undefined reference to 
> `x265_10bit::setupIntrinsicDCT_sse3(x265_10bit::EncoderPrimitives&)'
> E:/MABS/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: 
> .\libx265_main10.a(vec-primitives.cpp.obj):vec-primitives.cpp:(.text+0x3e): 
> undefined reference to 
> `x265_10bit::setupIntrinsicDCT_ssse3(x265_10bit::EncoderPrimitives&)'
> E:/MABS/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: 
> .\libx265_main10.a(vec-primitives.cpp.obj):vec-primitives.cpp:(.text+0x55): 
> undefined reference to 
> `x265_10bit::setupIntrinsicDCT_sse41(x265_10bit::EncoderPrimitives&)'
> E:/MABS/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: 
> .\libx265_main12.a(vec-primitives.cpp.obj):vec-primitives.cpp:(.text+0x31): 
> undefined reference to 
> `x265_12bit::setupIntrinsicDCT_sse3(x265_12bit::EncoderPrimitives&)'
> E:/MABS/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: 
> .\libx265_main12.a(vec-primitives.cpp.obj):vec-primitives.cpp:(.text+0x3e): 
> undefined reference to 
> `x265_12bit::setupIntrinsicDCT_ssse3(x265_12bit::EncoderPrimitives&)'
> E:/MABS/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: 
> .\libx265_main12.a(vec-primitives.cpp.obj):vec-primitives.cpp:(.text+0x55): 
> undefined reference to 
> `x265_12bit::setupIntrinsicDCT_sse41(x265_12bit::EncoderPrimitives&)'
> +----
> 
> Mario *LigH* Rohkrämer schrieb am 17.09.2019 um 13:25:
>> I tried to build a multilib encoder for Win32 in MSYS2/MinGW32 with 
>> GCC 9.2.0. The librraries for 10 and 12 bit precision passed (without 
>> any Assembler optimization). The linking for the 8 bit precision 
>> library failed:
>>
>> +----
>> [ 82%] Built target common
>> Scanning dependencies of target x265-shared
>> [ 83%] Building RC object CMakeFiles/x265-shared.dir/x265.rc.obj
>> [ 84%] Linking CXX shared library libx265.dll
>> E:/MABS/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/9.2.0/../../../../i686-w64-mingw32/bin/ld.exe: 
>> CMakeFiles/x265-shared.dir/objects.a(vec-primitives.cpp.obj):vec-primitives.cpp:(.text+0x2c): 
>> undefined reference to 
>> `x265::setupIntrinsicDCT_sse3(x265::EncoderPrimitives&)'
>> E:/MABS/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/9.2.0/../../../../i686-w64-mingw32/bin/ld.exe: 
>> CMakeFiles/x265-shared.dir/objects.a(vec-primitives.cpp.obj):vec-primitives.cpp:(.text+0x39): 
>> undefined reference to 
>> `x265::setupIntrinsicDCT_ssse3(x265::EncoderPrimitives&)'
>> E:/MABS/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/9.2.0/../../../../i686-w64-mingw32/bin/ld.exe: 
>> CMakeFiles/x265-shared.dir/objects.a(vec-primitives.cpp.obj):vec-primitives.cpp:(.text+0x4f): 
>> undefined reference to 
>> `x265::setupIntrinsicDCT_sse41(x265::EncoderPrimitives&)'
>> +----
>>
>> Please note that it compiled despite some ccache warnings. I don't 
>> know if ccache has any impact here. I read in the patch notes when 
>> media-autobuild suite introduced experimental ccache support that it 
>> "needs to run at least once to have any effect", but that may only be 
>> related to speed-up effects in subsequent compilations?
>>
> 
> 


-- 

Fun and success!

Mario *LigH* Rohkrämer
maito:contact at ligh.de


More information about the x265-devel mailing list