[FFmpeg-devel] [PATCH] configure: Disable inline assembly with nonlocal labels with LTO on Clang on Windows
Martin Storsjö
martin at martin.st
Thu Jan 4 14:48:50 EET 2024
On Wed, 20 Dec 2023, Martin Storsjö wrote:
> The file libavcodec/x86/mlpdsp_init.c uses inline assembly with
> nonlocal labels that are referenced outside of the assembly in C.
> This fails to link with LTO when built with Clang when targeting
> Windows.
>
> The root cause has been reported upstream at
> https://github.com/llvm/llvm-project/issues/76046.
>
> Fixes: https://trac.ffmpeg.org/ticket/10548
> ---
> configure | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/configure b/configure
> index 7742ea4ba2..b4f7c2de66 100755
> --- a/configure
> +++ b/configure
> @@ -7372,6 +7372,16 @@ if [ -n "$lto" ]; then
> check_cflags $lto
> check_ldflags $lto $cpuflags
> disable inline_asm_direct_symbol_refs
> + if test "$cc_type" = "clang"; then
> + # Clang's LTO fails on Windows, when there are references outside
> + # of inline assembly to nonlocal labels defined within inline assembly,
> + # see https://github.com/llvm/llvm-project/issues/76046.
> + case $target_os in
> + mingw32|win32)
> + disable inline_asm_nonlocal_labels
> + ;;
> + esac
> + fi
> fi
Will push soon
// Martin
More information about the ffmpeg-devel
mailing list