ext/raindrops/extconf.rb in raindrops-0.3.0 vs ext/raindrops/extconf.rb in raindrops-0.4.0

- old
+ new

@@ -5,7 +5,33 @@ have_func('munmap', 'sys/mman.h') or abort 'munmap() not found' have_func("rb_struct_alloc_noinit") have_func('rb_thread_blocking_region') +checking_for "GCC 4+ atomic builtins" do + src = <<SRC +int main(int argc, char * const argv[]) { + volatile unsigned long i = 0; + __sync_add_and_fetch(&i, argc); + __sync_sub_and_fetch(&i, argc); + return 0; +} +SRC + + if try_run(src) + $defs.push(format("-DHAVE_GCC_ATOMIC_BUILTINS")) + true + else + false + end +end or have_header('atomic_ops.h') or abort <<-SRC + +libatomic_ops is required if GCC 4+ is not used. +See http://www.hpl.hp.com/research/linux/atomic_ops/ + +Users of Debian-based distros may run: + + apt-get install libatomic-ops-dev +SRC + dir_config('raindrops') create_makefile('raindrops_ext')