Hi Richard, I've added a comment - as usual it's just a number. A quick grep in gcc and glibc showed that priorities 98-101 are used, so I just went a bit below so it has a higher priority than typical initializations.
Cheers, Wilco Here is v2: Increase the priority of the init_have_lse_atomics constructor so it runs before other constructors. This improves chances that rr works when LSE atomics are supported. Regress and bootstrap pass, OK for commit? 2022-05-24 Wilco Dijkstra <wdijk...@arm.com> libgcc/ PR libgcc/105708 * config/aarch64/lse-init.c: Increase constructor priority. --- diff --git a/libgcc/config/aarch64/lse-init.c b/libgcc/config/aarch64/lse-init.c index fc875b7fe80e947623e570eac130e7a14b516551..33b97c8d766895cf0101a851e1dc4ed6a1a053d9 100644 --- a/libgcc/config/aarch64/lse-init.c +++ b/libgcc/config/aarch64/lse-init.c @@ -38,7 +38,9 @@ _Bool __aarch64_have_lse_atomics unsigned long int __getauxval (unsigned long int); -static void __attribute__((constructor)) +/* Use a higher priority to ensure it runs before user constructors + and library constructors with priority 100. */ +static void __attribute__((constructor (90))) init_have_lse_atomics (void) { unsigned long hwcap = __getauxval (AT_HWCAP);