Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 267818 - dev-libs/boost:1.37 doesn't discover mpich2 as valid mpi Suimplementation
Summary: dev-libs/boost:1.37 doesn't discover mpich2 as valid mpi Suimplementation
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Unspecified (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: C++ Team [disbanded]
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-04-28 23:25 UTC by Maciej Piechotka
Modified: 2009-05-14 07:26 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
paludis --info boost (boost.info,21.67 KB, text/plain)
2009-05-06 12:57 UTC, Maciej Piechotka
Details
unstupidify bjam (boost-1.37.0-r1.ebuild.patch,693 bytes, patch)
2009-05-09 10:37 UTC, Łukasz Michalik
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Maciej Piechotka 2009-04-28 23:25:52 UTC
The bug have been discovered when setting the boost:
# eselect boost set 1                                               
Removing symlinks from old version
Creating symlinks for boost-1.37/default
!!! Error: "/usr/lib/libboost_mpi-1_37.a" listed as target does not exist
zsh: killed     eselect boost set 1

(error from line 87).

The strange thing is that the [ -e "/usr/lib/libboost_mpi-1_37.a" ]; echo $? is evaluated to 1 on zsh and bash despite existence of this file.
Comment 1 Maciej Piechotka 2009-04-28 23:28:49 UTC
Forgotten 'emerge --info':

Package app-shells/zsh-4.3.9:0::gentoo:

        >>> Running ebuild phase killold as paludisbuild:paludisbuild...
        >>> Starting builtin_killold
        >>> Done builtin_killold
        >>> Completed ebuild phase killold
        >>> Running ebuild phases initmisc infovars as paludisbuild:paludisbuild...
        >>> Starting builtin_initmisc
        >>> Done builtin_initmisc
        >>> Starting builtin_infovars
        ACCEPT_KEYWORDS=x86
        CBUILD=i686-pc-linux-gnu
        CFLAGS=-Os -mtune=pentium-m -march=pentium-m -mfpmath=sse -pipe -momit-leaf-frame-pointer -ggdb -w -ftree-vectorize -ftree-loop-optimize -ftree-loop-linear -freorder-blocks-and-partition -fgcse-sm -fgcse-las -fgcse-after-reload -ftracer -maccumulate-outgoing-args -findirect-inlining -floop-interchange -floop-block -floop-strip-mine
        CHOST=i686-pc-linux-gnu
        CONFIG_PROTECT= 
        CONFIG_PROTECT_MASK= 
        CPPFLAGS=
        CTARGET=
        CXXFLAGS=-Os -mtune=pentium-m -march=pentium-m -mfpmath=sse -pipe -momit-leaf-frame-pointer -ggdb -w -ftree-vectorize -ftree-loop-optimize -ftree-loop-linear -freorder-blocks-and-partition -fgcse-sm -fgcse-las -fgcse-after-reload -ftracer -maccumulate-outgoing-args -findirect-inlining -floop-interchange -floop-block -floop-strip-mine
        DISTDIR=/var/tmp/distfiles
        FEATURES=collision-protect cvs digest multilib-strict sign splitdebug stricter userpriv usersandbox
        FFLAGS=
        GENTOO_MIRRORS=
        INSTALL_MASK=
        LANG=
        LC_ALL=C
        LDFLAGS=-Wl,-O1 -Wl,--as-needed -Wl,--hash-style=both -Wl,--sort-common
        LINGUAS=en_GB en_US pl
        MAKEOPTS=
        PORTAGE_COMPRESS=
        PORTAGE_COMPRESS_FLAGS=
        PORTAGE_CONFIGROOT=
        PORTAGE_RSYNC_EXTRA_OPTS=
        PORTAGE_RSYNC_OPTS=
        PORTAGE_TMPDIR=/var/tmp/paludis
        PORTDIR=/usr/portage
        PORTDIR_OVERLAY=
        SYNC=
        USE=caps gdbm maildir pcre unicode x86 alsa_cards_atiixp alsa_pcm_plugins_dmix alsa_pcm_plugins_dshare alsa_pcm_plugins_empty alsa_pcm_plugins_ioplug alsa_pcm_plugins_null apache2_modules_actions apache2_modules_alias apache2_modules_auth_basic apache2_modules_authn_alias apache2_modules_authn_anon apache2_modules_authn_dbm apache2_modules_authn_default apache2_modules_authn_file apache2_modules_authz_dbm apache2_modules_authz_default apache2_modules_authz_groupfile apache2_modules_authz_host apache2_modules_authz_owner apache2_modules_authz_user apache2_modules_autoindex apache2_modules_cache apache2_modules_dav apache2_modules_dav_fs apache2_modules_dav_lock apache2_modules_deflate apache2_modules_dir apache2_modules_disk_cache apache2_modules_env apache2_modules_expires apache2_modules_ext_filter apache2_modules_file_cache apache2_modules_filter apache2_modules_headers apache2_modules_include apache2_modules_info apache2_modules_log_config apache2_modules_logio apache2_modules_mem_cache apache2_modules_mime apache2_modules_mime_magic apache2_modules_negotiation apache2_modules_rewrite apache2_modules_setenvif apache2_modules_speling apache2_modules_status apache2_modules_unique_id apache2_modules_userdir apache2_modules_usertrack apache2_modules_vhost_alias cameras_panasonic elibc_glibc input_devices_evdev kernel_linux lcd_devices_bayrad lcd_devices_cfontz lcd_devices_cfontz633 lcd_devices_glk lcd_devices_hd44780 lcd_devices_lb216 lcd_devices_lcdm001 lcd_devices_mtxorb lcd_devices_ncurses lcd_devices_text linguas_en_GB linguas_en_US linguas_pl netbeans_modules_ide netbeans_modules_java netbeans_modules_websvccommon userland_GNU video_cards_radeon x86 
        >>> Done builtin_infovars
        >>> Completed ebuild phases initmisc infovars
        >>> Running ebuild phase tidyup as paludisbuild:paludisbuild...
        >>> Starting builtin_tidyup
        rm -fr /var/tmp/paludis/app-shells-zsh-4.3.9-info
        >>> Done builtin_tidyup
        >>> Completed ebuild phase tidyup
Comment 2 Łukasz Michalik 2009-05-06 08:09:24 UTC
-e tests return non-zero on symlinks pointing to cloacae.  libboost_mpi-1_37.a should point at libboost_mpi-mt-1_37.a, so if that isn't true with your install or that target doesn't exist, it's a different problem, in which case it'd be nicer if you attached full paludis --info boost.
Comment 3 Maciej Piechotka 2009-05-06 12:57:42 UTC
Created attachment 190500 [details]
paludis --info boost
Comment 4 Łukasz Michalik 2009-05-06 13:43:10 UTC
You seem to be using boost from gcc-porting repository, could please try reproducing with the one from the official tree?
Comment 5 Maciej Piechotka 2009-05-07 05:10:47 UTC
(In reply to comment #4)
> You seem to be using boost from gcc-porting repository, could please try
> reproducing with the one from the official tree?
> 

Reproduced
Comment 6 Łukasz Michalik 2009-05-08 07:20:22 UTC
Thanks.  Let's start from the beginning: paste the output of `ls -l /usr/lib/libboost_mpi-*1_37.a' please.
Comment 7 Maciej Piechotka 2009-05-08 07:55:42 UTC
# ls -l /usr/lib/libboost_mpi-*1_37.a
lrwxrwxrwx 1 root root 22 2009-05-06 17:46 /usr/lib/libboost_mpi-1_37.a -> libboost_mpi-mt-1_37.a
Comment 8 Łukasz Michalik 2009-05-08 08:27:00 UTC
For whatever reason there, mpi lib is uninstalled although requested.  I do realize building boost takes some cycles and time, but would that be possible for you to provide full build logs, output of `qcheck dev-libs/boost', and current output of `paludis -q boost:1.37 sys-cluster/openmpi sys-cluster/mpich2'.
Comment 9 Maciej Piechotka 2009-05-08 08:47:42 UTC
#  qcheck dev-libs/boost
Checking dev-libs/boost-1.37.0-r1 ...
  * 7581 out of 7581 files are good
# paludis -q boost:1.37 sys-cluster/openmpi sys-cluster/mpich2
* dev-libs/boost:1.37
    gentoo:                  1.37.0(~r) 1.37.0-r1(~r) {:1.37} 
    installed:               1.37.0-r1* {:1.37} 
    gcc-porting:             1.37.0-r1(~r) {:1.37} 
    Description:             Boost Libraries for C++
    Homepage:                http://www.boost.org/
    License:                 freedist Boost-1.0
    Installed time:          Wed May  6 15:48:13 2009
    Use flags:               (-debug) (-doc) (-eselect) (expat) (-icu) (mpi) (python) (-tools)
    From repositories:       gentoo
    Installed using:         paludis-0.36.1

* sys-cluster/openmpi
    gentoo:                  1.2.6-r1 1.2.9 1.3.2(~)* {:0} 
    layman:                  (1.2.8 (in ::science))X (1.2.9 (in ::science))X (1.3 (in ::science))X (1.3.1 (in ::science))X {:0} 
    Homepage:                http://www.open-mpi.org
    Description:             A high-performance message passing library (MPI)
    Herds:                   hp-cluster
    Maintainers:             jsbronder@gentoo.org
    Use flags:               cxx -debug fortran -heterogeneous ipv6 -mpi-threads -pbs -romio threads Build Options: -optional_tests split strip

* sys-cluster/mpich2
    gentoo:                  1.0.3 1.0.3-r1(~) 1.0.6(~) 1.0.8 {:0} 
    installed:               1.0.8* {:0} 
    layman:                  (1.0.8-r1 (in ::science))X {:0} 
    Description:             MPICH2 - A portable MPI implementation
    Homepage:                http://www-unix.mcs.anl.gov/mpi/mpich2
    License:                 as-is
    Installed time:          Fri Apr 24 01:26:23 2009
    Use flags:               (cxx) (-debug) (-doc) (fortran) (-mpi-threads) (-pvfs2) (-romio) (threads)
    From repositories:       gentoo
    Installed using:         paludis-0.36.0

Key to mask reasons:

* X: unavailable
* r: repository (overridden)
* ~: keyword (unstable accepted)

(please note that I upgraded buck to one from gcc-porting. If needed I'' report the same informations for portage's).
Comment 10 Maciej Piechotka 2009-05-08 08:57:04 UTC
Ups. It is from mainline ;)
Comment 11 Łukasz Michalik 2009-05-08 09:20:32 UTC
Ahh, I see what's wrong:

 *    -sEXPAT_INCLUDE=/usr/include -sEXPAT_LIBPATH=/usr/lib64 --user-config="/var/tmp/paludis/build/dev-libs-boost-1.37.0-r1/work/boost_1_37_0/user-config.jam" --boost-build=/usr/share/boost-build-1_37 --prefix="/var/tmp/paludis/build/dev-libs-boost-1.37.0-r1/image//usr" --layout=versioned
MPI auto-detection failed: unknown wrapper compiler mpic++
Please report this error to the Boost mailing list: http://www.boost.org
You will need to manually configure MPI support.
warning: skipping optional Message Passing Interface (MPI) library.
note: to enable MPI support, add "using mpi ;" to user-config.jam.

mpich2 installs mpicxx, but not mpic++, which bjam fails to find.  There's probably some bjam way to make it use the other one.  I'll try figuring it out later today.  As I'm not reporter or assignee, could you change summary field to something like 'dev-libs/boost:1.37 doesn't discover mpich2 as valid mpi implementation'?  Also, thanks for your great cooperation!

@Tiziano: other thing I've found is that we should dep upon mpich2[cxx] there too.
Comment 12 Maciej Piechotka 2009-05-08 09:30:37 UTC
Summary changed as requested.
Comment 13 Łukasz Michalik 2009-05-09 10:37:00 UTC
Created attachment 190747 [details, diff]
unstupidify bjam

Ok, this one makes bjam use what it's supposed to use, however that only delays us from hitting http://trac.mcs.anl.gov/projects/mpich2/ticket/467 .  For the time being it'd be therefore advised to use openmpi instead.
Comment 14 Tiziano Müller (RETIRED) gentoo-dev 2009-05-13 19:20:29 UTC
Ok. Reduced dependency to openmpi[cxx] for now. Thanks for the analysis.
Comment 15 Łukasz Michalik 2009-05-14 07:26:25 UTC
Heh, thanks to wonder consistency science people presented here, we totally misunderstood each other ;).  Point is, mpich2, which doesn't want to work with us, has a 'cxx' flag, and the working openmpi has a 'nocxx' which we want to keep disabled.