Boost logo

Boost-Build :

Subject: Re: [Boost-build] Baffling error message
From: Vladimir Prus (ghost_at_[hidden])
Date: 2011-04-01 11:45:28


On Friday, April 01, 2011 19:13:03 Steven Watanabe wrote:
> AMDG
>
> On 04/01/2011 07:21 AM, Dave Abrahams wrote:
> > At Fri, 01 Apr 2011 07:08:26 -0700,
> >
> > Steven Watanabe wrote:
> >> On 04/01/2011 05:31 AM, Dave Abrahams wrote:
> >>> Can anyone explain this error for me, and help me avoid it? The
> >>> command arguments are given here:
> >>>
> >>> *** in s:\: executing '['s:\\bjam.exe',
> >>> '--user-config=I:\\user-config.jam',
> >>> '--build-dir=I:\\1_46_1-installer\\build',
> >>> '--stagedir=I:\\1_46_1-installer\\stage', '--debug-configuration',
> >>> '-j2', 'debug', 'release',
> >>> 'threading=multi/link=shared,static/runtime-link=shared',
> >>> 'threading=multi,single/link=static/runtime-link=static', 'stage',
> >>> 'toolset=msvc-10.0express,msvc-9.0express,msvc-8.0express,msvc-7.1']'
> >>>
> >>> error: Duplicate name of actual
> >>> target:<pI:\1_46_1-installer\stage\lib>mpi.pyd
> >>
> >> The name of this library is not mangled,
> >> so you can't put two versions of it in
> >> the same directory.
> >
> > Thanks, Steven, but I have basically no idea what that means. I
> > didn't do anything special here other than issue the build command
> > above from the Boost root directory. I didn't try to put two versions
> > in the same directory, AFAIK.
>
> It looks like this is similar to
> http://lists.boost.org/Archives/boost/2009/11/158505.php
> It doesn't look like anything was done about this,
> and I don't think it would really solve your
> problem anyway. Here's the thing: You've asked
> to build with multiple toolsets and multiple
> configurations. Because of the way the mpi
> python extension is defined, only a single
> configuration can be installed. However,
> I don't think any single configuration is
> correct in this case. The best idea I have
> right now is
>
> 1) go to libs/mpi/build/Jamfile.v2 and add
> explicit mpi ;
> after the python-extension is declared.
> 2) Build everything else.
> 3) Figure out which variants of mpi.pyd you actually want to build.
> 4) Run bjam libs/mpi/build//mpi <other options>
> (You can leave out --stage-dir, it doesn't have any effect)
> 5) Find the binaries in build\libs\mpi\build\...\mpi.pyd and
> figure out where to put them

Note that I've asked Boost.MPI maintainers what to do, here:

        http://thread.gmane.org/gmane.comp.lib.boost.devel/213520/focus=213533

As you see, I haven't got an answer. Frankly, I think the right approach here
is to always build the extension using threading=multi variant=debug link=shared runtime-
link=shared.

- Volodya

-- 
Vladimir Prus
http://vladimir_prus.blogspot.com
Boost.Build: http://boost.org/boost-build2

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