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