configure: Disable inline assembly with nonlocal labels with LTO on Clang on Windows

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
Signed-off-by: Martin Storsjö <martin@martin.st>
release/7.0
Martin Storsjö 1 year ago
parent cb6b165b16
commit 102045028e
  1. 10
      configure

10
configure vendored

@ -7399,6 +7399,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
enabled ftrapv && check_cflags -ftrapv

Loading…
Cancel
Save