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.
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
-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.
Created attachment 190500 [details] paludis --info boost
You seem to be using boost from gcc-porting repository, could please try reproducing with the one from the official tree?
(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
Thanks. Let's start from the beginning: paste the output of `ls -l /usr/lib/libboost_mpi-*1_37.a' please.
# 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
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'.
# 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).
Ups. It is from mainline ;)
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.
Summary changed as requested.
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.
Ok. Reduced dependency to openmpi[cxx] for now. Thanks for the analysis.
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.