problem compiling rtt-trunk

Hi,

when compiling RTT from trunk on my macbook I get the following error:

[ 88%] Building CXX object src/CMakeFiles/orocos-rtt-
dynamic_macosx.dir/scripting/PeerParser.o
/opt/local/include/boost/iterator/iterator_adaptor.hpp: In function
'void boost::detail::iterator_adaptor_assert_traversal() [with Tr1 =
boost::forward_traversal_tag, Tr2 =
boost::random_access_traversal_tag]':
/opt/local/include/boost/iterator/iterator_adaptor.hpp:335:
instantiated from 'void boost::iterator_adaptor Traversal, Reference, Difference>::advance(typename
boost::detail::iterator_adaptor_base Reference, Difference>::type::difference_type) [with Derived =
boost::spirit::position_iterator boost::spirit::file_position_base, boost::spirit::nil_t>,
Base = RTT::our_iterator_t, Value = const char, Traversal =
boost::forward_traversal_tag, Reference = boost::use_default,
Difference = boost::use_default]'
/opt/local/include/boost/iterator/iterator_facade.hpp:546:
instantiated from 'static void
boost::iterator_core_access::advance(Facade&, typename
Facade::difference_type) [with Facade =
boost::spirit::position_iterator boost::spirit::file_position_base, boost::spirit::nil_t>]'
/opt/local/include/boost/iterator/iterator_facade.hpp:694:
instantiated from 'Derived& boost::iterator_facade D>::operator+=(Difference) [with Derived =
boost::spirit::position_iterator boost::spirit::file_position_base, boost::spirit::nil_t>,
Value = const char, CategoryOrTraversal =
boost::forward_traversal_tag, Reference = const char&, Difference =
ptrdiff_t]'
/Users/Fiep/orocos/rtt/src/scripting/PeerParser.cpp:68: instantiated
from here
/opt/local/include/boost/iterator/iterator_adaptor.hpp:230: error:
invalid application of 'sizeof' to incomplete type
'boost::STATIC_ASSERTION_FAILURE'
make[2]: *** [src/CMakeFiles/orocos-rtt-dynamic_macosx.dir/scripting/
PeerParser.o] Error 1
make[1]: *** [src/CMakeFiles/orocos-rtt-dynamic_macosx.dir/all] Error 2
make: *** [all] Error 2

Boost is the latest version: 1.37.0
MakePorts:1.7.0
Cmake: 2.6.2

Any ideas,

Tinne

problem compiling rtt-trunk

On Dec 17, 2008, at 05:28 , Tinne De Laet wrote:

> Hi,
>
> when compiling RTT from trunk on my macbook I get the following error:
>
> [ 88%] Building CXX object src/CMakeFiles/orocos-rtt-
> dynamic_macosx.dir/scripting/PeerParser.o
> /opt/local/include/boost/iterator/iterator_adaptor.hpp: In function
> 'void boost::detail::iterator_adaptor_assert_traversal() [with Tr1 =
> boost::forward_traversal_tag, Tr2 =
> boost::random_access_traversal_tag]':
> /opt/local/include/boost/iterator/iterator_adaptor.hpp:335:
> instantiated from 'void boost::iterator_adaptor > Value, Traversal, Reference, Difference>::advance(typename
> boost::detail::iterator_adaptor_base > Traversal, Reference, Difference>::type::difference_type) [with
> Derived = boost::spirit::position_iterator > boost::spirit::file_position_base,
> boost::spirit::nil_t>, Base = RTT::our_iterator_t, Value = const
> char, Traversal = boost::forward_traversal_tag, Reference =
> boost::use_default, Difference = boost::use_default]'
> /opt/local/include/boost/iterator/iterator_facade.hpp:546:
> instantiated from 'static void
> boost::iterator_core_access::advance(Facade&, typename
> Facade::difference_type) [with Facade =
> boost::spirit::position_iterator > boost::spirit::file_position_base,
> boost::spirit::nil_t>]'
> /opt/local/include/boost/iterator/iterator_facade.hpp:694:
> instantiated from 'Derived& boost::iterator_facade > D>::operator+=(Difference) [with Derived =
> boost::spirit::position_iterator > boost::spirit::file_position_base,
> boost::spirit::nil_t>, Value = const char, CategoryOrTraversal =
> boost::forward_traversal_tag, Reference = const char&, Difference =
> ptrdiff_t]'
> /Users/Fiep/orocos/rtt/src/scripting/PeerParser.cpp:68:
> instantiated from here
> /opt/local/include/boost/iterator/iterator_adaptor.hpp:230: error:
> invalid application of 'sizeof' to incomplete type
> 'boost::STATIC_ASSERTION_FAILURE'
> make[2]: *** [src/CMakeFiles/orocos-rtt-dynamic_macosx.dir/scripting/
> PeerParser.o] Error 1
> make[1]: *** [src/CMakeFiles/orocos-rtt-dynamic_macosx.dir/all]
> Error 2
> make: *** [all] Error 2
>
>
> Boost is the latest version: 1.37.0
> MakePorts:1.7.0
> Cmake: 2.6.2

