diff --git a/0002-common-instantiate-strict_si_cast-long-not-strict_si.patch b/0002-common-instantiate-strict_si_cast-long-not-strict_si.patch new file mode 100644 index 0000000..a912fe4 --- /dev/null +++ b/0002-common-instantiate-strict_si_cast-long-not-strict_si.patch @@ -0,0 +1,50 @@ +From 870cc11b3ed170c1046ad719eeb4a1014371a4ad Mon Sep 17 00:00:00 2001 +From: Kefu Chai +Date: Sun, 26 Jun 2016 01:02:03 +0800 +Subject: [PATCH] common: instantiate strict_si_cast not + strict_si_cast + +this fixes the build on armf. + +on 32bit platforms, cstdint is very likely to + + typedef long long int int64_t; + +this results in compilation error like + + `common/strtol.cc:190:75: error: duplicate explicit instantiation of 'T + strict_si_cast(const char, std::string) [with T = long long int; + std::string = std::basic_string]' + + [-fpermissive] + template int64_t strict_si_cast(const char *str, std::string *err); + ^` + +we can address this by instantiate the primitive type of `long long` +instead of `in64_t`. + +Fixes: http://tracker.ceph.com/issues/16398 +Signed-off-by: Kefu Chai +--- + src/common/strtol.cc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/common/strtol.cc b/src/common/strtol.cc +index f43d661..04e09b1 100644 +--- a/src/common/strtol.cc ++++ b/src/common/strtol.cc +@@ -187,9 +187,9 @@ T strict_si_cast(const char *str, std::string *err) + + template int strict_si_cast(const char *str, std::string *err); + +-template long long strict_si_cast(const char *str, std::string *err); ++template long strict_si_cast(const char *str, std::string *err); + +-template int64_t strict_si_cast(const char *str, std::string *err); ++template long long strict_si_cast(const char *str, std::string *err); + + template uint64_t strict_si_cast(const char *str, std::string *err); + +-- +2.7.4 + diff --git a/ceph.spec b/ceph.spec index 27dd977..165868b 100644 --- a/ceph.spec +++ b/ceph.spec @@ -55,7 +55,7 @@ ################################################################################# Name: ceph Version: 10.2.3 -Release: 1%{?dist} +Release: 2%{?dist} Epoch: 1 Summary: User space components of the Ceph file system License: LGPL-2.1 and CC-BY-SA-1.0 and GPL-2.0 and BSL-1.0 and GPL-2.0-with-autoconf-exception and BSD-3-Clause and MIT @@ -65,6 +65,7 @@ Group: System/Filesystems URL: http://ceph.com/ Source0: http://ceph.com/download/%{name}-%{version}.tar.gz Patch1: 0001-Disable-erasure_codelib-neon-build.patch +Patch2: 0002-common-instantiate-strict_si_cast-long-not-strict_si.patch %if 0%{?suse_version} %if 0%{?is_opensuse} ExclusiveArch: x86_64 aarch64 ppc64 ppc64le @@ -626,6 +627,7 @@ python-cephfs instead. %prep %setup -q %patch1 -p1 +%patch2 -p1 %build %if 0%{with cephfs_java} @@ -1535,6 +1537,10 @@ exit 0 %changelog +* Thu Sep 29 2016 Boris Ranto - 1:10.2.3-2 +- New release (1:10.2.3-2) +- common: instantiate strict_si_cast not + * Thu Sep 29 2016 Boris Ranto - 1:10.2.3-1 - New version (1:10.2.3-1) - Disable erasure_codelib neon build