[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