Ticket #8817 (closed Bugs: fixed)
Boost Thread Windows CE _createthreadex handling breaks mingw w64
|Reported by:||Andrew Ho <helloworld922@…>||Owned by:||viboes|
The applicable code:
#ifndef BOOST_HAS_THREADEX // Windows CE doesn't define _beginthreadex typedef void* uintptr_t; // ... more code #endif
For some reason mingw-w64 will evaluate this code. This redefines uintptr_t (as well as _beginthreadex related code), which causes the build to fail.
This post has a solution which avoids defining uintptr_t at all, and is targeted specifically for Windows CE rather than some arbitrary BOOST_HAS_THREADEX macro define.
I've created a patch which incorporates the fix and it does compile with mingw-w64 (mingw-builds, gcc 4.8.1 targeting windows x64), and doesn't break building with VS2012 (really shouldn't break any VS builds targeting Win32).
I don't know when the problem first occurs, but I do know that it fails in 1.53.0 all the way to trunk (my current working directory is r85020).
- Owner changed from anthonyw to johnmaddock
- Component changed from thread to config
- Keywords MinGW uintptr_t added
- Owner changed from johnmaddock to anthonyw
- Component changed from config to thread
comment:10 Changed 8 months ago by viboes
- Owner changed from anthonyw to viboes
- Status changed from new to assigned
- Version changed from Boost Development Trunk to Boost 1.54.0
- Milestone changed from To Be Determined to Boost 1.55.0