On 23 December 2014 at 10:13, Maxim Uvarov <[email protected]> wrote:
> Odp atomic operations based on compiler build-ins. Make
> sure that compiler supports such operation at configure
> stage.
>
> Signed-off-by: Maxim Uvarov <[email protected]>
> ---
>  v3: make atomic checks platfrom specific
>
>  configure.ac                           |  4 +++-
>  platform/linux-generic/m4/configure.m4 | 18 ++++++++++++++++++
>  2 files changed, 21 insertions(+), 1 deletion(-)
>  create mode 100644 platform/linux-generic/m4/configure.m4
>
> diff --git a/configure.ac b/configure.ac
> index 377e8be..f55beca 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -47,7 +47,9 @@ AC_ARG_WITH([platform],
>      [AS_HELP_STRING([--with-platform=prefix],
>          [Select platform to be used, default linux-generic])],
>      [],
> -    [with_platform=linux-generic])
> +    [with_platform=linux-generic
> +     m4_include([./platform/linux-generic/m4/configure.m4])
> +    ])
>
>  AC_SUBST([with_platform])
>
> diff --git a/platform/linux-generic/m4/configure.m4 
> b/platform/linux-generic/m4/configure.m4
> new file mode 100644
> index 0000000..bfb1fb0
> --- /dev/null
> +++ b/platform/linux-generic/m4/configure.m4
> @@ -0,0 +1,18 @@
> +AC_MSG_CHECKING(for GCC atomic builtins)
> +AC_LINK_IFELSE(
> +    [AC_LANG_SOURCE(
> +      [[#include <stdint.h>
> +        int main() {
> +        uint32_t v = 1;
> +        __atomic_fetch_add(&v, 1, __ATOMIC_RELAXED);
> +        __atomic_fetch_sub(&v, 1, __ATOMIC_RELAXED);
> +        __atomic_store_n(&v, 1, __ATOMIC_RELAXED);
> +        __atomic_load_n(&v, __ATOMIC_RELAXED);
> +        return 0;
> +        }
> +    ]])],
> +    AC_MSG_RESULT(yes),
> +    AC_MSG_RESULT(no)
> +    echo "Atomic operation are not supported by your compiller."
> +    echo "Use newer version. For gcc > 4.7.3"
Why >4.7.3? Minor releases do not introduce major new features.
__atomic support was introduced on GCC 4.7.0.


> +    exit -1)
> --
> 1.8.5.1.163.gd7aced9
>
>
> _______________________________________________
> lng-odp mailing list
> [email protected]
> http://lists.linaro.org/mailman/listinfo/lng-odp

_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to