AC_DEFUN([LIBUNWIND___THREAD],
[dnl Check whether the compiler supports the __thread keyword.
if test "x$enable___thread" != xno; then
  AC_CACHE_CHECK([for __thread], libc_cv_gcc___thread,
		 [cat > conftest.c <<\EOF
    __thread int a = 42;
EOF
  if AC_TRY_COMMAND([${CC-cc} $CFLAGS -c conftest.c >&AS_MESSAGE_LOG_FD]); then
    libc_cv_gcc___thread=yes
  else
    libc_cv_gcc___thread=no
  fi
  rm -f conftest*])
  if test "$libc_cv_gcc___thread" = yes; then
    AC_DEFINE(HAVE___THREAD, 1,
	[Define to 1 if __thread keyword is supported by the C compiler.])
  fi
else
  libc_cv_gcc___thread=no
fi])

AC_DEFUN([CHECK_ATOMIC_OPS],
[dnl Check whether the system has the atomic_ops package installed.
  AC_CHECK_HEADERS(atomic_ops.h)
#
# Don't link against libatomic_ops for now.  We don't want libunwind
# to depend on libatomic_ops.so.  Fortunately, none of the platforms
# we care about so far need libatomic_ops.a (everything is done via
# inline macros).
#
#  AC_CHECK_LIB(atomic_ops, main)
])

# ANDROID support update.
AC_DEFUN([CHECK_ANDROID],
[dnl Check whether the system has __ANDROID__ defined.
if test "x$enable_conserve_stack" != xno; then
  AC_CACHE_CHECK([for __ANDROID__], ac_cv_android,
         [cat > conftest.c <<\EOF
  #if !defined(__ANDROID__)
    value = fail
  #endif
EOF
  if AC_TRY_COMMAND([${CC-cc} $CFLAGS -c conftest.c >&AS_MESSAGE_LOG_FD]); then
    ac_cv_android=yes
  else
    ac_cv_android=no
  fi
  rm -f conftest*])
  if test "$ac_cv_android" = yes; then
    AC_DEFINE([CONSERVE_STACK], [],
              [Allocate large structures rather than place them on the stack.])
  fi
else
  ac_cv_android=no
fi])
# End of ANDROID update.