[FFmpeg-devel] [PATCH] configure: link to libatomic when it's present
Hendrik Leppkes
h.leppkes at gmail.com
Sat Jan 22 11:00:28 EET 2022
On Sat, Jan 22, 2022 at 7:43 AM Brad Smith
<brad-at-comstyle.com at ffmpeg.org> wrote:
>
> 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.
>
This was covered earlier in the thread for the reason it is not - its
deliberate, because exhaustive functionality checks would be very
complicated.
- Hendrik
More information about the ffmpeg-devel
mailing list