Describe the issue
ENV: Debian 8.6 Amd64 , GCC4.9.2, bitcoin-v0.13.1
PROBLEM: I cloned V0.13.1 to my computer, and changed some keyword, such as abc to xyz, as my working project. I have done anything, and made it work. the first run bitcoin-dt , it work, but I rerun bitcoin-dt, it reported a CRC32 error.
Opening LevelDB in /home/chengc/.xyzcoin/chainstate Corruption: checksum mismatch
So, I traced source ,and modified crc32c.cc, as skipping all "STEP4" stempments, in Value() function, it work well.
And I checked my team member's working env. he tell me he working with Ubuntu16,04 and GCC++ V5.2, and no such problem.
*** I think, may be some difference between GCC 4,9 and GCC 5.2 for bit operation
Can you reliably reproduce the issue?
If so, please list the steps to reproduce below:
- Debian 8.6, gcc 4.9.2
- make ,
- run bitcoin-qt twice
Expected behaviour
Opening LevelDB in /home/chengc/.xyzcoin/chainstate Corruption: checksum mismatch
Actual behaviour
"crc32c.cc" [Modified] line 314 of 333 remark all STEP4 as this
#if false // *** DISABLE ALL STEP4 // Process bytes 16 at a time while ((e-p) >= 16) { STEP4; STEP4; STEP4; STEP4; } // Process bytes 4 at a time while ((e-p) >= 4) { STEP4; } #endif // Process the last few bytes while (p != e) { STEP1; }