Boost logo

Boost Users :

Subject: Re: [Boost-users] [boost.build] multiple definitions of symbols at link since revision 49800.
From: Vladimir Prus (vladimir_at_[hidden])
Date: 2008-12-10 10:44:26


Nigel Dyer wrote:

> Hello
>
> I am using the trunk release of boost, and started having problems with
> multiple definitions of symbols during linking (see example linker output
> below). I can cure the problem by removing the change to
> tools\build\v2\build\generators.jam introduced in revision 49800.
>
> It only seems to occur if the following headers:
>
> #include <boost/test/floating_point_comparison.hpp>
> #include <boost/lambda/lambda.hpp>
> #include <boost/lambda/bind.hpp>
>
> are included in precompiled headers which are included in cpp files that are
> created by the antlr parser generator. It occurs on a compilation with
> darwin, but not msvc.
>
> It is unclear whether the generator.jam change has identified a waekness in
> the boost libraries, or there is a problem with the revision 49800 change
> that only surfaces in obscure circumstances, or the change has highlighted a
> problem in my code. It can be fixed by removing the includes from the
> precompiled header. I feel this should not be necessary

It appears that some compiler bug is triggered by this change, but it's not yet clear how.

Can you:

1. Produce a minimal example that reproduce this problem, and post it as archive of
some common format.

2. Run

        bjam -n -a

on your project, both with and without r49800, capture the output in both cases, and
post them.

3. Confirm that the change shown in

        https://svn.boost.org/trac/boost/changeset?new=49800%40trunk&old=49793%40trunk

is indeed the change that appears to be problematic.

Thanks,
Volodya


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net