Differences From Artifact [2f85c2e426]:
- File
configure.ac
— part of check-in
[7115c55ef0]
at
2016-07-31 23:04:07
on branch trunk
— Split atomic.h into multiple files
Having one file per implementation reduces the #ifdef hell and makes it
much more readable. (user: js, size: 31840) [annotate] [blame] [check-ins using]
To Artifact [6c52721054]:
- File configure.ac — part of check-in [64edae4128] at 2016-07-31 23:41:28 on branch trunk — atomic.h: Add support for __atomic_* builtins (user: js, size: 32430) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
743 744 745 746 747 748 749 750 751 752 753 754 755 756 | #endif ], [ AC_MSG_RESULT(yes) atomic_ops="assembly implementation" ], [ AC_MSG_RESULT(no) ]) AC_MSG_CHECKING(whether __sync_* works) AC_TRY_LINK([#include <stdint.h>], [ int32_t i, j; if (__sync_add_and_fetch(&i, 1)) j = __sync_sub_and_fetch(&i, 1); while (!__sync_bool_compare_and_swap(&i, 0, 1)); | > > > > > > > > > > > > > > > > > > > > > | 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 | #endif ], [ AC_MSG_RESULT(yes) atomic_ops="assembly implementation" ], [ AC_MSG_RESULT(no) ]) AC_MSG_CHECKING(whether __atomic_* works) AC_TRY_LINK([ #include <stdbool.h> #include <stdint.h> ], [ int32_t i, j; if (__atomic_add_fetch(&i, 1, __ATOMIC_RELAXED)) j = __atomic_sub_fetch(&i, 1, __ATOMIC_RELAXED); while (!__atomic_compare_exchange_n(&i, &j, 1, false, __ATOMIC_RELAXED, __ATOMIC_RELAXED)); __atomic_thread_fence(__ATOMIC_SEQ_CST); ], [ AC_MSG_RESULT(yes) test x"$atomic_ops" = x"none" && \ atomic_ops="__atomic_* builtins" AC_DEFINE(OF_HAVE_ATOMIC_BUILTINS, 1, [Whether __atomic_* builtins are available]) ], [ AC_MSG_RESULT(no) ]) AC_MSG_CHECKING(whether __sync_* works) AC_TRY_LINK([#include <stdint.h>], [ int32_t i, j; if (__sync_add_and_fetch(&i, 1)) j = __sync_sub_and_fetch(&i, 1); while (!__sync_bool_compare_and_swap(&i, 0, 1)); |
︙ | ︙ |