My setup is not as up to date, so I can't test this myself. What
version of gcc is this?

The Boost crowd is _always_ breaking external projects, they really do
seem to like living on the bleeding edge ... :-(
S

Ruben Smits's picture

problem compiling rtt-trunk

On 17 Dec 2008, at 13:46, S Roderick wrote:

> On Dec 17, 2008, at 05:28 , Tinne De Laet wrote:
>
>> Hi,
>>
>> when compiling RTT from trunk on my macbook I get the following
>> error:
>>
>> [ 88%] Building CXX object src/CMakeFiles/orocos-rtt-
>> dynamic_macosx.dir/scripting/PeerParser.o
>> /opt/local/include/boost/iterator/iterator_adaptor.hpp: In function
>> 'void boost::detail::iterator_adaptor_assert_traversal() [with Tr1 =
>> boost::forward_traversal_tag, Tr2 =
>> boost::random_access_traversal_tag]':
>> /opt/local/include/boost/iterator/iterator_adaptor.hpp:335:
>> instantiated from 'void boost::iterator_adaptor >> Value, Traversal, Reference, Difference>::advance(typename
>> boost::detail::iterator_adaptor_base >> Traversal, Reference, Difference>::type::difference_type) [with
>> Derived = boost::spirit::position_iterator >> boost::spirit::file_position_base,
>> boost::spirit::nil_t>, Base = RTT::our_iterator_t, Value = const
>> char, Traversal = boost::forward_traversal_tag, Reference =
>> boost::use_default, Difference = boost::use_default]'
>> /opt/local/include/boost/iterator/iterator_facade.hpp:546:
>> instantiated from 'static void
>> boost::iterator_core_access::advance(Facade&, typename
>> Facade::difference_type) [with Facade =
>> boost::spirit::position_iterator >> boost::spirit::file_position_base,
>> boost::spirit::nil_t>]'
>> /opt/local/include/boost/iterator/iterator_facade.hpp:694:
>> instantiated from 'Derived& boost::iterator_facade >> D>::operator+=(Difference) [with Derived =
>> boost::spirit::position_iterator >> boost::spirit::file_position_base,
>> boost::spirit::nil_t>, Value = const char, CategoryOrTraversal =
>> boost::forward_traversal_tag, Reference = const char&, Difference =
>> ptrdiff_t]'
>> /Users/Fiep/orocos/rtt/src/scripting/PeerParser.cpp:68:
>> instantiated from here
>> /opt/local/include/boost/iterator/iterator_adaptor.hpp:230: error:
>> invalid application of 'sizeof' to incomplete type
>> 'boost::STATIC_ASSERTION_FAILURE'
>> make[2]: *** [src/CMakeFiles/orocos-rtt-dynamic_macosx.dir/scripting/
>> PeerParser.o] Error 1
>> make[1]: *** [src/CMakeFiles/orocos-rtt-dynamic_macosx.dir/all]
>> Error 2
>> make: *** [all] Error 2
>>
>>
>> Boost is the latest version: 1.37.0
>> MakePorts:1.7.0
>> Cmake: 2.6.2
>
> My setup is not as up to date, so I can't test this myself. What
> version of gcc is this?
>
> The Boost crowd is _always_ breaking external projects, they really do
> seem to like living on the bleeding edge ... :-(

I'm having the exact same problem, it did work with boost 1.35, it
stopped working with boost 1.37,

my setup is the same as Tinnes,
gcc: i686-apple-darwin9-gcc-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5490)

i'm going to try with boost 1.37 on my ubuntu 8.10 system, just to
make sure it due to boost.

Ruben

>
> S

Ruben Smits's picture

problem compiling rtt-trunk

On 17 Dec 2008, at 13:55, Ruben Smits wrote:

