Lines 442-448
Link Here
|
442 |
struct { |
442 |
struct { |
443 |
uint64_t *v; |
443 |
uint64_t *v; |
444 |
} x; |
444 |
} x; |
445 |
return (int)__atomic_load_n(x.v, __ATOMIC_ACQUIRE); |
445 |
return (int)__atomic_load_n(x.v, __ATOMIC_ACQUIRE) & |
|
|
446 |
(int)__atomic_add_fetch(x.v, (uint64_t)1, __ATOMIC_ACQ_REL); |
446 |
}]])], GCC_ATOMIC_BUILTINS_SUPPORTED=yes, GCC_ATOMIC_BUILTINS_SUPPORTED=no) |
447 |
}]])], GCC_ATOMIC_BUILTINS_SUPPORTED=yes, GCC_ATOMIC_BUILTINS_SUPPORTED=no) |
447 |
|
448 |
|
448 |
dnl If that didn't work, we try linking with -latomic, which is needed on some |
449 |
dnl If that didn't work, we try linking with -latomic, which is needed on some |
Lines 456-462
Link Here
|
456 |
struct { |
457 |
struct { |
457 |
uint64_t *v; |
458 |
uint64_t *v; |
458 |
} x; |
459 |
} x; |
459 |
return (int)__atomic_load_n(x.v, __ATOMIC_ACQUIRE); |
460 |
return (int)__atomic_load_n(x.v, __ATOMIC_ACQUIRE) & |
|
|
461 |
(int)__atomic_add_fetch(x.v, (uint64_t)1, __ATOMIC_ACQ_REL); |
460 |
}]])], GCC_ATOMIC_BUILTINS_SUPPORTED=yes LIBATOMIC_LIBS="-latomic", |
462 |
}]])], GCC_ATOMIC_BUILTINS_SUPPORTED=yes LIBATOMIC_LIBS="-latomic", |
461 |
GCC_ATOMIC_BUILTINS_SUPPORTED=no) |
463 |
GCC_ATOMIC_BUILTINS_SUPPORTED=no) |
462 |
LDFLAGS=$save_LDFLAGS |
464 |
LDFLAGS=$save_LDFLAGS |