[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