[Gc] atomic-ops on arm trouble, again

Gregory Farnum gregory.farnum at dreamhost.com
Fri Mar 11 13:11:11 PST 2011

Hello all,
Last September I wrote about an issue we were having with the atomic-ops implementation on ARM in Ubuntu. [1][2] This apparently got solved (I submitted a patch and a more generalized solution was implemented), but a week or two ago I got a report from our Debian maintainer that Ceph on ARM was failing due to issues with the atomic ops. He sent along the full build log. [3] There are no issues with any of the other debian architectures (well, relevant ones -- an unrelated issue popped up on s390).
The relevant bit of the log is included below, but the gist of it is that none of the AO_* functions seem to be working. I've managed to reproduce this in a QEMU ARM install on both the 7.2~alpha5+cvs20100601-1 and 1.2-4+lenny1 versions (from Debian packages), and the Debian build system is using 7.2~alpha5+cvs20101124-1 (I'm afraid I don't know exactly how these versions correspond to the cvs versions, sorry). Unlike the last time, I've been unable to find a simple fix that I think will fix things. :(
Any suggestions? Requests for more data? Patches to try?

[1]: https://bugs.launchpad.net/ubuntu/+source/ceph/+bug/635388
[2]: http://www.hpl.hp.com/hosted/linux/mail-archives/gc/2010-September/004137.html[3]: https://buildd.debian.org/fetch.cgi?pkg=ceph&arch=armel&ver=0.24.3-2&stamp=1298712439&file=log&as=raw

g++ -DHAVE_CONFIG_H -I. -Wall -D__CEPH__ -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_THREAD_SAFE -rdynamic -g -O2 -MT AuthAuthorizeHandler.o -MD -MP -MF .deps/AuthAuthorizeHandler.Tpo -c -o AuthAuthorizeHandler.o `test -f 'auth/AuthAuthorizeHandler.cc' || echo './'`auth/AuthAuthorizeHandler.cc
In file included from ./include/buffer.h:55,
 from ./include/encoding.h:20,
 from ./include/object.h:29,
 from ./include/types.h:64,
 from auth/Crypto.h:17,
 from auth/Auth.h:18,
 from auth/AuthAuthorizeHandler.cc:1:
./include/atomic.h: In member function 'void ceph::atomic_t::inc()':
./include/atomic.h:33: error: 'AO_fetch_and_add1' was not declared in this scope
./include/atomic.h: In member function 'size_t ceph::atomic_t::dec()':
./include/atomic.h:36: error: 'AO_fetch_and_sub1_write' was not declared in this scope
./include/atomic.h: In member function 'void ceph::atomic_t::add(size_t)':
./include/atomic.h:39: error: 'AO_fetch_and_add' was not declared in this scope
./include/atomic.h: In member function 'void ceph::atomic_t::sub(int)':
./include/atomic.h:43: error: 'AO_fetch_and_add_write' was not declared in this scope
make[3]: *** [AuthAuthorizeHandler.o] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [build-stamp] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2 

More information about the Gc mailing list