>
> On 17 Dec 2008, at 13:46, S Roderick wrote:
>
>> On Dec 17, 2008, at 05:28 , Tinne De Laet wrote:
>>
>>> Hi,
>>>
>>> when compiling RTT from trunk on my macbook I get the following
>>> error:
>>>
>>> [ 88%] Building CXX object src/CMakeFiles/orocos-rtt-
>>> dynamic_macosx.dir/scripting/PeerParser.o
>>> /opt/local/include/boost/iterator/iterator_adaptor.hpp: In function
>>> 'void boost::detail::iterator_adaptor_assert_traversal() [with Tr1 =
>>> boost::forward_traversal_tag, Tr2 =
>>> boost::random_access_traversal_tag]':
>>> /opt/local/include/boost/iterator/iterator_adaptor.hpp:335:
>>> instantiated from 'void boost::iterator_adaptor >>> Value, Traversal, Reference, Difference>::advance(typename
>>> boost::detail::iterator_adaptor_base >>> Traversal, Reference, Difference>::type::difference_type) [with
>>> Derived = boost::spirit::position_iterator >>> boost::spirit::file_position_base,
>>> boost::spirit::nil_t>, Base = RTT::our_iterator_t, Value = const
>>> char, Traversal = boost::forward_traversal_tag, Reference =
>>> boost::use_default, Difference = boost::use_default]'
>>> /opt/local/include/boost/iterator/iterator_facade.hpp:546:
>>> instantiated from 'static void
>>> boost::iterator_core_access::advance(Facade&, typename
>>> Facade::difference_type) [with Facade =
>>> boost::spirit::position_iterator >>> boost::spirit::file_position_base,
>>> boost::spirit::nil_t>]'
>>> /opt/local/include/boost/iterator/iterator_facade.hpp:694:
>>> instantiated from 'Derived& boost::iterator_facade >>> D>::operator+=(Difference) [with Derived =
>>> boost::spirit::position_iterator >>> boost::spirit::file_position_base,
>>> boost::spirit::nil_t>, Value = const char, CategoryOrTraversal =
>>> boost::forward_traversal_tag, Reference = const char&, Difference =
>>> ptrdiff_t]'
>>> /Users/Fiep/orocos/rtt/src/scripting/PeerParser.cpp:68:
>>> instantiated from here
>>> /opt/local/include/boost/iterator/iterator_adaptor.hpp:230: error:
>>> invalid application of 'sizeof' to incomplete type
>>> 'boost::STATIC_ASSERTION_FAILURE'
>>> make[2]: *** [src/CMakeFiles/orocos-rtt-dynamic_macosx.dir/
>>> scripting/
>>> PeerParser.o] Error 1
>>> make[1]: *** [src/CMakeFiles/orocos-rtt-dynamic_macosx.dir/all]
>>> Error 2
>>> make: *** [all] Error 2
>>>
>>>
>>> Boost is the latest version: 1.37.0
>>> MakePorts:1.7.0
>>> Cmake: 2.6.2
>>
>> My setup is not as up to date, so I can't test this myself. What
>> version of gcc is this?
>>
>> The Boost crowd is _always_ breaking external projects, they really
>> do
>> seem to like living on the bleeding edge ... :-(
>
> I'm having the exact same problem, it did work with boost 1.35, it
> stopped working with boost 1.37,
>
> my setup is the same as Tinnes,
> gcc: i686-apple-darwin9-gcc-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5490)
>
> i'm going to try with boost 1.37 on my ubuntu 8.10 system, just to
> make sure it due to boost.

Ok, i have the same problem on ubuntu 8.10 with boost 1.37,

it is the following that causes the build to fail:

boost/iterator/iterator_adaptor.hpp:230: error: invalid application of
‘sizeof’ to incomplete type ‘boost::STATIC_ASSERTION_FAILURE

some googling learned me that this is cause by trying an assert on a
non-class:

Quote:

The latest version of boost/static_assert.hpp uses the fact that
sizeof(T) is pretty much guaranteed to show T in the error message
when T is an incomplete type (STATIC_ASSERTION_FAILURE in the
case of Boost.) The header file is full of if-defery that makes my
eyes bleed.

this probably means there is something wrong with the iterators we use
in the parser:

this line caused the problem:
---
scan.first += advance_on_error;
---
scan.first is an iter_t (see parser-types.hpp, line 161)
advance_on_error is an std::ptrdiff_t

and than i get lost in the code. I have absolutely no idea were the
problem comes from.

Ruben
>
> Ruben
>
>>
>> S

problem compiling rtt-trunk

>
> On 17 Dec 2008, at 13:55, Ruben Smits wrote:
>
>>
>> On 17 Dec 2008, at 13:46, S Roderick wrote:
>>
>>> On Dec 17, 2008, at 05:28 , Tinne De Laet wrote:
>>>
>>>> Hi,
>>>>
>>>> when compiling RTT from trunk on my macbook I get the following
>>>> error:

Submit a bug report. We'll track the issue in there.

Peter