Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#31864 closed defect (fixed)

Boost @1.47.0 rev. 2 fails to build with openmpi variant on Mac OS X Lion 10.7.2 with Xcode 4.2

Reported by: maehne (Torsten Maehne) Owned by: adfernandes (Andrew Fernandes)
Priority: Normal Milestone:
Component: ports Version: 2.0.3
Keywords: openmpi Cc:
Port: boost

Description

After a port selfupdate and port upgrade outdated, I installed gcc45 successfully. Then, I installed openmpi @1.5.4_0+gcc45+progressthreads+threads after applying the patch in ticket #31244 to its Portfile. With these preparations, I tried to build Boost 1.47.0 using the following command to specify the variants:

sudo port -v install boost +debug +openmpi +python27 +regex_match_extra

I get the following error:

...
--->  Applying patches to boost
--->  Applying /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/devel/boost/files/patch-tools_build_v2_engine_src_build.sh.diff
DEBUG: Environment: CPATH='/opt/local/include' CC_PRINT_OPTIONS_FILE='/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_boost/boost/work/.CC_PRINT_OPTIONS' LIBRARY_PATH='/opt/local/lib' CC_PRINT_OPTIONS='YES' MACOSX_DEPLOYMENT_TARGET='10.7'
DEBUG: Assembled command: 'cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_boost/boost/work/boost_1_47_0" && /usr/bin/patch -p0'
DEBUG: Executing command line:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_boost/boost/work/boost_1_47_0" && /usr/bin/patch -p0 < '/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/devel/boost/files/patch-tools_build_v2_engine_src_build.sh.diff'
patching file tools/build/v2/engine/build.sh
...skipping...
error: Duplicate name of actual target: <pstage/lib>mpi.so
...

The full build log is attached. I've been able to build successfully the boost port leaving out the openmpi variant:

sudo port -v install boost +debug +python27 +regex_match_extra

As indicated in the summary, I observed this behavior under Mac OS X Lion 10.7.2 with Xcode 4.2.

Attachments (1)

boost_build.log (88.1 KB) - added by maehne (Torsten Maehne) 12 years ago.
Boost build log

Download all attachments as: .zip

Change History (6)

Changed 12 years ago by maehne (Torsten Maehne)

Attachment: boost_build.log added

Boost build log

comment:1 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: adfernandes@… removed
Owner: changed from macports-tickets@… to adfernandes@…

comment:2 Changed 12 years ago by adfernandes (Andrew Fernandes)

Ah. I see the problem. You can't build the debug variants with the openmpi or python variants. That's a limitation of the boost build system. I'll update the Portfile with a 'conflicts' clause shortly.

comment:3 Changed 12 years ago by adfernandes (Andrew Fernandes)

Resolution: fixed
Status: newclosed

fixed in r87834

comment:4 Changed 12 years ago by maehne (Torsten Maehne)

Thank you for looking into this. I'm surprised that the python variants are also conflicting with the debug variant, as I built Boost 1.47.0 with the following variants:

$ port installed boost
The following ports are currently installed:
  boost @1.47.0_2+debug+python27+regex_match_extra

without noticing any errors during the compilation/installation via MacPorts. Though, I have to admit that I didn't use the Python part of Boost yet.

comment:5 Changed 12 years ago by adfernandes (Andrew Fernandes)

Huh - others have had mixed results. The problem is (as it always is) the boost build system. It does not know how to build/install both a normal and debug version of the shared objects that python and mpi use. What (often) happens is it just gets confused about which objects need to be built when.

I could never pin down if it was debug/mpi, debug/python, or debug/python+mpi that triggered the problem, and it seemed different for different people. Hence the removal of the debug option.

Besides, heck... if you're l337 enough to understand boost debugging, you won't be intimidated by a custom boost build... :-)

Note: See TracTickets for help on using tickets.