This adds -DBOOST_CHRONO_HEADER_ONLY to the makefiles, to fix a compiler error I ran across doing pre-0.8.2 builds in my OSX 10.6 build environment (and that I saw reported by other people).
Compile with -DBOOST_CHRONO_HEADER_ONLY for maximum compatibility #2633
pull gavinandresen wants to merge 1 commits into bitcoin:master from gavinandresen:boost_chrono_headeronly changing 4 files +5 −3-
gavinandresen commented at 1:59 PM on May 9, 2013: contributor
-
Diapolo commented at 2:26 PM on May 9, 2013: none
You should perhaps also add this for bitcoin-qt.pro I guess.
-
BitcoinPullTester commented at 2:31 PM on May 9, 2013: none
Automatic sanity-testing: FAILED BUILD/TEST, see http://jenkins.bluematt.me/pull-tester/f1560d9fe0e00f875353237f6d0224acc3bab07a for binaries and test log.
This could happen for one of several reasons:
- It chanages paths in makefile.linux-mingw or otherwise changes build scripts in a way that made them incompatible with the automated testing scripts (please tweak those patches in contrib/test-scripts)
- It adds/modifies tests which test network rules (thanks for doing that), which conflicts with a patch applied at test time
- It does not build on either Linux i386 or Win32 (via MinGW cross compile)
- The test suite fails on either Linux i386 or Win32
- The block test-cases failed (lookup the first bNN identifier which failed in https://github.com/TheBlueMatt/test-scripts/blob/master/FullBlockTestGenerator.java)
If you believe this to be in error, please ping BlueMatt on freenode or TheBlueMatt here.
This test script verifies pulls every time they are updated. It, however, dies sometimes and fails to test properly. If you are waiting on a test, please check timestamps to verify that the test.log is moving at http://jenkins.bluematt.me/pull-tester/current/ Contact BlueMatt on freenode if something looks broken.
-
jgarzik commented at 2:51 PM on May 9, 2013: contributor
Please paste the compiler error into the commit. The details about what this solves remain vague.
-
sipa commented at 2:51 PM on May 9, 2013: member
@TheBlueMatt do these error messages mean that -DBOOST_CHRONO_HEADER_ONLY doesn't work on Windows? We can just disable it there, as we link with boost_chrono on Windows anyway.
-
TheBlueMatt commented at 3:35 PM on May 9, 2013: member
Hmm... "error: WinError.h: No such file or directory" maybe a mingw issue?
-
TheBlueMatt commented at 3:38 PM on May 9, 2013: member
In any case, it did try to use ERROR_NOT_SUPPORTED, so I suppose it may be trying to call some error handler...
-
gavinandresen commented at 6:23 PM on May 9, 2013: contributor
Bah.
Linking against the boost chrono library on all platforms is another option; we should be consistent.
FYI: error is:
Undefined symbols: "boost::chrono::steady_clock::now()", referenced from: boost::cv_status boost::condition_variable::wait_for<long long, boost::ratio<1ll, 1000000000ll> >(boost::unique_lockboost::mutex&, boost::chrono::duration<long long, boost::ratio<1ll, 1000000000ll> > const&)in bitcoinrpc.o boost::cv_status boost::condition_variable::wait_for<long long, boost::ratio<1ll, 1000000000ll> >(boost::unique_lockboost::mutex&, boost::chrono::duration<long long, boost::ratio<1ll, 1000000000ll> > const&)in bitcoinrpc.o "boost::chrono::system_clock::now()", referenced from: boost::cv_status boost::condition_variable::wait_for<long long, boost::ratio<1ll, 1000000000ll> >(boost::unique_lockboost::mutex&, boost::chrono::duration<long long, boost::ratio<1ll, 1000000000ll> > const&)in bitcoinrpc.o
-
fdcc3f1aee
Link with boost_chrono library on all platforms
Some versions of the boost thread library need the boost chrono library to avoid linker errors like: Undefined symbols: "boost::chrono::steady_clock::now()", referenced from: boost::cv_status boost::condition_variable::wait_for<long long, boost::ratio<1ll, 1000000000ll> >(boost::unique_lock<boost::mutex>&, boost::chrono::duration<long long, boost::ratio<1ll, 1000000000ll> > const&)in bitcoinrpc.o The windows builds already linked with boost_chrono and the OSX 10.5-compatible build was failing. This pull makes the boost libraries we link against consistent on Windows/OSX/Linux. -
BitcoinPullTester commented at 8:19 PM on May 9, 2013: none
Automatic sanity-testing: FAILED BUILD/TEST, see http://jenkins.bluematt.me/pull-tester/fdcc3f1aee11701668d841cadd54c63be9526d73 for binaries and test log.
This could happen for one of several reasons:
- It chanages paths in makefile.linux-mingw or otherwise changes build scripts in a way that made them incompatible with the automated testing scripts (please tweak those patches in contrib/test-scripts)
- It adds/modifies tests which test network rules (thanks for doing that), which conflicts with a patch applied at test time
- It does not build on either Linux i386 or Win32 (via MinGW cross compile)
- The test suite fails on either Linux i386 or Win32
- The block test-cases failed (lookup the first bNN identifier which failed in https://github.com/TheBlueMatt/test-scripts/blob/master/FullBlockTestGenerator.java)
If you believe this to be in error, please ping BlueMatt on freenode or TheBlueMatt here.
This test script verifies pulls every time they are updated. It, however, dies sometimes and fails to test properly. If you are waiting on a test, please check timestamps to verify that the test.log is moving at http://jenkins.bluematt.me/pull-tester/current/ Contact BlueMatt on freenode if something looks broken.
-
gavinandresen commented at 9:02 PM on May 9, 2013: contributor
frickin frackin....
Ok, so -DBOOST_CHRONO_HEADERONLY breaks the Windows build. Linking against boost_chrono breaks the Linux build.
I suppose we'll have to live with being inconsistent, and link boost_chrono on Windows/OSX but not Linux.
- gavinandresen closed this on May 9, 2013
- gavinandresen deleted the branch on Nov 4, 2013
- DrahtBot locked this on Sep 8, 2021