summaryrefslogtreecommitdiffstats
path: root/debian/patches/32bit-avoid-size_t.patch
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--debian/patches/32bit-avoid-size_t.patch112
1 files changed, 112 insertions, 0 deletions
diff --git a/debian/patches/32bit-avoid-size_t.patch b/debian/patches/32bit-avoid-size_t.patch
new file mode 100644
index 00000000..1917577c
--- /dev/null
+++ b/debian/patches/32bit-avoid-size_t.patch
@@ -0,0 +1,112 @@
+Description: Avoid use of size_t when necessary
+ On 32 bit architectures size_t is not a 64 bit type, which
+ causes comparison mismatch failures during compilation.
+Author: James Page <james.page@ubuntu.com>, Bernd Zeimetz <bzed@debian.org>
+Forwarded: no
+
+Index: ceph/src/osd/PrimaryLogPG.cc
+===================================================================
+--- ceph.orig/src/osd/PrimaryLogPG.cc
++++ ceph/src/osd/PrimaryLogPG.cc
+@@ -1611,7 +1611,7 @@ int PrimaryLogPG::do_scrub_ls(MOSDOp *m,
+
+ void PrimaryLogPG::calc_trim_to()
+ {
+- size_t target = cct->_conf->osd_min_pg_log_entries;
++ uint64_t target = cct->_conf->osd_min_pg_log_entries;
+ if (is_degraded() ||
+ state_test(PG_STATE_RECOVERING |
+ PG_STATE_RECOVERY_WAIT |
+@@ -1627,15 +1627,15 @@ void PrimaryLogPG::calc_trim_to()
+ if (limit != eversion_t() &&
+ limit != pg_trim_to &&
+ pg_log.get_log().approx_size() > target) {
+- 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);
+ 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) {
+ return;
+ }
+ list<pg_log_entry_t>::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) {
+Index: ceph/src/os/bluestore/BlueFS.h
+===================================================================
+--- ceph.orig/src/os/bluestore/BlueFS.h
++++ ceph/src/os/bluestore/BlueFS.h
+@@ -72,7 +72,7 @@ public:
+ * @params
+ * alloc_size - allocation unit size to check
+ */
+- virtual size_t available_freespace(uint64_t alloc_size) = 0;
++ virtual uint64_t available_freespace(uint64_t alloc_size) = 0;
+ };
+
+ class BlueFSVolumeSelector {
+Index: ceph/src/os/bluestore/BlueStore.cc
+===================================================================
+--- ceph.orig/src/os/bluestore/BlueStore.cc
++++ ceph/src/os/bluestore/BlueStore.cc
+@@ -5930,12 +5930,12 @@ int BlueStore::allocate_bluefs_freespace
+ return 0;
+ }
+
+-size_t BlueStore::available_freespace(uint64_t alloc_size) {
+- size_t total = 0;
+- auto iterated_allocation = [&](size_t off, size_t len) {
++uint64_t BlueStore::available_freespace(uint64_t alloc_size) {
++ uint64_t total = 0;
++ auto iterated_allocation = [&](uint64_t off, uint64_t len) {
+ //only count in size that is alloc_size aligned
+- size_t dist_to_alignment;
+- size_t offset_in_block = off & (alloc_size - 1);
++ uint64_t dist_to_alignment;
++ uint64_t offset_in_block = off & (alloc_size - 1);
+ if (offset_in_block == 0)
+ dist_to_alignment = 0;
+ else
+Index: ceph/src/os/bluestore/BlueStore.h
+===================================================================
+--- ceph.orig/src/os/bluestore/BlueStore.h
++++ ceph/src/os/bluestore/BlueStore.h
+@@ -3107,7 +3107,7 @@ private:
+ PExtentVector& extents) override {
+ return allocate_bluefs_freespace(min_size, size, &extents);
+ };
+- size_t available_freespace(uint64_t alloc_size) override;
++ uint64_t available_freespace(uint64_t alloc_size) override;
+
+ public:
+ struct sb_info_t {
+Index: ceph/src/common/config_values.h
+===================================================================
+--- ceph.orig/src/common/config_values.h
++++ ceph/src/common/config_values.h
+@@ -50,7 +50,7 @@ public:
+ #define OPTION_OPT_U32(name) uint64_t name;
+ #define OPTION_OPT_U64(name) uint64_t name;
+ #define OPTION_OPT_UUID(name) uuid_d name;
+-#define OPTION_OPT_SIZE(name) size_t name;
++#define OPTION_OPT_SIZE(name) uint64_t name;
+ #define OPTION(name, ty) \
+ public: \
+ OPTION_##ty(name)
+Index: ceph/src/common/options.cc
+===================================================================
+--- ceph.orig/src/common/options.cc
++++ ceph/src/common/options.cc
+@@ -189,7 +189,7 @@ int Option::parse_value(
+ }
+ *out = uuid;
+ } else if (type == Option::TYPE_SIZE) {
+- Option::size_t sz{strict_iecstrtoll(val.c_str(), error_message)};
++ Option::size_t sz{static_cast<std::size_t>(strict_iecstrtoll(val.c_str(), error_message))};
+ if (!error_message->empty()) {
+ return -EINVAL;
+ }