
Hi all.
One of our projects failed to build using the Boost 1.35 release and we traced it down to a compiler bug with MSVC 7.1. & 8.0. We have not tested any earlier compiler versions and MSVB 9.0 seems to have fixed the bug (and seems to compile the project in about half the time it took in MSVC 8.0 :-)))).
We found a fix that should be applied to boost/pool/detail/mutex.hpp:
The CRITICAL_SECTION type should be referenced using its fully qualified name '::CRITICAL_SECTION'.
I am attaching a suggested patch file for boost/pool/detail/mutex.hpp. If no problems are found with it should be applied to the trunk as well as the release branch for the upcoming 1.35.1 patch release.
The patch uses fully qualified names for other global Windows/posix API calls as well (e.g ::InitializeCriticalSection(), ::DeleteCriticalSection(), ::EnterCriticalSection(), ::LeaveCriticalSection()) but that does not have direct impact on this concrete bug.
Just pinging to make sure this patch does not get lost. It is quite simple, I see no way it could mess things up and it definitively solves compilation problems when compiling with MSVC 7.1 or 8.0, so should I commit it directly to the trunk?
Perhaps someone knows how and where to add the above example as a part of some regression test suite on MSVC 7.1 & 8.0?
Can anyone provide hints on where and how to add a test for this? The code should be simple - just the one given in the previous mail: #include "boost/archive/text_iarchive.hpp" #include "boost/pool/pool_alloc.hpp" int main() {} Best regards, Jurko Gospodnetić