doublethinkco / cpp-ethereum-cross

Scripts for cross-building cpp-ethereum (C++ Ethereum client)
http://doublethink.co/
Apache License 2.0
27 stars 11 forks source link

Build break - armel - invalid use of incomplete type 'class std::future<void> #111

Open bobsummerwill opened 7 years ago

bobsummerwill commented 7 years ago
[ 75%] /home/crosseth/eth/wd/cpp-ethereum/test/libethereum/test/TestHelper.cpp: In function 'void dev::test::testMiningFunc(void (*)())':
/home/crosseth/eth/wd/cpp-ethereum/test/libethereum/test/TestHelper.cpp:1101:79: error: invalid use of incomplete type 'class std::future<void>'
   auto future = std::async(std::launch::async, &std::thread::join, &threadTest);
                                                                               ^

Looks like it's an issue with the use of std::future on this particular architecture.

This is brand new code from @winsvega for adding the dots to keep TravisCI alive, which is obviously constraining portability. We should probably do something simpler with std::thread instead.

This particular error log is for the armel cross-build (armv5) but it looks like there are probably more.

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64735

bobsummerwill commented 7 years ago

One of the two instances of this has been removed upstream (mining timeouts).

The other (the dots) remains for now, but we'll look at this too.

bobsummerwill commented 4 years ago

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64735

Was fixed in 2017, so this might not be an issue anymore, if the GCC within the Docker image was updated accordingly.