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@gmail.com>
To: Larry E. Ramey <hydrajak@yahoo.com>; Boost.Build developer's and user's list <boost-build@lists.boost.org>
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