
On 21 Oct 2013 at 20:45, Edward Diener wrote:
Be aware that I found any Mingw after the one based on GCC 4.6.4 is broken with Boost in various unhelpful ways (e.g. generating assembler ops its assembler won't accept). In fact, of course, Mingw with GCC 4.6 was also broken (e.g. <atomic> does not implement actually atomic operations), but it had been around long enough people had patched for it.
Do you know Which Boost libraries are broken with MingW using gcc 4.6.4 on up ?
Mingw with GCC 4.6.4 works okay. It's what my Jenkins CI uses for Mingw pre-commit testing.
I have tested some of my own things on trunk with MingW and gcc-4.7.0 and gcc.4.7.2 and they are testing OK, so I want to understand what Boost code is broken.
I'm sure things will be different for different people, but there was certainly a GCC 4.7.x based Mingw that forgot to feed -march=i486 to its assembler, so if you did anything needing atomic instructions it barfed. I also found a showstopping ICE with my code on a GCC 4.8.x based Mingw which kinda ruled it out for me. I went back to the GCC 4.6.4 based Mingw. It's reliable.
Mingw-w64 is absolutely fine though, and I very strongly recommend its use over traditional Mingw. Mingw-w64 was so trouble free that it just worked for me first time, which was quite a novel experience.
I will try this out also. Thanks !
My only complaint with Mingw-w64 (I used the GCC 4.8 based version) is that it dislikes the MSVC idiom of using {0} or {sizeof(struct)} to zero initialise structures. It still compiles them, but it warns and you get a ton of those warnings. You could disable just that warning, but if I remember there are instances where you really do want to see that warning. That said, they'd get lost in the noise on Mingw. Other than that, my experience was good. Niall -- Currently unemployed and looking for work. Work Portfolio: http://careers.stackoverflow.com/nialldouglas/