bitcoin: Compilation error for windows target

I used git clean -dfx, rebuilt depends, still getting it:

CXX      libbitcoin_server_a-pow.o
  CXX      libbitcoin_server_a-rest.o
  CXX      rpc/libbitcoin_server_a-blockchain.o
gcc gen_context.o -o gen_context
./gen_context
  CC       src/libsecp256k1_la-secp256k1.lo
httpserver.cpp:69:10: error: ‘mutex’ in namespace ‘std’ does not name a type
     std::mutex cs;
          ^
httpserver.cpp:70:10: error: ‘condition_variable’ in namespace ‘std’ does not name a type
     std::condition_variable cond;
          ^
httpserver.cpp: In constructor ‘WorkQueue<WorkItem>::ThreadCounter::ThreadCounter(WorkQueue<WorkItem>&)’:
httpserver.cpp:83:29: error: ‘mutex’ is not a member of ‘std’
             std::lock_guard<std::mutex> lock(wq.cs);
                             ^
httpserver.cpp:83:29: note: suggested alternatives:
In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14,
                 from sync.h:11,
                 from httpserver.cpp:12:
/home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note:   ‘boost::mutex’
     class mutex:
           ^
In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31,
                 from util.h:29,
                 from httpserver.cpp:9:
/home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note:   ‘boost::signals2::mutex’
 class mutex
       ^
httpserver.cpp:83:29: error: ‘mutex’ is not a member of ‘std’
             std::lock_guard<std::mutex> lock(wq.cs);
                             ^
httpserver.cpp:83:29: note: suggested alternatives:
In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14,
                 from sync.h:11,
                 from httpserver.cpp:12:
/home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note:   ‘boost::mutex’
     class mutex:
           ^
In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31,
                 from util.h:29,
                 from httpserver.cpp:9:
/home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note:   ‘boost::signals2::mutex’
 class mutex
       ^
httpserver.cpp:83:39: error: template argument 1 is invalid
             std::lock_guard<std::mutex> lock(wq.cs);
                                       ^
