[config] additions for gcc 4.0.1 and IBM V11.1.0.0 due to MSM compile errors

Hi, I'm trying to see how far I can bring more compilers to compile MSM and I noticed that these 2 compilers might have a chance to work: - On gcc 4.0.1, most regression tests (for example: http://www.boost.org/development/tests/trunk/developer/output/Sandia-darwin-...) fail because in msm/back/state_machine.hpp, the nested struct add_state cannot access the private function set_containing_sm. IIUC this should be BOOST_NO_NESTED_FRIENDSHIP. Correct? If yes, could we add this macro for gcc 4.0.1 (unfortunately, no idea about 4.0.1 - 4.2 but I suppose this will concern all 4.0.x)? - Again on the regression tests, the IBM compiler shows the same problem and furthermore does not accept that the struct: template <class Fsm,class Stt, class Event, class Compile> friend struct dispatch_table can have access to a private method of the befriended class. Again, IIUC, this seems to me to be BOOST_NO_MEMBER_TEMPLATE_FRIENDS. I don't find a file for this compiler in config/compiler. Am I missing something? Frankly, I'm slightly wary of changing myself the config files so I'd really appreciate some help here. Thanks, Christophe

I'm trying to see how far I can bring more compilers to compile MSM and I noticed that these 2 compilers might have a chance to work:
- On gcc 4.0.1, most regression tests (for example: http://www.boost.org/development/tests/trunk/developer/output/Sandia-darwin-...) fail because in msm/back/state_machine.hpp, the nested struct add_state cannot access the private function set_containing_sm. IIUC this should be BOOST_NO_NESTED_FRIENDSHIP. Correct? If yes, could we add this macro for gcc 4.0.1 (unfortunately, no idea about 4.0.1 - 4.2 but I suppose this will concern all 4.0.x)?
- Again on the regression tests, the IBM compiler shows the same problem and furthermore does not accept that the struct:
template <class Fsm,class Stt, class Event, class Compile> friend struct dispatch_table
can have access to a private method of the befriended class. Again, IIUC, this seems to me to be BOOST_NO_MEMBER_TEMPLATE_FRIENDS. I don't find a file for this compiler in config/compiler. Am I missing something?
The compiler file for this compiler is boost/config/compiler/vacpp.hpp. If in doubt about stuff like this, then go to the config tests and look at the config_info results for the compiler in question - it gives you this information and much much more: http://www.boost.org/development/tests/trunk/developer/output/IBM_Canada_Ltd... The problem I have is that these compilers are passing the tests for these macros. I've just committed a stricter version of the test for BOOST_NO_NESTED_FRIENDSHIP in case this is an Apple GCC specific problem, as both the updated tests and the msm tests pass for me here with Linux gcc-4.0.4. I haven't tried gcc-4.0.1 on Linux as it means yet another gcc build and install.... I'll leave that to you to try :-) Do you have a stricter test case than we currently use for BOOST_NO_MEMBER_TEMPLATE_FRIENDS that more closely represents MSM's usage? Ah... just looked at the error messages and I'm not sure these are related to that macro or not? You could try emailing the IBM test-runners directly - they're quite helpful at tracking down issues like this - just don't tell anyone ;-) Cheers, John.
participants (2)
-
Christophe Henry
-
John Maddock