Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 583550 - sys-cluster/ceph-10.2.0: add support for arm
Summary: sys-cluster/ceph-10.2.0: add support for arm
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Patrick McLean
URL:
Whiteboard:
Keywords: KEYWORDREQ
Depends on:
Blocks:
 
Reported: 2016-05-20 07:41 UTC by Dyweni
Modified: 2016-05-25 17:57 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Fix for rocksdb to compile on arm (ceph-10.2.0-armv7l-doesnt-support-momit-leaf-frame-pointer.patch,811 bytes, patch)
2016-05-20 07:43 UTC, Dyweni
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Dyweni 2016-05-20 07:41:38 UTC
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).
Comment 1 Dyweni 2016-05-20 07:43:01 UTC
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.
Comment 2 Dyweni 2016-05-20 07:48:15 UTC
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).
Comment 3 Dyweni 2016-05-20 07:49:00 UTC
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
Comment 4 Dyweni 2016-05-20 08:03:06 UTC
The patch may need to be applied to 10.2.1, I have not tested that version yet.
Comment 5 Patrick McLean gentoo-dev 2016-05-25 17:57:57 UTC
Fixed with the 10.2.1 version bump

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d3a2f3beb98b83316c57450bd09d0c3ffd8f2148