httpserver.cpp:83:45: error: invalid type in declaration before ‘(’ token
             std::lock_guard<std::mutex> lock(wq.cs);
                                             ^
httpserver.cpp: In destructor ‘WorkQueue<WorkItem>::ThreadCounter::~ThreadCounter()’:
httpserver.cpp:88:29: error: ‘mutex’ is not a member of ‘std’
             std::lock_guard<std::mutex> lock(wq.cs);
                             ^
httpserver.cpp:88:29: note: suggested alternatives:
In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14,
                 from sync.h:11,
                 from httpserver.cpp:12:
/home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note:   ‘boost::mutex’
     class mutex:
           ^
In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31,
                 from util.h:29,
                 from httpserver.cpp:9:
/home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note:   ‘boost::signals2::mutex’
 class mutex
       ^
httpserver.cpp:88:29: error: ‘mutex’ is not a member of ‘std’
             std::lock_guard<std::mutex> lock(wq.cs);
                             ^
httpserver.cpp:88:29: note: suggested alternatives:
In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14,
                 from sync.h:11,
                 from httpserver.cpp:12:
/home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note:   ‘boost::mutex’
     class mutex:
           ^
In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31,
                 from util.h:29,
                 from httpserver.cpp:9:
/home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note:   ‘boost::signals2::mutex’
 class mutex
       ^
httpserver.cpp:88:39: error: template argument 1 is invalid
             std::lock_guard<std::mutex> lock(wq.cs);
                                       ^
httpserver.cpp:88:45: error: invalid type in declaration before ‘(’ token
             std::lock_guard<std::mutex> lock(wq.cs);
                                             ^
httpserver.cpp: In member function ‘bool WorkQueue<WorkItem>::Enqueue(WorkItem*)’:
httpserver.cpp:109:26: error: ‘mutex’ is not a member of ‘std’
         std::unique_lock<std::mutex> lock(cs);
                          ^
httpserver.cpp:109:26: note: suggested alternatives:
In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14,
                 from sync.h:11,
                 from httpserver.cpp:12:
/home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note:   ‘boost::mutex’
     class mutex:
           ^
In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31,
                 from util.h:29,
                 from httpserver.cpp:9:
/home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note:   ‘boost::signals2::mutex’
 class mutex
       ^
httpserver.cpp:109:26: error: ‘mutex’ is not a member of ‘std’
         std::unique_lock<std::mutex> lock(cs);
                          ^
httpserver.cpp:109:26: note: suggested alternatives:
In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14,
                 from sync.h:11,
                 from httpserver.cpp:12:
/home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note:   ‘boost::mutex’
     class mutex:
           ^
In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31,
                 from util.h:29,
                 from httpserver.cpp:9:
/home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note:   ‘boost::signals2::mutex’
 class mutex
       ^
httpserver.cpp:109:36: error: template argument 1 is invalid
         std::unique_lock<std::mutex> lock(cs);
                                    ^
httpserver.cpp:109:42: error: invalid type in declaration before ‘(’ token
         std::unique_lock<std::mutex> lock(cs);
                                          ^
httpserver.cpp:109:43: error: ‘cs’ was not declared in this scope
         std::unique_lock<std::mutex> lock(cs);
                                           ^
httpserver.cpp:114:9: error: ‘cond’ was not declared in this scope
         cond.notify_one();
         ^
httpserver.cpp: In member function ‘void WorkQueue<WorkItem>::Run()’:
httpserver.cpp:124:34: error: ‘mutex’ is not a member of ‘std’
                 std::unique_lock<std::mutex> lock(cs);
                                  ^
httpserver.cpp:124:34: note: suggested alternatives:
In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14,
                 from sync.h:11,
                 from httpserver.cpp:12:
/home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note:   ‘boost::mutex’
     class mutex:
           ^
In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31,
                 from util.h:29,
                 from httpserver.cpp:9:
/home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note:   ‘boost::signals2::mutex’
 class mutex
       ^
httpserver.cpp:124:34: error: ‘mutex’ is not a member of ‘std’
                 std::unique_lock<std::mutex> lock(cs);
                                  ^
httpserver.cpp:124:34: note: suggested alternatives:
In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14,
                 from sync.h:11,
                 from httpserver.cpp:12:
/home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note:   ‘boost::mutex’
     class mutex:
           ^
In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31,
                 from util.h:29,
                 from httpserver.cpp:9:
/home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note:   ‘boost::signals2::mutex’
 class mutex
       ^
httpserver.cpp:124:44: error: template argument 1 is invalid
                 std::unique_lock<std::mutex> lock(cs);
                                            ^
httpserver.cpp:124:50: error: invalid type in declaration before ‘(’ token
                 std::unique_lock<std::mutex> lock(cs);
                                                  ^
httpserver.cpp:124:51: error: ‘cs’ was not declared in this scope
                 std::unique_lock<std::mutex> lock(cs);
                                                   ^
httpserver.cpp:126:21: error: ‘cond’ was not declared in this scope
                     cond.wait(lock);
                     ^
httpserver.cpp: In member function ‘void WorkQueue<WorkItem>::Interrupt()’:
httpserver.cpp:138:26: error: ‘mutex’ is not a member of ‘std’
         std::unique_lock<std::mutex> lock(cs);
                          ^
httpserver.cpp:138:26: note: suggested alternatives:
In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14,
                 from sync.h:11,
                 from httpserver.cpp:12:
/home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note:   ‘boost::mutex’
     class mutex:
           ^
In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31,
                 from util.h:29,
                 from httpserver.cpp:9:
/home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note:   ‘boost::signals2::mutex’
 class mutex
       ^
httpserver.cpp:138:26: error: ‘mutex’ is not a member of ‘std’
         std::unique_lock<std::mutex> lock(cs);
                          ^
httpserver.cpp:138:26: note: suggested alternatives:
In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14,
                 from sync.h:11,
                 from httpserver.cpp:12:
/home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note:   ‘boost::mutex’
     class mutex:
           ^
In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31,
                 from util.h:29,
                 from httpserver.cpp:9:
/home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note:   ‘boost::signals2::mutex’
 class mutex
       ^
httpserver.cpp:138:36: error: template argument 1 is invalid
         std::unique_lock<std::mutex> lock(cs);
                                    ^
httpserver.cpp:138:42: error: invalid type in declaration before ‘(’ token
         std::unique_lock<std::mutex> lock(cs);
                                          ^
httpserver.cpp:138:43: error: ‘cs’ was not declared in this scope
         std::unique_lock<std::mutex> lock(cs);
                                           ^
httpserver.cpp:140:9: error: ‘cond’ was not declared in this scope
         cond.notify_all();
         ^
httpserver.cpp: In member function ‘void WorkQueue<WorkItem>::WaitExit()’:
httpserver.cpp:145:26: error: ‘mutex’ is not a member of ‘std’
         std::unique_lock<std::mutex> lock(cs);
                          ^
httpserver.cpp:145:26: note: suggested alternatives:
In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14,
                 from sync.h:11,
                 from httpserver.cpp:12:
/home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note:   ‘boost::mutex’
     class mutex:
           ^
In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31,
                 from util.h:29,
                 from httpserver.cpp:9:
/home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note:   ‘boost::signals2::mutex’
 class mutex
       ^
httpserver.cpp:145:26: error: ‘mutex’ is not a member of ‘std’
         std::unique_lock<std::mutex> lock(cs);
                          ^
httpserver.cpp:145:26: note: suggested alternatives:
In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14,
                 from sync.h:11,
                 from httpserver.cpp:12:
/home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note:   ‘boost::mutex’
     class mutex:
           ^
In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31,
                 from util.h:29,
                 from httpserver.cpp:9:
/home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note:   ‘boost::signals2::mutex’
 class mutex
       ^
httpserver.cpp:145:36: error: template argument 1 is invalid
         std::unique_lock<std::mutex> lock(cs);
                                    ^
httpserver.cpp:145:42: error: invalid type in declaration before ‘(’ token
         std::unique_lock<std::mutex> lock(cs);
                                          ^
httpserver.cpp:145:43: error: ‘cs’ was not declared in this scope
         std::unique_lock<std::mutex> lock(cs);
                                           ^
httpserver.cpp:147:13: error: ‘cond’ was not declared in this scope
             cond.wait(lock);
             ^
httpserver.cpp: In member function ‘size_t WorkQueue<WorkItem>::Depth()’:
httpserver.cpp:153:26: error: ‘mutex’ is not a member of ‘std’
         std::unique_lock<std::mutex> lock(cs);
                          ^
httpserver.cpp:153:26: note: suggested alternatives:
In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14,
                 from sync.h:11,
                 from httpserver.cpp:12:
/home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note:   ‘boost::mutex’
     class mutex:
           ^
In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31,
                 from util.h:29,
                 from httpserver.cpp:9:
/home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note:   ‘boost::signals2::mutex’
 class mutex
       ^
httpserver.cpp:153:26: error: ‘mutex’ is not a member of ‘std’
         std::unique_lock<std::mutex> lock(cs);
                          ^
httpserver.cpp:153:26: note: suggested alternatives:
In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/mutex.hpp:14:0,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/condition_variable.hpp:17,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/condition_variable.hpp:14,
                 from sync.h:11,
                 from httpserver.cpp:12:
/home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/thread/win32/mutex.hpp:25:11: note:   ‘boost::mutex’
     class mutex:
           ^
In file included from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/mutex.hpp:32:0,
                 from /home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/signal.hpp:31,
                 from util.h:29,
                 from httpserver.cpp:9:
/home/nicolasdorier/bitcoin/depends/x86_64-w64-mingw32/share/../include/boost/signals2/detail/lwm_win32_cs.hpp:68:7: note:   ‘boost::signals2::mutex’
 class mutex
       ^
httpserver.cpp:153:36: error: template argument 1 is invalid
         std::unique_lock<std::mutex> lock(cs);
                                    ^
httpserver.cpp:153:42: error: invalid type in declaration before ‘(’ token
         std::unique_lock<std::mutex> lock(cs);
                                          ^
httpserver.cpp:153:43: error: ‘cs’ was not declared in this scope
         std::unique_lock<std::mutex> lock(cs);
                                           ^
httpserver.cpp: At global scope:
httpserver.cpp:439:6: error: ‘thread’ in namespace ‘std’ does not name a type
 std::thread threadHTTP;
      ^
httpserver.cpp:440:19: error: aggregate ‘std::future<bool> threadResult’ has incomplete type and cannot be defined
 std::future<bool> threadResult;
                   ^
httpserver.cpp: In function ‘bool StartHTTPServer()’:
httpserver.cpp:447:67: error: variable ‘std::packaged_task<bool(event_base*, evhttp*)> task’ has initializer but incomplete type
     std::packaged_task<bool(event_base*, evhttp*)> task(ThreadHTTP);
                                                                   ^
httpserver.cpp:449:5: error: ‘threadHTTP’ was not declared in this scope
     threadHTTP = std::thread(std::move(task), eventBase, eventHTTP);
     ^
httpserver.cpp:449:18: error: ‘thread’ is not a member of ‘std’
     threadHTTP = std::thread(std::move(task), eventBase, eventHTTP);
                  ^
httpserver.cpp:452:9: error: ‘thread’ is not a member of ‘std’
         std::thread rpc_worker(HTTPWorkQueueRun, workQueue);
         ^
httpserver.cpp:453:9: error: ‘rpc_worker’ was not declared in this scope
         rpc_worker.detach();
         ^
httpserver.cpp: In function ‘void StopHTTPServer()’:
httpserver.cpp:493:9: error: ‘threadHTTP’ was not declared in this scope
         threadHTTP.join();
         ^
httpserver.cpp: In instantiation of ‘WorkQueue<WorkItem>::ThreadCounter::ThreadCounter(WorkQueue<WorkItem>&) [with WorkItem = HTTPClosure]’:
httpserver.cpp:120:34:   required from ‘void WorkQueue<WorkItem>::Run() [with WorkItem = HTTPClosure]’
httpserver.cpp:356:16:   required from here
httpserver.cpp:83:51: error: ‘class WorkQueue<HTTPClosure>’ has no member named ‘cs’
             std::lock_guard<std::mutex> lock(wq.cs);
                                                   ^
httpserver.cpp: In instantiation of ‘WorkQueue<WorkItem>::ThreadCounter::~ThreadCounter() [with WorkItem = HTTPClosure]’:
httpserver.cpp:120:34:   required from ‘void WorkQueue<WorkItem>::Run() [with WorkItem = HTTPClosure]’
httpserver.cpp:356:16:   required from here
httpserver.cpp:88:51: error: ‘class WorkQueue<HTTPClosure>’ has no member named ‘cs’
             std::lock_guard<std::mutex> lock(wq.cs);
                                                   ^
httpserver.cpp:90:13: error: ‘class WorkQueue<HTTPClosure>’ has no member named ‘cond’
             wq.cond.notify_all();
             ^
Makefile:5033: recipe for target 'libbitcoin_server_a-httpserver.o' failed
make[2]: *** [libbitcoin_server_a-httpserver.o] Error 1
make[2]: *** Waiting for unfinished jobs....
  CCLD     libsecp256k1.la
libtool: link: warning: undefined symbols not allowed in x86_64-w64-mingw32 shared libraries
/usr/bin/x86_64-w64-mingw32-ar: `u' modifier ignored since `D' is the default (see `U')
make[3]: Leaving directory '/home/nicolasdorier/bitcoin/src/secp256k1'
make[2]: Leaving directory '/home/nicolasdorier/bitcoin/src'
Makefile:8349: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/nicolasdorier/bitcoin/src'
Makefile:677: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1

About this issue

  • Original URL
  • State: closed
  • Created 8 years ago
  • Comments: 19 (11 by maintainers)

Most upvoted comments

Solved the issue.

Bitcoin uses g++, not gcc

$ sudo update-alternatives --config x86_64-w64-mingw32-g++

then select “2” for switching to posix and that’s it. Cleaning the environment or rebuilding dependencies were not necesseary.

Which version are you on ? On Ubuntu 16.04 you just need to install the toolchain:

sudo apt-get install g++-mingw-w64-i686 mingw-w64-i686-dev g++-mingw-w64-x86-64 mingw-w64-x86-64-dev