Hello,

Looking to libatomic-ops source
  src/atomic_ops/sysdeps/gcc/arm.h

/* NEC LE-IT: ARMv6 is the first architecture providing support for simple LL/SC
 * A data memory barrier must be raised via CP15 command (see documentation).
 *
 * ARMv7 is compatible to ARMv6 but has a simpler command for issuing a
 * memory barrier (DMB). Raising it via CP15 should still work as told me by the
 * support engineers. If it turns out to be much quicker than we
should implement
 * custom code for ARMv7 using the asm { dmb } command.
 *
 * If only a single processor is used, we can define AO_UNIPROCESSOR
 * and do not need to access CP15 for ensuring a DMB
*/

ceph calls some functions defined for ARMv6 or above:
/* NEC LE-IT: fetch and add1 for ARMv6 */
AO_INLINE AO_t
AO_fetch_and_add1(volatile AO_t *p)

So building ceph without-libatomic-ops on Debian armel looks like
working on abel.debian.org. (Already tested).

Find a proposed patch attached.

Best regards,
-- 
 Héctor Orón

"Our Sun unleashes tremendous flares expelling hot gas into the Solar
System, which one day will disconnect us."

-- Day DVB-T stop working nicely
Video flare: http://antwrp.gsfc.nasa.gov/apod/ap100510.html
diff -Naur ceph-0.24.3/debian//changelog ceph-0.24.3.x/debian//changelog
--- ceph-0.24.3/debian//changelog	2011-03-19 17:51:02.000000000 +0000
+++ ceph-0.24.3.x/debian//changelog	2011-03-19 17:50:21.000000000 +0000
@@ -1,3 +1,10 @@
+ceph (0.24.3-3) unstable; urgency=low
+
+  * Fix "FTBFS on armel: missing include/atomic.h" building armel without
+    libatomic-ops (Closes: #615235)
+
+ -- Hector Oron <[email protected]>  Sat, 19 Mar 2011 17:49:27 +0000
+
 ceph (0.24.3-2) unstable; urgency=low
 
   * Make Ceph Linux only and build on all Linux archs (closes: #614890).
diff -Naur ceph-0.24.3/debian//rules ceph-0.24.3.x/debian//rules
--- ceph-0.24.3/debian//rules	2011-03-19 17:51:02.000000000 +0000
+++ ceph-0.24.3.x/debian//rules	2011-03-19 17:48:18.000000000 +0000
@@ -8,6 +8,13 @@
   MAKEFLAGS += -j$(NUMJOBS)
 endif
 
+export DEB_HOST_ARCH      ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
+
+ifeq ($(DEB_HOST_ARCH), armel)
+  # armel supports ARMv4t or above instructions sets.
+  # libatomic-ops is only usable with ceph for ARMv6 or above.
+  extraopts += --without-libatomic-ops
+endif
 
 configure: configure-stamp
 configure-stamp:
@@ -19,7 +26,7 @@
 	dh_testdir
 
 	./autogen.sh
-	./configure --prefix=/usr --sbindir=/sbin --localstatedir=/var --sysconfdir=/etc
+	./configure --prefix=/usr --sbindir=/sbin --localstatedir=/var --sysconfdir=/etc $(extraopts)
 	$(MAKE)
 	cp src/init-ceph debian/ceph.init
 	cp src/logrotate.conf debian/ceph.logrotate

Reply via email to