Message ID | 1475417517-12956-1-git-send-email-anton@khirnov.net |
---|---|
State | Committed |
Commit | 13f5d2bf75b95a0bfdb9940a5e359a719e242bed |
Headers | show |
On 02/10/16 16:11, Anton Khirnov wrote: > Since this is a C11 feature, it requires -std=c11. > > Not actually used for anything yet, that will be added in the following > commits. > --- > A slightly simpler test using check_builtin > --- > configure | 29 ++++++++++++++++++++++++++++- > 1 file changed, 28 insertions(+), 1 deletion(-) > > diff --git a/configure b/configure > index 3c416da..b3ab226 100755 > --- a/configure > +++ b/configure > @@ -986,6 +986,19 @@ check_cpp_condition(){ > EOF > } > > +test_cflags_cpp(){ > + log test_cflags_cpp "$@" > + flags=$1 > + condition=$2 > + shift 2 > + set -- $($cflags_filter "$flags") > + check_cpp "$@" <<EOF > +#if !($condition) > +#error "unsatisfied condition: $condition" > +#endif > +EOF > +} > + > check_lib(){ > log check_lib "$@" > headers="$1" > @@ -1505,6 +1518,7 @@ HEADERS_LIST=" > poll_h > sndio_h > soundcard_h > + stdatomic_h > sys_mman_h > sys_param_h > sys_resource_h > @@ -3684,7 +3698,15 @@ if test "$?" != 0; then > fi > > add_cppflags -D_ISOC99_SOURCE > -check_cflags -std=c99 > + > +# some compilers silently accept -std=c11, so we also need to check that the > +# version macro is defined properly > +if test_cflags_cpp -std=c11 "__STDC_VERSION__ >= 201112L"; then > + add_cflags -std=c11 > +else > + check_cflags -std=c99 > +fi > + > check_cc -D_FILE_OFFSET_BITS=64 <<EOF && add_cppflags -D_FILE_OFFSET_BITS=64 > #include <stdlib.h> > EOF > @@ -4520,6 +4542,11 @@ check_header VideoDecodeAcceleration/VDADecoder.h > check_header windows.h > check_header X11/extensions/XvMClib.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_h stdatomic.h "atomic_int foo; atomic_store(&foo, 0)" > + > check_lib "windows.h shellapi.h" CommandLineToArgvW -lshell32 > check_lib "windows.h wincrypt.h" CryptGenRandom -ladvapi32 > check_lib "windows.h psapi.h" GetProcessMemoryInfo -lpsapi > Fine for me.
diff --git a/configure b/configure index 3c416da..b3ab226 100755 --- a/configure +++ b/configure @@ -986,6 +986,19 @@ check_cpp_condition(){ EOF } +test_cflags_cpp(){ + log test_cflags_cpp "$@" + flags=$1 + condition=$2 + shift 2 + set -- $($cflags_filter "$flags") + check_cpp "$@" <<EOF +#if !($condition) +#error "unsatisfied condition: $condition" +#endif +EOF +} + check_lib(){ log check_lib "$@" headers="$1" @@ -1505,6 +1518,7 @@ HEADERS_LIST=" poll_h sndio_h soundcard_h + stdatomic_h sys_mman_h sys_param_h sys_resource_h @@ -3684,7 +3698,15 @@ if test "$?" != 0; then fi add_cppflags -D_ISOC99_SOURCE -check_cflags -std=c99 + +# some compilers silently accept -std=c11, so we also need to check that the +# version macro is defined properly +if test_cflags_cpp -std=c11 "__STDC_VERSION__ >= 201112L"; then + add_cflags -std=c11 +else + check_cflags -std=c99 +fi + check_cc -D_FILE_OFFSET_BITS=64 <<EOF && add_cppflags -D_FILE_OFFSET_BITS=64 #include <stdlib.h> EOF @@ -4520,6 +4542,11 @@ check_header VideoDecodeAcceleration/VDADecoder.h check_header windows.h check_header X11/extensions/XvMClib.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_h stdatomic.h "atomic_int foo; atomic_store(&foo, 0)" + check_lib "windows.h shellapi.h" CommandLineToArgvW -lshell32 check_lib "windows.h wincrypt.h" CryptGenRandom -ladvapi32 check_lib "windows.h psapi.h" GetProcessMemoryInfo -lpsapi