[FFmpeg-devel] [PATCH] configure: link to libatomic when it's present
James Almer
jamrial at gmail.com
Wed Jan 19 17:23:26 EET 2022
On 1/19/2022 10:48 AM, Anton Khirnov wrote:
> C11 atomics in some configurations (e.g. 64bit operations on ppc64 with
> GCC) require linking to libatomic.
>
> Fixes #9275
> ---
> configure | 25 ++++++++++++++++---------
> 1 file changed, 16 insertions(+), 9 deletions(-)
>
> diff --git a/configure b/configure
> index 1413122d87..3059c154df 100755
> --- a/configure
> +++ b/configure
> @@ -3794,20 +3794,20 @@ cws2fws_extralibs="zlib_extralibs"
>
> # libraries, in any order
> avcodec_deps="avutil"
> -avcodec_suggest="libm"
> +avcodec_suggest="libm stdatomic"
> avdevice_deps="avformat avcodec avutil"
> -avdevice_suggest="libm"
> +avdevice_suggest="libm stdatomic"
> avfilter_deps="avutil"
> -avfilter_suggest="libm"
> +avfilter_suggest="libm stdatomic"
> avformat_deps="avcodec avutil"
> -avformat_suggest="libm network zlib"
> -avutil_suggest="clock_gettime ffnvcodec libm libdrm libmfx opencl user32 vaapi vulkan videotoolbox corefoundation corevideo coremedia bcrypt"
> +avformat_suggest="libm network zlib stdatomic"
> +avutil_suggest="clock_gettime ffnvcodec libm libdrm libmfx opencl user32 vaapi vulkan videotoolbox corefoundation corevideo coremedia bcrypt stdatomic"
> postproc_deps="avutil gpl"
> -postproc_suggest="libm"
> +postproc_suggest="libm stdatomic"
> swresample_deps="avutil"
> -swresample_suggest="libm libsoxr"
> +swresample_suggest="libm libsoxr stdatomic"
> swscale_deps="avutil"
> -swscale_suggest="libm"
> +swscale_suggest="libm stdatomic"
>
> avcodec_extralibs="pthreads_extralibs iconv_extralibs dxva2_extralibs"
> avfilter_extralibs="pthreads_extralibs"
> @@ -6324,7 +6324,14 @@ check_headers asm/types.h
> # it seems there are versions of clang in some distros that try to use the
> # gcc headers, which explodes for stdatomic
> # so we also check that atomics actually work here
> -check_builtin stdatomic stdatomic.h "atomic_int foo, bar = ATOMIC_VAR_INIT(-1); atomic_store(&foo, 0); foo += bar"
> +#
> +# some configurations also require linking to libatomic, so try
> +# both with -latomic and without
> +for LATOMIC in "-latomic" ""; do
> + check_builtin stdatomic stdatomic.h \
> + "atomic_int foo, bar = ATOMIC_VAR_INIT(-1); atomic_store(&foo, 0); foo += bar" \
> + $LATOMIC && eval stdatomic_extralibs="\$LATOMIC" && break
> +done
LGTM now, thanks.
>
> check_lib advapi32 "windows.h" RegCloseKey -ladvapi32
> check_lib bcrypt "windows.h bcrypt.h" BCryptGenRandom -lbcrypt &&
More information about the ffmpeg-devel
mailing list