Fix arm compilation issues

This commit is contained in:
Boris Ranto 2015-04-16 13:09:24 +02:00
parent 2a379f1396
commit bedf031a7d
3 changed files with 68 additions and 7 deletions

View File

@ -0,0 +1,29 @@
From 8b0b78dc06ae1ed1c5f3c7a13271e7037091d0be Mon Sep 17 00:00:00 2001
From: Boris Ranto <branto@redhat.com>
Date: Wed, 15 Apr 2015 14:06:24 +0200
Subject: [PATCH] Disable erasure_codelib neon build
---
src/erasure-code/jerasure/Makefile.am | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/erasure-code/jerasure/Makefile.am b/src/erasure-code/jerasure/Makefile.am
index 9ca4fbb..147d57e 100644
--- a/src/erasure-code/jerasure/Makefile.am
+++ b/src/erasure-code/jerasure/Makefile.am
@@ -75,9 +75,9 @@ if LINUX
libec_jerasure_neon_la_LDFLAGS += -export-symbols-regex '.*__erasure_code_.*'
endif
-if HAVE_NEON
-erasure_codelib_LTLIBRARIES += libec_jerasure_neon.la
-endif
+#if HAVE_NEON
+#erasure_codelib_LTLIBRARIES += libec_jerasure_neon.la
+#endif
libec_jerasure_sse3_la_SOURCES = ${jerasure_sources}
libec_jerasure_sse3_la_CFLAGS = ${AM_CFLAGS} \
--
2.1.0

View File

@ -0,0 +1,33 @@
From b2781fb5638afae7438b983a912ede126a8c5b85 Mon Sep 17 00:00:00 2001
From: James Page <james.page@ubuntu.com>
Date: Fri, 13 Mar 2015 19:46:04 +0000
Subject: [PATCH] Add support for PPC architecture, provide fallback
Add high precision cpu cycles support for powerpc and powerpc64.
Provide a fallback for other architectures and warn during
compilation.
Signed-off-by: James Page <james.page@ubuntu.com>
diff --git a/src/common/Cycles.h b/src/common/Cycles.h
index 6e47cde..bb47d5c 100644
--- a/src/common/Cycles.h
+++ b/src/common/Cycles.h
@@ -72,8 +72,15 @@ class Cycles {
uint64_t cntvct;
asm volatile ("isb; mrs %0, cntvct_el0; isb; " : "=r" (cntvct) :: "memory");
return cntvct;
+#elif defined(__powerpc__) || defined (__powerpc64__)
+ // Based on:
+ // https://github.com/randombit/botan/blob/net.randombit.botan/src/lib/entropy/hres_timer/hres_timer.cpp
+ uint32_t lo = 0, hi = 0;
+ asm volatile("mftbu %0; mftb %1" : "=r" (hi), "=r" (lo));
+ return (((uint64_t)hi << 32) | lo);
#else
-#error No high-precision counter available for your OS/arch
+#warning No high-precision counter available for your OS/arch
+ return 0;
#endif
}

View File

@ -22,6 +22,8 @@ Source0: http://ceph.com/download/%{name}-%{version}.tar.bz2
%if 0%{?fedora} || 0%{?centos} || 0%{?rhel}
Patch0: init-ceph.in-fedora.patch
%endif
Patch1: 0001-Disable-erasure_codelib-neon-build.patch
Patch2: 0002-Add-support-for-PPC-arch.patch
Requires: librbd1 = %{epoch}:%{version}-%{release}
Requires: librados2 = %{epoch}:%{version}-%{release}
Requires: libcephfs1 = %{epoch}:%{version}-%{release}
@ -426,6 +428,8 @@ python-cephfs instead.
%if 0%{?fedora} || 0%{?rhel} || 0%{?centos}
%patch0 -p1 -b .init
%endif
%patch1 -p1
%patch2 -p1
%build
# Find jni.h
@ -477,10 +481,6 @@ make %{_smp_mflags}
make DESTDIR=$RPM_BUILD_ROOT install
find $RPM_BUILD_ROOT -type f -name "*.la" -exec rm -f {} ';'
find $RPM_BUILD_ROOT -type f -name "*.a" -exec rm -f {} ';'
%if ! (0%{?fedora} == 20 || 0%{?rhel} == 6)
# do not package man page for binary that is not built
rm -f $RPM_BUILD_ROOT%{_mandir}/man8/rbd-replay-prep.8*
%endif
install -D src/init-ceph $RPM_BUILD_ROOT%{_initrddir}/ceph
install -D src/init-radosgw.sysv $RPM_BUILD_ROOT%{_initrddir}/ceph-radosgw
install -D src/init-rbdmap $RPM_BUILD_ROOT%{_initrddir}/rbdmap
@ -893,10 +893,9 @@ ln -sf %{_libdir}/librbd.so.1 /usr/lib64/qemu/librbd.so.1
%{_mandir}/man8/rbd-replay-many.8*
%{_bindir}/rbd-replay
%{_bindir}/rbd-replay-many
%if (0%{?fedora} == 20 || 0%{?rhel} == 6)
%{_mandir}/man8/rbd-replay-prep.8*
%{_bindir}/rbd-replay-prep
%endif
%{_bindir}/ceph_perf_objectstore
#################################################################################
%files -n libcephfs_jni1
@ -912,7 +911,6 @@ ln -sf %{_libdir}/librbd.so.1 /usr/lib64/qemu/librbd.so.1
%files -n cephfs-java
%defattr(-,root,root,-)
%{_javadir}/libcephfs.jar
%{_javadir}/libcephfs-test.jar
#################################################################################
%files libs-compat
@ -932,6 +930,7 @@ ln -sf %{_libdir}/librbd.so.1 /usr/lib64/qemu/librbd.so.1
%changelog
* Tue Apr 14 2015 Boris Ranto <branto@redhat.com> - 1:0.94.1-1
- Rebase to latest upstream version and sync-up the spec file
- Add arm compilation patches
* Wed Apr 01 2015 Ken Dreyer <ktdreyer@ktdreyer.com> - 1:0.87.1-3
- add version numbers to Obsoletes (RHBZ #1193182)