This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
RE: [patch] use of atomic builtins for arm-linux-eabi in boehm-gc
- From: "Boehm, Hans" <hans dot boehm at hp dot com>
- To: Matthias Klose <doko at ubuntu dot com>, Richard Earnshaw <rearnsha at arm dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, GCJ-patches <java-patches at gcc dot gnu dot org>
- Date: Mon, 14 Dec 2009 18:31:16 +0000
- Subject: RE: [patch] use of atomic builtins for arm-linux-eabi in boehm-gc
- References: <4B1F7573.8060406@ubuntu.com> <000801ca78b8$aec322a0$0c4967e0$@com> <4B2577C6.9070303@ubuntu.com>
> From: Matthias Klose
>
> On 09.12.2009 11:16, Richard Earnshaw wrote:
> >> Current trunk fails to build on arm-linux-gnueabi in
> boehm-gc, when
> >> configured
> >> --with-mode=thumb:
> >>
> >> /tmp/ccVpqOWm.s: Assembler messages:
> >> /tmp/ccVpqOWm.s:1160: Error: selected processor does not
> support `swp
> >> r3,r3,[r2]'
> >> /tmp/ccVpqOWm.s:2472: Error: selected processor does not
> support `swp
> >> r3,r3,[r2]'
> >> /tmp/ccVpqOWm.s:3232: Error: selected processor does not
> support `swp
> >> r3,r3,[r2]'
> >> make[5]: *** [alloc.lo] Error 1
> >>
> >> arm-linux-gnueabi now provides the atomic builtins; use them
> >> unconditionally (as libjava does).
> >>
> >> Ok for the trunk, if testing succeeds? The build on trunk
> configured
> >> with --with-mode=thumb fails for other reasons (PR42093),
> currently
> >> testing the patch for the 4.4 branch.
> > 2009-12-09 Matthias Klose<doko@ubuntu.com>
> >
> > * include/private/gc_locks.h: For __ARM_EABI__ define
> > GC_test_and_set GC_clear to use the atomic builtins.
> >
> > OK for trunk once testing is complete.
>
> a test build did suceed without regressions. now that the
> _sync_synchronise fix is backported to the 4.4 branch, ok to
> commit to 4.4 branch as well?
>
> > Please also notify the upstream maintainer of boehm-gc, or
> this patch
> > may get lost in a future merge.
>
> forwarded to Hans Boehm.
>
> Matthias
>
Thanks for forwarding.
Since the upstream version now uses libatomic_ops, this code doesn't really exist there anymore.
If anyone wants to double check that the code there makes sense, you can find the gcc/arm dependent code in http://bdwgc.cvs.sourceforge.net/viewvc/bdwgc/bdwgc/libatomic_ops/src/atomic_ops/sysdeps/gcc/arm.h?revision=1.1&view=markup
My long term plan is to convert all of this to C++0x/C1x atomics, once those are sufficiently supported.
Hans