git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50480
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
[
AC_REQUIRE([AC_PROG_CC])
if test -n "$GCC"; then
[
AC_REQUIRE([AC_PROG_CC])
if test -n "$GCC"; then
- AC_MSG_CHECKING([for __sync_fetch_* builtins])
+ AC_MSG_CHECKING([for __sync_fetch_and_add and __sync_sub_and_fetch builtins])
AC_CACHE_VAL(wx_cv_cc_gcc_atomic_builtins, [
AC_TRY_LINK(
[],
[
unsigned int value=0;
AC_CACHE_VAL(wx_cv_cc_gcc_atomic_builtins, [
AC_TRY_LINK(
[],
[
unsigned int value=0;
- __sync_fetch_and_add(&value, 1);
+ /* wxAtomicInc doesn't use return value here */
+ __sync_fetch_and_add(&value, 2);
__sync_sub_and_fetch(&value, 1);
__sync_sub_and_fetch(&value, 1);
+ /* but wxAtomicDec does, so mimic that: */
+ unsigned int r2 = __sync_sub_and_fetch(&value, 1);
],
wx_cv_cc_gcc_atomic_builtins=yes,
wx_cv_cc_gcc_atomic_builtins=no)
],
wx_cv_cc_gcc_atomic_builtins=yes,
wx_cv_cc_gcc_atomic_builtins=no)
- { echo "$as_me:$LINENO: checking for __sync_fetch_* builtins" >&5
-echo $ECHO_N "checking for __sync_fetch_* builtins... $ECHO_C" >&6; }
+ { echo "$as_me:$LINENO: checking for __sync_fetch_and_add and __sync_sub_and_fetch builtins" >&5
+echo $ECHO_N "checking for __sync_fetch_and_add and __sync_sub_and_fetch builtins... $ECHO_C" >&6; }
if test "${wx_cv_cc_gcc_atomic_builtins+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test "${wx_cv_cc_gcc_atomic_builtins+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- __sync_fetch_and_add(&value, 1);
+ /* wxAtomicInc doesn't use return value here */
+ __sync_fetch_and_add(&value, 2);
__sync_sub_and_fetch(&value, 1);
__sync_sub_and_fetch(&value, 1);
+ /* but wxAtomicDec does, so mimic that: */
+ unsigned int r2 = __sync_sub_and_fetch(&value, 1);