On Mon, Nov 16, 2009 at 10:32:56PM -0800, Greg Lewis wrote: > The bad news is that the patches don't quite work on amd64. Its easy > enough to fix up the atomic ones for that, but I'm getting a little > bogged down in > > hotspot/src/os_cpu/bsd_zero/vm/orderAccess_bsd_zero.inline.hpp > > It seems like the i386 doesn't use this, but on amd64 it wants to use > the GCC builtin __sync_synchronize() as a full memory barrier. > Unfortunately this isn't being resolved with the FreeBSD native version > of gcc (maybe it was added later?) so that is blocking me. I don't want > to have to define ASM versions of this since, to me at least, that > partly defeats the purpose of Zero. Yes, I am aware that there are > ASM versions for arm and powerpc already defined in the file... > > Anyway, I'm looking for alternatives before I breakdown and write > any assembler. Any suggestions gratefully accepted.
D'oh. I think real problem is that my amd64 box is still running FreeBSD 6.x, which means its using gcc 3.4.6. I bet that __sync_synchronize() wasn't implemented until gcc 4.x and if I just upgrade it will work. Of course that is a pain for anyone wanting to use a non-gcc compiler. -- Greg Lewis Email : gle...@eyesbeyond.com Eyes Beyond Web : http://www.eyesbeyond.com Information Technology FreeBSD : gle...@freebsd.org