[FFmpeg-devel] [PATCH] x86/tx_float: do not build tx_float_init.c if x86 assembly is disabled

James Almer jamrial at gmail.com
Thu Jan 27 00:50:27 EET 2022



On 1/26/2022 7:44 PM, Lynne wrote:
> This broke builds with --disable-mmx, which also disabled assembly
> entirely, but ARCH_X86 was still true, so the init file tried to find
> assembly that didn't exist.
> Instead of checking for architecture, check if x86 assembly is enabled.
> 
> Patch attached.


> From 97e91aea87876a542a0f075e7093708f38f38a8c Mon Sep 17 00:00:00 2001
> From: Lynne <dev at lynne.ee>
> Date: Wed, 26 Jan 2022 23:40:35 +0100
> Subject: [PATCH] x86/tx_float: do not build tx_float_init.c if x86 assembly is
>  disabled
> 
> This broke builds with --disable-mmx, which also disabled assembly
> entirely, but ARCH_X86 was still true, so the init file tried to find
> assembly that didn't exist.
> Instead of checking for architecture, check if x86 assembly is enabled.
> ---
>  libavutil/tx.c         | 2 +-
>  libavutil/x86/Makefile | 3 ++-
>  2 files changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/libavutil/tx.c b/libavutil/tx.c
> index cac7815231..5c1ac20c92 100644
> --- a/libavutil/tx.c
> +++ b/libavutil/tx.c
> @@ -439,7 +439,7 @@ av_cold int ff_tx_init_subtx(AVTXContext *s, enum AVTXType type,
>          ff_tx_codelet_list_double_c,
>          ff_tx_codelet_list_int32_c,
>          ff_tx_null_list,
> -#if ARCH_X86
> +#if HAVE_X86ASM
>          ff_tx_codelet_list_float_x86,
>  #endif
>      };
> diff --git a/libavutil/x86/Makefile b/libavutil/x86/Makefile
> index d747c37049..d66839e35d 100644
> --- a/libavutil/x86/Makefile
> +++ b/libavutil/x86/Makefile
> @@ -3,7 +3,8 @@ OBJS += x86/cpu.o                                                       \
>          x86/float_dsp_init.o                                            \
>          x86/imgutils_init.o                                             \
>          x86/lls_init.o                                                  \
> -        x86/tx_float_init.o                                             \
> +
> +OBJS-$(HAVE_X86ASM) += x86/tx_float_init.o                              \

This is not how we normally handle things. Init files for a given target 
arch should compile regardless of what is enabled at configure time. DCE 
with all the EXTERNAL_ checks should take care of not referencing 
symbols that nasm will not assemble.

>  
>  OBJS-$(CONFIG_PIXELUTILS) += x86/pixelutils_init.o                      \
>  
> -- 
> 2.34.1
> 


More information about the ffmpeg-devel mailing list