Check for stdatomic.h Also simplify check for OSAtomicCompareAndSwapPtr.
Project: http://git-wip-us.apache.org/repos/asf/lucy-charmonizer/repo Commit: http://git-wip-us.apache.org/repos/asf/lucy-charmonizer/commit/af5da8c9 Tree: http://git-wip-us.apache.org/repos/asf/lucy-charmonizer/tree/af5da8c9 Diff: http://git-wip-us.apache.org/repos/asf/lucy-charmonizer/diff/af5da8c9 Branch: refs/heads/master Commit: af5da8c9a8672808fc0682132efe0fbc57aeca09 Parents: 00ca462 Author: Nick Wellnhofer <[email protected]> Authored: Wed Feb 8 15:44:38 2017 +0100 Committer: Nick Wellnhofer <[email protected]> Committed: Wed Feb 8 15:44:38 2017 +0100 ---------------------------------------------------------------------- src/Charmonizer/Probe/AtomicOps.c | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lucy-charmonizer/blob/af5da8c9/src/Charmonizer/Probe/AtomicOps.c ---------------------------------------------------------------------- diff --git a/src/Charmonizer/Probe/AtomicOps.c b/src/Charmonizer/Probe/AtomicOps.c index 49c974a..256b4f3 100644 --- a/src/Charmonizer/Probe/AtomicOps.c +++ b/src/Charmonizer/Probe/AtomicOps.c @@ -23,32 +23,21 @@ #include <stdio.h> #include <stdlib.h> - -static int -chaz_AtomicOps_osatomic_cas_ptr(void) { - static const char osatomic_casptr_code[] = - CHAZ_QUOTE( #include <libkern/OSAtomic.h> ) - CHAZ_QUOTE( #include <libkern/OSAtomic.h> ) - CHAZ_QUOTE( int main() { ) - CHAZ_QUOTE( int foo = 1; ) - CHAZ_QUOTE( int *foo_ptr = &foo; ) - CHAZ_QUOTE( int *target = NULL; ) - CHAZ_QUOTE( OSAtomicCompareAndSwapPtr(NULL, foo_ptr, (void**)&target); ) - CHAZ_QUOTE( return 0; ) - CHAZ_QUOTE( } ); - return chaz_CC_test_compile(osatomic_casptr_code); -} - void chaz_AtomicOps_run(void) { chaz_ConfWriter_start_module("AtomicOps"); + if (chaz_HeadCheck_check_header("stdatomic.h")) { + chaz_ConfWriter_add_def("HAS_STDATOMIC_H", NULL); + } if (chaz_HeadCheck_check_header("libkern/OSAtomic.h")) { chaz_ConfWriter_add_def("HAS_LIBKERN_OSATOMIC_H", NULL); /* Check for OSAtomicCompareAndSwapPtr, introduced in later versions * of OSAtomic.h. */ - if (chaz_AtomicOps_osatomic_cas_ptr()) { + if (chaz_HeadCheck_defines_symbol("OSAtomicCompareAndSwapPtr", + "#include <libkern/OSAtomic.h>") + ) { chaz_ConfWriter_add_def("HAS_OSATOMIC_CAS_PTR", NULL); } }
