On 11 November 2011 23:32, Richard Henderson <r...@redhat.com> wrote: > Cc: Richard Earnshaw <richard.earns...@arm.com> > Cc: Ramana Radhakrishnan <ramana.radhakrish...@arm.com> > --- > gcc/config/arm/arm.c | 4 ++++ > 1 files changed, 4 insertions(+), 0 deletions(-) > > diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c > index 6ef6f62..abf8ce1 100644 > --- a/gcc/config/arm/arm.c > +++ b/gcc/config/arm/arm.c > @@ -1096,6 +1096,10 @@ arm_set_fixed_conv_libfunc (convert_optab optable, > enum machine_mode to, > static void > arm_init_libfuncs (void) > { > + /* For Linux, we have access to kernel support for atomic operations. */ > + if (arm_abi == ARM_ABI_AAPCS_LINUX) > + init_sync_libfuncs (8);
There is unfortunately no guarantee that your kernel has support for the 64bit cases, since this was only recently added - and the libgcc code checks and aborts if linked in. (As far as I can tell there is approximately one potential user of 64bit atomics on ARM, so it's important not to do that check for all binaries). Dave