Windows compilation updates / fixes (bitcoin-qt.pro) #976

pull Diapolo wants to merge 3 commits into bitcoin:master from Diapolo:win-compile-fixes changing 1 files +3 −3
  1. Diapolo commented at 5:07 PM on March 22, 2012: none

    The commit assumes we update the used Boost libs for Windows to version 1.49 to switch to the latest release.

    If we switch over to 1.49 on Windows, we need to add oleaut32 lib in bitcoin-qt.pro, to avoid the compilation error "undefined reference to _imp__VariantClear@4", because VariantClear() is used in the boost::interprocess code.

    In the end we would also need to update the qtgui_deps_1.zip with the 1.49 boost libs for Windows and the 1.49 pre-compiled header files.

  2. luke-jr commented at 5:18 PM on March 22, 2012: member

    Were you able to reproduce the crash before this change? I guess not, because this wasn't fixed in Boost until 1.48!

  3. Diapolo commented at 5:25 PM on March 22, 2012: none

    I debugged that crash during RC2 and it's clearly related to boost interprocess, see: https://bitcointalk.org/index.php?topic=66887.msg779221#msg779221. As I have never been able to compile bitcoin with the supplied 1.43 libs with the current Qt SDK I could simply not try to reproduce the error in the "lab", sorry.

  4. luke-jr commented at 5:36 PM on March 22, 2012: member

    How about using the stock release builds to try reproducing it?

  5. gavinandresen commented at 5:43 PM on March 22, 2012: contributor

    RC2 used the gitian build process, which uses Boost 1.47.

    See contrib/gitian-descriptors/gitian-win32.yml

    It WOULD be interesting to know if upgrading to the latest boost (1.49) fixes the problem.

  6. Diapolo commented at 6:42 PM on March 22, 2012: none

    @luke-jr: What you mean by stock release builds? @gavinandresen Is there a place to download the pre-compiled boost libs which were used in RC2? I would like to make a file-compare. Another thing that is weird for me ... why is 1_43 in the bitcoin-qt.pro and why does it compile on Gitian without that VariantClear error?

    I'll try to "crash" my PC by simply shutting it of, while I have a running instance of my version ... :-/.

    Which MinGW version is used in Gitian?

  7. Diapolo commented at 7:21 PM on March 22, 2012: none

    1.47:

    • switch off PC with running client, reboot, start client -> GUI freeze

    1.49:

    • switch off PC with running client, reboot, start client -> GUI freeze

    1.49 fixes one thing unrelated to Bitcoin on Windows, now C:\ProgramData\boost_interprocess\ is used instead of C:\ProgramData\boost_interprocess\Select LastBootUpTime from Win32_OperatingSystem\ ...

    So the problem still persists and I will investigate further!

  8. updated referenced boost libs version to 1.47 9baad301bb
  9. fix for undefined reference to _imp__VariantClear@4, when compiling with
    Boost 1.47 libs on Windows
    510f7fceb6
  10. updated to Boost 1.49 static lib usage 3daf1ff165
  11. Diapolo commented at 10:55 PM on March 22, 2012: none

    Boost 1.48 has a very nice fix to remove that strange "Select LastBootUpTime from Win32_OperatingSystem" directory (https://svn.boost.org/trac/boost/ticket/5392) used by boost interprocess on Windows and 1.49 includes more bugfixes for interprocess (http://www.boost.org/users/history/version_1_49_0.html).

    This does NOT solve #956, but as I said it has other fixes and at least the mentioned one that is beneficial for solving/debugging #956 further I think and yes I'm on the right track ^^.

  12. luke-jr commented at 3:02 AM on March 24, 2012: member

    I think this is missing the gitian changes to build/use the new version?

  13. Diapolo commented at 9:59 AM on March 24, 2012: none

    Sorry no, the commits are current and mergeable. What do you mean by gitian changes? A link or hint would be nice, still treat me like a newb :D, I'm learning everyday.

  14. gavinandresen commented at 3:14 PM on March 26, 2012: contributor

    gitian is the deterministic build system we use, that sets up a virtual machine environment with known versions of EVERYTHING and then builds in such a way that bit-for-bit identical .exes come out of multiple developer's machines. It means anybody can verify that we are using the source code we're saying we are to build the executables that we distribute (except for Mac, everybody has to trust me because we can't gitian-build the Mac release yet).

    Source code for the gitian-build process is in contrib/gitian-descriptors/ Windows builds use deps-win32.yml boost-win32.yml qt-win32.yml and gitian-win32.yml If you want builds to use a different version of something, you (or somebody) needs to change one or more of those files.

  15. Diapolo commented at 3:44 PM on March 26, 2012: none

    To summarize, the bitcoin-qt.pro file I edited is only of interest for people who compile it for themselves, like I currently do. So a change to that file is of no benefit for official releases, but at least helps others in compiling, right?

  16. Diapolo commented at 5:57 PM on April 10, 2012: none

    Closed, I'm using a modified version of this for my local version, seems unneeded here.

  17. Diapolo closed this on Apr 10, 2012

  18. burger2 referenced this in commit f21790526d on Nov 21, 2012
  19. gavinandresen referenced this in commit 0b37038d2b on Dec 10, 2012
  20. laudney referenced this in commit e42842ee3f on Mar 19, 2014
  21. suprnurd referenced this in commit 199bbf5071 on Dec 5, 2017
  22. ptschip referenced this in commit 54bc1e541b on Feb 26, 2018
  23. lateminer referenced this in commit 12de5ec1dc on Oct 30, 2019
  24. DrahtBot locked this on Sep 8, 2021

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-13 21:16 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me