https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80531
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> --- On simplified: extern void foo (int *); extern void bar (int *); extern void baz (int *); static int atomic_lock; void GOMP_atomic_start (void) { foo (&atomic_lock); } void GOMP_atomic_end (void) { bar (&atomic_lock); } static void __attribute__((constructor)) initialize_atomic (void) { baz (&atomic_lock); } with a cross to AIX I certainly don't see random seed anywhere, even with release checking, it uses GOMP_atomic_start in there instead.