Bitcoin QT not Opening

Comparing two bitcoin-qt.exes the first difference is at offset 0xD8. This is likely some timestamp part of the PE header:

+0000 00D0: 00 E0 7F 01 00 04 00 00 0E 22 7F 01 02 00 40 01 ........ ."....@. -0000 00D0: 00 E0 7F 01 00 04 00 00 99 43 7F 01 02 00 40 01 ........ .C....@. There is also a large non-matching tract 01270E70....014A1000. This contains image data and text and appear to be the compiled Qt resources. Possibly an ordering issue.

Edit: the field at 0xD8 (PE_header+0x58) is a 16-bit checksum. It makes sense for this to not match. So the problem is fully in the compiled Qt resources.

Edit.2: Yep, the qrc_bitcoin.cpp as generated by Qt's rcc is different every time. It appears to pick a random ordering of files easily reproduced with ~/staging32/host/bin/rcc --list bitcoin.qrc.

Edit.3: The Qt4 resource compiler does not do this randomization, as we still use Qt4 on Linux this explains why this only happens on Windows. Looking into a way around this Qt5 'feature'.

Edit.4: Oh joy, all of this is due to a QHash security fix. Every run of an executable, the ordering is different. . They shouldn't be using a QHash here but some ordered dictionary...

Edit.5: I think I found a way to override the behavior without patching Qt rcc source (for now) by setting QT_RCC_TEST=1.

Bitcoin QT won't open

Bitcoin-qt Not Syncing

Bitcoin QT out of sync

Bitcoin QT solo mining

Bitcoin QT on USB