
There was a report on IRC that 1.41 beta fails to build with the following command: ./bjam threading=single,multi --with-python --with-mpi --layout=versioned because Boost.Build reports target name clash on stage/lib/mpi.so. And sure it does. The mpi Jamfiles specify that a Python extension called 'mpi' should be built if Python is available. However, nothing adjusts the name of python extension, so ST and MT variants get the same name, and clash. For all I know, this problem was there all the time, so holding 1.41 for it is not necessary. But still would be nice to fix, and for that, I need an opinion from either MPI or Python experts here. 1. Shall the name of extension module be adjusted? If so, how? I doublt that Python users will jump with joy if asked to do 'import mpi-mt-gd-gcc34'. 2. Shall a specific variant be pinned? 3. Anything else? Thanks, Volodya

on Mon Nov 16 2009, Vladimir Prus <vladimir-AT-codesourcery.com> wrote:
There was a report on IRC that 1.41 beta fails to build with the following command:
./bjam threading=single,multi --with-python --with-mpi --layout=versioned
because Boost.Build reports target name clash on stage/lib/mpi.so. And sure it does. The mpi Jamfiles specify that a Python extension called 'mpi' should be built if Python is available. However, nothing adjusts the name of python extension, so ST and MT variants get the same name, and clash.
For all I know, this problem was there all the time, so holding 1.41 for it is not necessary. But still would be nice to fix, and for that, I need an opinion from either MPI or Python experts here.
1. Shall the name of extension module be adjusted? If so, how? I doublt that Python users will jump with joy if asked to do 'import mpi-mt-gd-gcc34'. 2. Shall a specific variant be pinned? 3. Anything else?
Can't we build both variants with the same name but keep them in separate subdirectories? -- Dave Abrahams Meet me at BoostCon: http://www.boostcon.com BoostPro Computing http://www.boostpro.com

David Abrahams wrote:
on Mon Nov 16 2009, Vladimir Prus <vladimir-AT-codesourcery.com> wrote:
There was a report on IRC that 1.41 beta fails to build with the following command:
./bjam threading=single,multi --with-python --with-mpi --layout=versioned
because Boost.Build reports target name clash on stage/lib/mpi.so. And sure it does. The mpi Jamfiles specify that a Python extension called 'mpi' should be built if Python is available. However, nothing adjusts the name of python extension, so ST and MT variants get the same name, and clash.
For all I know, this problem was there all the time, so holding 1.41 for it is not necessary. But still would be nice to fix, and for that, I need an opinion from either MPI or Python experts here.
1. Shall the name of extension module be adjusted? If so, how? I doublt that Python users will jump with joy if asked to do 'import mpi-mt-gd-gcc34'. 2. Shall a specific variant be pinned? 3. Anything else?
Can't we build both variants with the same name but keep them in separate subdirectories?
We actually do *build* them in different directories, but what to do on install? Create stage/lib/debug/threading-multi/mpi.so ? - Volodya

Vladimir Prus wrote:
There was a report on IRC that 1.41 beta fails to build with the following command:
./bjam threading=single,multi --with-python --with-mpi --layout=versioned
because Boost.Build reports target name clash on stage/lib/mpi.so. And sure it does. The mpi Jamfiles specify that a Python extension called 'mpi' should be built if Python is available. However, nothing adjusts the name of python extension, so ST and MT variants get the same name, and clash.
For all I know, this problem was there all the time, so holding 1.41 for it is not necessary. But still would be nice to fix, and for that, I need an opinion from either MPI or Python experts here.
1. Shall the name of extension module be adjusted? If so, how? I doublt that Python users will jump with joy if asked to do 'import mpi-mt-gd-gcc34'. 2. Shall a specific variant be pinned? 3. Anything else?
Upon further discussion on IRC, it seems that the best way is to force threading=multi for the extension. Given that Python is pretty much guaranteed to support threading, this is the most useful variant. Any objections before I hack the code accordingly? - Volodya
participants (2)
-
David Abrahams
-
Vladimir Prus