[FFmpeg-devel] [PATCH] configure: link to libatomic when it's present
Brad Smith
brad at comstyle.com
Sat Jan 22 08:42:55 EET 2022
On 1/19/2022 10:23 AM, James Almer wrote:
> 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 &&
Wait, this should be checking without first then with, if the first test
without fails.
More information about the ffmpeg-devel
mailing list