[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