Boost logo

Boost :

Subject: Re: [boost] [Signals] Build problem on Linux / ARM with GCC 3.4.4
From: vicente.botet (vicente.botet_at_[hidden])
Date: 2008-09-22 12:34:42


______________________
Vicente Juan Botet Escribá
----- Original Message -----
From: "Tobias Oberstein" <tobias.oberstein_at_[hidden]>
To: <boost_at_[hidden]>
Cc: <emil_at_[hidden]>
Sent: Monday, September 22, 2008 12:40 PM
Subject: Re: [boost] [Signals] Build problem on Linux / ARM with GCC 3.4.4

>I fixed the problem by patching
>
> boost/exception/enable_current_exception.hpp
>
> => inlined the templated function make_clone manually into the single
> call location, which is in class clone_impl.
>
> I'll attach the patch, don't know if it makes it through the list.
>
> Also: the problem was not at all Boost.Signal related .. some other libs
> didn't build either.
>
> Emil: thx for pointing me to the problematic file ..

Hi,

the function is declared firstly without the inline keyword

        template <class T>
        clone_base * make_clone( T const & );

and the defined as

        template <class T>
        inline
        clone_base *
        make_clone( T const & x )
            {
            try
                {
                return new exception_clone<T>(x);
                }
            catch(
            std::bad_alloc & )
                {
                static bad_alloc_impl bad_alloc;
                return &bad_alloc;
                }
            catch(
            ... )
                {
                BOOST_ASSERT(0);
                return 0;
                }
            }
        }

I would try to add inline to the declaration.

        template <class T>
        inline clone_base * make_clone( T const & );

Vicente


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk