[vlc-devel] [PATCH] contrib: ffmpeg: disable some inline assembler in win32 builds with LLVM

Jean-Baptiste Kempf jb at videolan.org
Wed Jun 17 16:34:45 CEST 2020


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