[vlc-devel] [PATCH] contrib: ffmpeg: disable some inline assembler in win32 builds with LLVM
Steve Lhomme
robux4 at ycbcr.xyz
Wed Jun 17 17:10:17 CEST 2020
Fun fact, it is fine when built in release mode. Probably the -O2 that
makes things easier. So I could force this flag for llvm-i686 in debug
builds.
On 2020-06-17 16:34, Jean-Baptiste Kempf wrote:
> Disabling cabac asm is a very bad idea.
>
> On Wed, Jun 17, 2020, at 16:30, Steve Lhomme wrote:
>> Fixes this error in i686 builds:
>>
>> In file included from libavcodec/h264_cabac.c:46:
>> libavcodec/x86/h264_cabac.c:66:9: error: inline assembly requires more
>> registers than available
>> "3: \n\t"
>> ^
>> 1 error generated.
>> make[1]: *** [ffbuild/common.mak:59: libavcodec/h264_cabac.o] Error 1
>>
>> The other suggestion [1] to disable the integrated assembler causes other
>> issues.
>>
>> This is a limitation of LLVM when working in i686 [2]
>>
>> [1] https://trac.ffmpeg.org/ticket/7796
>> [2] https://bugs.llvm.org/show_bug.cgi?id=37542
>> ---
>> contrib/src/ffmpeg/rules.mak | 11 +++++++++++
>> 1 file changed, 11 insertions(+)
>>
>> diff --git a/contrib/src/ffmpeg/rules.mak b/contrib/src/ffmpeg/rules.mak
>> index 187d513aa14f..a932570ca8bf 100644
>> --- a/contrib/src/ffmpeg/rules.mak
>> +++ b/contrib/src/ffmpeg/rules.mak
>> @@ -242,6 +242,17 @@ ifdef USE_FFMPEG
>> $(APPLY)
>> $(SRC)/ffmpeg/0001-avcodec-dxva2_hevc-add-support-for-parsing-HEVC-Rang.patch
>> $(APPLY)
>> $(SRC)/ffmpeg/0002-avcodec-hevcdec-allow-HEVC-444-8-10-12-bits-decoding.patch
>> $(APPLY)
>> $(SRC)/ffmpeg/0003-avcodec-hevcdec-allow-HEVC-422-10-12-bits-decoding-w.patch
>> +ifdef HAVE_WIN32
>> +ifdef HAVE_CLANG
>> +ifeq ($(ARCH),i386)
>> + # Fixes compile error: inline assembly requires more registers than
>> available
>> + # See https://bugs.llvm.org/show_bug.cgi?id=37542
>> + cd $(UNPACK_DIR) && sed -i.orig -e 's, HAVE_7REGS ,
>> defined(HAVE_7REGS_DISABLED) ,' libavcodec/x86/h264_cabac.c
>> + cd $(UNPACK_DIR) && sed -i.orig -e 's, HAVE_7REGS ,
>> defined(HAVE_7REGS_DISABLED) ,' libswscale/x86/yuv2rgb_template.c
>> + cd $(UNPACK_DIR) && sed -i.orig -e 's, HAVE_7REGS ,
>> defined(HAVE_7REGS_DISABLED) ,' libswscale/x86/yuv2rgb.c
>> +endif
>> +endif
>> +endif
>> endif
>> ifdef USE_LIBAV
>> $(APPLY) $(SRC)/ffmpeg/libav_gsm.patch
>> --
>> 2.26.2
>>
>> _______________________________________________
>> vlc-devel mailing list
>> To unsubscribe or modify your subscription options:
>> https://mailman.videolan.org/listinfo/vlc-devel
>
> --
> Jean-Baptiste Kempf - President
> +33 672 704 734
>
More information about the vlc-devel
mailing list