The changes described in this bug ticket allow Ceph 10.2.0 to be compiled and run on the ARM platform. (I'm using ODROID XU4).
Created attachment 434762 [details, diff] Fix for rocksdb to compile on arm This patch disables the '-momit-leaf-frame-pointer' so that rocksdb can compile on ARM. GCC doe not support this flag on ARM.
Ceph's erasure coding code requires NEON support. For system-wide compilation, I use: MAKEOPTS="-j8" CHOST="armv7a-hardfloat-linux-gnueabi" CFLAGS="-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard" CXXFLAGS="${CFLAGS}" FFLAGS="${CFLAGS}" FCFLAGS="${FFLAGS}" Then for ceph, specifically, I created: /etc/portage/env/neon.conf ------------------------- CFLAGS="-O2 -pipe -march=armv7-a -mfpu=neon -mfloat-abi=hard" CXXFLAGS="${CFLAGS}" FFLAGS="${CFLAGS}" FCFLAGS="${FFLAGS}" ------------------------- and /etc/portage/env/single.conf ------------------------- MAKEOPTS="-j1" ------------------------- and # more x/etc/portage/package.env ------------------------- sys-cluster/ceph single.conf neon.conf ------------------------- What this does: - neon.conf switches the FPU from 'vfpv3-d16' to 'neon'. - single.conf limits compilation to 1 core (thus keeping memory usage sane... there is only 2GB RAM plus swap).
The patch should be added to the ebuild. The notes about configuration... I'm leaving here in case someone else wants to build ceph on ARM... Maybe this belongs in a wiki somewhere? Dyweni
The patch may need to be applied to 10.2.1, I have not tested that version yet.
Fixed with the 10.2.1 version bump https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d3a2f3beb98b83316c57450bd09d0c3ffd8f2148