[FFmpeg-devel] [PATCH] configure: fix clang on macOS 10.15

Jan Ekström jeebjp at gmail.com
Tue Apr 14 21:49:03 EEST 2020


On Tue, Apr 14, 2020 at 8:45 PM Josh de Kock <josh at itanimul.li> wrote:
>
> Works around a bug in the newer Xcode 11's clang with -fstack-check
> emitting bad code with misaligned call instructions.
> ---
>  configure | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/configure b/configure
> index 4d4c429be9..c872a2932d 100755
> --- a/configure
> +++ b/configure
> @@ -5358,6 +5358,11 @@ case $target_os in
>          fi
>          version_script='-exported_symbols_list'
>          VERSION_SCRIPT_POSTPROCESS_CMD='tr " " "\n" | sed -n /global:/,/local:/p | grep ";" | tr ";" "\n" | sed -E "s/(.+)/_\1/g" | sed -E "s/(.+[^*])$$$$/\1*/"'
> +        # Workaround for Xcode 11 -fstack-check bug
> +        if enabled clang; then
> +            clang_version=$($cc -dumpversion)
> +            test ${clang_version%%.*} -ge 11 && add_cflags -fno-stack-check

I would match what dav1d does so far, and check for equality against
11. Not greater-or-equal, if I'm reading this correctly.

> +        fi
>          ;;
>      msys*)
>          die "Native MSYS builds are discouraged, please use the MINGW environment."
> --
> 2.24.1 (Apple Git-126)

Can verify this fixes running newly built binaries on macOS 10.15.
Without this, the binary crashes immediately.

Please mention that this also fixes ticket #8073 .

For context for others, it seems like Apple has been distributing a
broken clang binary with their development tool kit for quite a while.
People have reported it, but things go as usual (
https://forums.developer.apple.com/thread/121887 ).

Other projects, such as dav1d, have taken the same approach. Check for
clang major version under darwin, and if 11 -> disable stack checking.

Best regards,
Jan


More information about the ffmpeg-devel mailing list