Please consider the attached patch to be included into the 0.26 branch:
1. Fix for an ARM compile error
2. Turns the linearstore build off by default in cmake
Thanks,
Kim van der Riet
Index: cpp/src/linearstore.cmake
===================================================================
--- cpp/src/linearstore.cmake (revision 1545661)
+++ cpp/src/linearstore.cmake (working copy)
@@ -46,7 +46,7 @@
# allow linearstore to be built
#
message(STATUS "BerkeleyDB for C++, libaio and uuid found, Linearstore support enabled")
- set (linearstore_default ON)
+ #set (linearstore_default ON)
else (HAVE_UUID AND HAVE_UUID_H)
if (NOT HAVE_UUID)
message(STATUS "Linearstore requires uuid which is absent.")
Index: cpp/src/qpid/linearstore/jrnl/deq_rec.cpp
===================================================================
--- cpp/src/qpid/linearstore/jrnl/deq_rec.cpp (revision 1545661)
+++ cpp/src/qpid/linearstore/jrnl/deq_rec.cpp (working copy)
@@ -280,9 +280,11 @@
//_deq_hdr.hdr_copy(h);
::rec_hdr_copy(&_deq_hdr._rhdr, &h);
rd_cnt = sizeof(rec_hdr_t);
- _deq_hdr._deq_rid = *(uint64_t*)((char*)rptr + rd_cnt);
+ // = *(uint64_t*)((char*)rptr + rd_cnt);
+ std::memcpy((void*)&_deq_hdr._deq_rid, (char*)rptr + rd_cnt, sizeof(u_int64_t));
rd_cnt += sizeof(uint64_t);
- _deq_hdr._xidsize = *(std::size_t*)((char*)rptr + rd_cnt);
+ //_deq_hdr._xidsize = *(std::size_t*)((char*)rptr + rd_cnt);
+ std::memcpy((void*)&_deq_hdr._xidsize, (char*)rptr + rd_cnt, sizeof(std::size_t));
rd_cnt = sizeof(deq_hdr_t);
chk_hdr();
if (_deq_hdr._xidsize)
Index: cpp/src/qpid/linearstore/jrnl/enq_rec.cpp
===================================================================
--- cpp/src/qpid/linearstore/jrnl/enq_rec.cpp (revision 1545661)
+++ cpp/src/qpid/linearstore/jrnl/enq_rec.cpp (working copy)
@@ -352,12 +352,14 @@
//_enq_hdr.hdr_copy(h);
::rec_hdr_copy(&_enq_hdr._rhdr, &h);
rd_cnt = sizeof(rec_hdr_t);
- _enq_hdr._xidsize = *(std::size_t*)((char*)rptr + rd_cnt);
+ //_enq_hdr._xidsize = *(std::size_t*)((char*)rptr + rd_cnt);
+ std::memcpy((void*)&_enq_hdr._xidsize, (char*)rptr + rd_cnt, sizeof(std::size_t));
rd_cnt += sizeof(std::size_t);
#if defined(JRNL_32_BIT)
rd_cnt += sizeof(uint32_t); // Filler 0
#endif
- _enq_hdr._dsize = *(std::size_t*)((char*)rptr + rd_cnt);
+ //_enq_hdr._dsize = *(std::size_t*)((char*)rptr + rd_cnt);
+ std::memcpy((void*)&_enq_hdr._dsize, (char*)rptr + rd_cnt, sizeof(std::size_t));
rd_cnt = sizeof(enq_hdr_t);
chk_hdr();
if (_enq_hdr._xidsize + (::is_enq_external(&_enq_hdr) ? 0 : _enq_hdr._dsize))
Index: cpp/src/qpid/linearstore/jrnl/txn_rec.cpp
===================================================================
--- cpp/src/qpid/linearstore/jrnl/txn_rec.cpp (revision 1545661)
+++ cpp/src/qpid/linearstore/jrnl/txn_rec.cpp (working copy)
@@ -263,7 +263,8 @@
#if defined(JRNL_BIG_ENDIAN) && defined(JRNL_32_BIT)
rd_cnt += sizeof(uint32_t); // Filler 0
#endif
- _txn_hdr._xidsize = *(std::size_t*)((char*)rptr + rd_cnt);
+ //_txn_hdr._xidsize = *(std::size_t*)((char*)rptr + rd_cnt);
+ std::memcpy((void*)&_txn_hdr._xidsize, (char*)rptr + rd_cnt, sizeof(std::size_t));
rd_cnt = sizeof(txn_hdr_t);
chk_hdr();
_buff = std::malloc(_txn_hdr._xidsize);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]