From 01de299fc01b534a873c89f77068086e734514c9 Mon Sep 17 00:00:00 2001 From: James Page Date: Tue, 7 Aug 2018 14:06:05 +0100 Subject: [PATCH] build: 32 bit architecture fixes Misc fixes to resolve compilation failures on 32 bit architectures. These are mostly due to differences in types under 32 bit archs which are typically fixed by switching to a type which is consistent between architectures - size_t -> uint64_t for example. Signed-off-by: James Page --- src/common/ceph_context.h | 2 +- src/mon/OSDMonitor.cc | 4 ++-- src/os/bluestore/BlueStore.cc | 8 ++++---- src/osd/PrimaryLogPG.cc | 6 +++--- src/rgw/rgw_sync_log_trim.cc | 2 +- src/test/rbd_mirror/test_ImageSync.cc | 4 ++-- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/common/ceph_context.h b/src/common/ceph_context.h index 0c2c6487871..88318bce3f8 100644 --- a/src/common/ceph_context.h +++ b/src/common/ceph_context.h @@ -143,7 +143,7 @@ public: void do_command(std::string_view command, const cmdmap_t& cmdmap, std::string_view format, ceph::bufferlist *out); - static constexpr std::size_t largest_singleton = sizeof(void*) * 72; + static constexpr std::size_t largest_singleton = 8 * 72; template T& lookup_or_create_singleton_object(std::string_view name, diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 02900318fee..f6129a3e21b 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -826,8 +826,8 @@ OSDMonitor::update_pending_pgs(const OSDMap::Incremental& inc, << " modified " << p->second.modified << " [" << p->second.start << "-" << p->second.end << ")" << dendl; - int n = std::min(max - pending_creatings.pgs.size(), - p->second.end - p->second.start); + int64_t n = std::min(max - pending_creatings.pgs.size(), + p->second.end - p->second.start); ps_t first = p->second.start; ps_t end = first + n; for (ps_t ps = first; ps < end; ++ps) { diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 42318ab8111..d7ee82e51eb 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -12328,8 +12328,8 @@ size_t BlueStoreRepairer::StoreSpaceTracker::filter_out( assert(!was_filtered_out); assert(collections_bfs.size() == objects_bfs.size()); - size_t prev_pos = 0; - size_t npos = collections_bfs.size(); + uint64_t prev_pos = 0; + uint64_t npos = collections_bfs.size(); bloom_vector collections_reduced; bloom_vector objects_reduced; @@ -12338,8 +12338,8 @@ size_t BlueStoreRepairer::StoreSpaceTracker::filter_out( if (e.second == 0) { continue; } - size_t pos = max(e.first / granularity, prev_pos); - size_t end_pos = 1 + (e.first + e.second - 1) / granularity; + uint64_t pos = max(e.first / granularity, prev_pos); + uint64_t end_pos = 1 + (e.first + e.second - 1) / granularity; while (pos != npos && pos < end_pos) { assert( collections_bfs[pos].element_count() == objects_bfs[pos].element_count()); diff --git a/src/osd/PrimaryLogPG.cc b/src/osd/PrimaryLogPG.cc index 4d3e131c0a3..681243ae08d 100644 --- a/src/osd/PrimaryLogPG.cc +++ b/src/osd/PrimaryLogPG.cc @@ -1634,8 +1634,8 @@ void PrimaryLogPG::calc_trim_to() pg_log.get_log().approx_size() > target) { dout(10) << __func__ << " approx pg log length = " << pg_log.get_log().approx_size() << dendl; - size_t num_to_trim = std::min(pg_log.get_log().approx_size() - target, - cct->_conf->osd_pg_log_trim_max); + uint64_t num_to_trim = std::min(pg_log.get_log().approx_size() - target, + cct->_conf->osd_pg_log_trim_max); dout(10) << __func__ << " num_to_trim = " << num_to_trim << dendl; if (num_to_trim < cct->_conf->osd_pg_log_trim_min && cct->_conf->osd_pg_log_trim_max >= cct->_conf->osd_pg_log_trim_min) { @@ -1643,7 +1643,7 @@ void PrimaryLogPG::calc_trim_to() } list::const_iterator it = pg_log.get_log().log.begin(); eversion_t new_trim_to; - for (size_t i = 0; i < num_to_trim; ++i) { + for (uint64_t i = 0; i < num_to_trim; ++i) { new_trim_to = it->version; ++it; if (new_trim_to >= limit) { diff --git a/src/rgw/rgw_sync_log_trim.cc b/src/rgw/rgw_sync_log_trim.cc index f190a432c1c..69deff51cb1 100644 --- a/src/rgw/rgw_sync_log_trim.cc +++ b/src/rgw/rgw_sync_log_trim.cc @@ -351,7 +351,7 @@ int take_min_status(CephContext *cct, Iter first, Iter last, status->clear(); // The initialisation below is required to silence a false positive // -Wmaybe-uninitialized warning - boost::optional num_shards = boost::make_optional(false, 0UL); + boost::optional num_shards = boost::make_optional(false, uint64_t()); for (auto peer = first; peer != last; ++peer) { const size_t peer_shards = peer->size(); if (!num_shards) { diff --git a/src/test/rbd_mirror/test_ImageSync.cc b/src/test/rbd_mirror/test_ImageSync.cc index 5ef2cbe77a3..a9e3229b538 100644 --- a/src/test/rbd_mirror/test_ImageSync.cc +++ b/src/test/rbd_mirror/test_ImageSync.cc @@ -39,9 +39,9 @@ int flush(librbd::ImageCtx *image_ctx) { return ctx.wait(); } -void scribble(librbd::ImageCtx *image_ctx, int num_ops, size_t max_size) +void scribble(librbd::ImageCtx *image_ctx, int num_ops, uint64_t max_size) { - max_size = std::min(image_ctx->size, max_size); + max_size = std::min(image_ctx->size, max_size); for (int i=0; isize - max_size + 1); uint64_t len = 1 + rand() % max_size; -- 2.39.5