Boost logo

Boost-Build :

Subject: Re: [Boost-build] cross compiling
From: Larry E. Ramey (hydrajak_at_[hidden])
Date: 2012-10-17 18:44:11


So I've got one last issue: The #s between the #### are BOOST_MSVC and _MSVC_VER print outs using the preprocessor just to make sure I know what code is getting compiled. The warnings can be ignored, they are a very irritating warning that MS spews all the time with dlls and the STL. It seems to me that the MSVC_VER is high enough that we shouldn't need the workaround, but for whatever reason named_slot_map can't seem to find the right function when it compiles that template. This code compiles just fine using the 2012 x86 command prompt, (which also is _MSVC_VER=1700) so I'm wondering if there is a header file that has some magic jiggery involving partial template overloading or something and it simply doesn't recognize the combination of _M_ARM and MSVC_VER=1700 or whatnot. I understand if you tell me to go over to boost.iterator's mailing list and ask there.... compile-c-c++ bin.v2\libs\signals\build\msvc-11.0\debug\architecture-arm\threading-multi\named_slot_map.obj named_slot_map.cpp c:\try2\boost_1_51_0\boost/signals/connection.hpp(118) : warning C4251: 'boost::signals::connection::con' : class 'boost::shared_ptr<T>' nee ds to have dll-interface to be used by clients of class 'boost::signals::connection'         with         [             T=boost::signals::detail::basic_connection         ] ################################## 1700 1700 ################################## c:\try2\boost_1_51_0\boost/signals/detail/named_slot_map.hpp(153) : warning C4251: 'boost::signals::detail::named_slot_map_iterator::group' : class 'std::_Tree_iterator<_Mytree>' needs to have dll-interface to be used by clients of class 'boost::signals::detail::named_slot_map_it erator'         with         [             _Mytree=std::_Tree_val<std::_Tree_simple_types<std::pair<const boost::signals::detail::stored_group,boost::signals::detail::name d_slot_map_iterator::group_list>>>         ] c:\try2\boost_1_51_0\boost/signals/detail/named_slot_map.hpp(154) : warning C4251: 'boost::signals::detail::named_slot_map_iterator::last_gr oup' : class 'std::_Tree_iterator<_Mytree>' needs to have dll-interface to be used by clients of class 'boost::signals::detail::named_slot_m ap_iterator'         with         [             _Mytree=std::_Tree_val<std::_Tree_simple_types<std::pair<const boost::signals::detail::stored_group,boost::signals::detail::name d_slot_map_iterator::group_list>>>         ] c:\try2\boost_1_51_0\boost/signals/detail/named_slot_map.hpp(155) : warning C4251: 'boost::signals::detail::named_slot_map_iterator::slot_' : class 'std::_List_iterator<_Mylist>' needs to have dll-interface to be used by clients of class 'boost::signals::detail::named_slot_map_it erator'         with         [             _Mylist=std::_List_val<std::_List_simple_types<boost::signals::detail::connection_slot_pair>>         ] c:\try2\boost_1_51_0\boost/signals/detail/named_slot_map.hpp(187) : warning C4251: 'boost::signals::detail::named_slot_map::groups' : class 'std::map<_Kty,_Ty,_Pr>' needs to have dll-interface to be used by clients of class 'boost::signals::detail::named_slot_map'         with         [             _Kty=boost::signals::detail::stored_group,             _Ty=boost::signals::detail::named_slot_map_iterator::group_list,             _Pr=boost::signals::detail::compare_type         ] c:\try2\boost_1_51_0\boost/signals/detail/named_slot_map.hpp(188) : warning C4251: 'boost::signals::detail::named_slot_map::back' : class 's td::_Tree_iterator<_Mytree>' needs to have dll-interface to be used by clients of class 'boost::signals::detail::named_slot_map'         with         [             _Mytree=std::_Tree_val<std::_Tree_simple_types<std::pair<const boost::signals::detail::stored_group,boost::signals::detail::name d_slot_map_iterator::group_list>>>         ] c:\try2\boost_1_51_0\boost/iterator/iterator_facade.hpp(534) : error C2039: 'decrement' : is not a member of 'boost::signals::detail::named_ slot_map_iterator'         c:\try2\boost_1_51_0\boost/signals/detail/named_slot_map.hpp(81) : see declaration of 'boost::signals::detail::named_slot_map_iterat or'         c:\try2\boost_1_51_0\boost/iterator/iterator_facade.hpp(685) : see reference to function template instantiation 'void boost::iterato r_core_access::decrement<Derived>(Facade &)' being compiled         with         [             Derived=boost::signals::detail::named_slot_map_iterator,             Facade=boost::signals::detail::named_slot_map_iterator         ]         c:\try2\boost_1_51_0\boost/iterator/iterator_facade.hpp(684) : while compiling class template member function 'boost::signals::detai l::named_slot_map_iterator &boost::iterator_facade<Derived,Value,CategoryOrTraversal>::operator --(void)'         with         [             Derived=boost::signals::detail::named_slot_map_iterator,             Value=boost::signals::detail::connection_slot_pair,             CategoryOrTraversal=boost::forward_traversal_tag         ]         c:\try2\boost_1_51_0\boost/signals/detail/named_slot_map.hpp(85) : see reference to class template instantiation 'boost::iterator_fa cade<Derived,Value,CategoryOrTraversal>' being compiled         with         [             Derived=boost::signals::detail::named_slot_map_iterator,             Value=boost::signals::detail::connection_slot_pair,             CategoryOrTraversal=boost::forward_traversal_tag         ] ________________________________ From: Steven Watanabe <watanabesj_at_[hidden]> To: Larry E. Ramey <hydrajak_at_[hidden]>; Boost.Build developer's and user's list <boost-build_at_[hidden]> Sent: Monday, October 15, 2012 9:56 PM Subject: Re: [Boost-build] cross compiling AMDG On 10/15/2012 04:39 PM, Larry E. Ramey wrote: > OK, we are almost there. When I execute now, it seems to recognize msvc and arm as a valid combo. But for some reason it is trying to execute the .rsp files, which of course windows doesn't know how to run and thus brings up the "how would you like to open this file" dialog. > The problem is that the compiler is expanding to nothing (thus leaving the .rsp as the first component on the command line). This indicates that $(cpu-conditions) isn't matching anything. I'm not sure why.  You might want to add ECHO cpu-conditions: $(cpu-conditions) ; before all the toolset.flags calls to check that it has the expected value.  If that looks okay, you can try --debug-building to check the build properties.  (This will generate a ridiculous amount of output.  You can use --with-system to limit it to one library) > > Its just my wild guess but I think maybe there should be a $VAR_NAME in front of the files ( has_icu_test.obj.rsp is the first one) that executes that file (probably cmd.exe or something?). > > > I'm happy to try to read how to fix this, but the boost build docs are pretty.... obscure. :) > One problem is that you created a special toolset version for msvc.  Just use 11.0 as the version and pass architecture=arm when building. In summary, what you should have is: user-config.jam: using msvc : 11.0 ; command line: ./b2 toolset=msvc-11.0 architecture=arm link=shared threading=multi runtime-link=shared variant=debug,release --without-context (I'm being very explicit here. Some of this can be abbreviated.) In Christ, Steven Watanabe



Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk