Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 590446 - sci-libs/fftw-3.3.5-r1[mpi] with ABI_X86="32 64" - install failed: Header checksum mismatch, aborting.
Summary: sci-libs/fftw-3.3.5-r1[mpi] with ABI_X86="32 64" - install failed: Header che...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Science Related Packages
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-08-04 09:24 UTC by Michelangelo Scopelliti
Modified: 2016-09-08 10:20 UTC (History)
8 users (show)

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


Attachments
complete build log (fftw-3.3.5-r1:20160804-091438.log.gz,309.62 KB, application/gzip)
2016-08-04 09:24 UTC, Michelangelo Scopelliti
Details
openmpi-1.10.2-r1 build log (openmpi-1.10.2-r1:20160811-113611.log.gz,633.58 KB, application/gzip)
2016-08-11 12:56 UTC, Michelangelo Scopelliti
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Michelangelo Scopelliti 2016-08-04 09:24:13 UTC
Created attachment 442486 [details]
complete build log

When compiling sci-libs/fftw-3.3.5-r1 on a multilib system (ABI_X86="32 64") installation of fftw fails in install phase wit error

* Header files have changed between ABIs.
 * --- /var/tmp/portage/sci-libs/fftw-3.3.5-r1/temp/.multilib_header_cksum	016-08-04 11:21:10.424477886 +0200
 * +++ /var/tmp/portage/sci-libs/fftw-3.3.5-r1/temp/.multilib_header_cksum.new	016-08-04 11:21:11.946502954 +0200
 * @@ -1,5 +1,8 @@
 *  1373249523 18104 /var/tmp/portage/sci-libs/fftw-3.3.5-r1/image/usr/include/f
ftw3.h
 * +3980111379 18678 /var/tmp/portage/sci-libs/fftw-3.3.5-r1/image/usr/include/f
ftw3l-mpi.f03
 *  3479965276 2447 /var/tmp/portage/sci-libs/fftw-3.3.5-r1/image/usr/include/ff
tw3.f
 *  1169344032 25682 /var/tmp/portage/sci-libs/fftw-3.3.5-r1/image/usr/include/f
ftw3q.f03
 *  1831307683 26983 /var/tmp/portage/sci-libs/fftw-3.3.5-r1/image/usr/include/f
ftw3l.f03
 * +271203237 36969 /var/tmp/portage/sci-libs/fftw-3.3.5-r1/image/usr/include/ff
tw3-mpi.f03
 *  3189548846 54596 /var/tmp/portage/sci-libs/fftw-3.3.5-r1/image/usr/include/f
ftw3.f03
 * +2327260776 9624 /var/tmp/portage/sci-libs/fftw-3.3.5-r1/image/usr/include/ff
tw3-mpi.h
 * ERROR: sci-libs/fftw-3.3.5-r1::gentoo failed (install phase):
 *   Header checksum mismatch, aborting.

Error does not show with USE=-mpi

--

emerge --info

Portage 2.3.0 (python 3.5.2-final-0, default/linux/amd64/13.0, gcc-5.4.0, glibc-2.23-r2, 4.7.0 x86_64)
=================================================================
System uname: Linux-4.7.0-x86_64-AMD_A10-7700K_Radeon_R7,_10_Compute_Cores_4C+6G-with-gentoo-2.2
KiB Mem:     7143444 total,   4772324 free
KiB Swap:    7864308 total,   7864308 free
Timestamp of repository gentoo: Thu, 04 Aug 2016 08:45:01 +0000
sh bash 4.3_p46
ld GNU ld (Gentoo 2.26.1 p1.0) 2.26.1
app-shells/bash:          4.3_p46::gentoo
dev-java/java-config:     2.2.0-r3::gentoo
dev-lang/perl:            5.24.0-r1::gentoo
dev-lang/python:          2.7.12::gentoo, 3.5.2::gentoo
dev-util/cmake:           3.6.1::gentoo
dev-util/pkgconfig:       0.29.1::gentoo
sys-apps/baselayout:      2.2-r1::gentoo
sys-apps/openrc:          0.21.3::gentoo
sys-apps/sandbox:         2.10-r2::gentoo
sys-devel/autoconf:       2.13::gentoo, 2.69-r2::gentoo
sys-devel/automake:       1.11.6-r2::gentoo, 1.12.6-r1::gentoo, 1.13.4-r1::gentoo, 1.14.1-r1::gentoo, 1.15-r2::gentoo
sys-devel/binutils:       2.26.1::gentoo
sys-devel/gcc:            5.4.0::gentoo
sys-devel/gcc-config:     1.8-r1::gentoo
sys-devel/libtool:        2.4.6-r2::gentoo
sys-devel/make:           4.2.1::gentoo
sys-kernel/linux-headers: 4.7::gentoo (virtual/os-headers)
sys-libs/glibc:           2.23-r2::gentoo
Repositories:

gentoo
    location: /usr/portage
    sync-type: rsync
    sync-uri: rsync://rsync.europe.gentoo.org/gentoo-portage
    priority: -1000

kernelpanic
    location: /usr/local/portage
    masters: gentoo

libressl
    location: /var/lib/layman/libressl
    sync-type: laymansync
    sync-uri: https://github.com/gentoo/libressl.git
    masters: gentoo
    priority: 50

science
    location: /var/lib/layman/science
    sync-type: laymansync
    sync-uri: git://anongit.gentoo.org/proj/sci.git
    masters: gentoo
    priority: 50

tox-overlay
    location: /var/lib/layman/tox-overlay
    sync-type: laymansync
    sync-uri: git://github.com/Tox/gentoo-overlay-tox.git
    masters: gentoo
    priority: 50

ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA @EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -mtune=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-march=native -mtune=native -O2 -pipe"
DISTDIR="/var/portage/distfiles"
FCFLAGS="-march=native -mtune=native -O2 -pipe"
FEATURES="assume-digests binpkg-logs clean-logs compress-build-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch parallel-install preserve-libs protect-owned sandbox sfperms split-elog split-log strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-march=native -mtune=native -O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
INSTALL_MASK="/etc/systemd /usr/lib/systemd /usr/lib64/systemd"
LANG="it_IT.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j5"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
USE="X a52 aac acl alsa amd64 ao berkdb blas branding bzip2 cairo caps cdda cli cracklib crypt cups curl cxx dbus djvu dri dts dv dvb dvd encode exif ffmpeg fftw flac fontconfig fortran gcj gdbm gif gimp gmp gpm gsm gstreamer iconv icu inotify ipv6 jbig jpeg jpeg2k lame lapack latex lcms libass libnotify libressl lzma lzo mad matroska mmap mms mmx mmxext mng modplug modules mp3 mpeg mpi multilib ncurses nls nptl nsplugin offensive ogg openexr opengl openmp pam pcre pdf png postscript raw readline scanner seccomp session smp sndfile sound sox speex sse sse2 ssl startup-notification svg theora threads tiff truetype udev unicode usb v4l vaapi vdpau vim-syntax vorbis wavpack wmf wxwidgets x264 xattr xcb xml xmp xpm xscreensaver xv xvid zlib" ABI_X86="32 64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx fma3 fma4 mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 xop" CURL_SSL="libressl" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="evdev" KERNEL="linux" L10N="it en" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="it en" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_5" QEMU_SOFTMMU_TARGETS="i386 x86_64" QEMU_USER_TARGETS="i386 x86_64" RUBY_TARGETS="ruby23" SANE_BACKENDS="hp" USERLAND="GNU" VIDEO_CARDS="amdgpu radeon radeonsi" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON

build log attached
Comment 1 J.O. Aho 2016-08-07 18:20:07 UTC
System uname: Linux-4.6.5-gentoo-x86_64-AMD_Athlon-tm-_II_X4_651_Quad-Core_Processor-with-gentoo-2.2.1
KiB Mem:    16390244 total,   2612492 free
KiB Swap:   16777208 total,  16719844 free
sh bash 4.3_p42
ld GNU ld (Gentoo 2.24 p1.4) 2.24
app-shells/bash:          4.3_p42::gentoo
dev-java/java-config:     2.2.0-r3::gentoo
dev-lang/perl:            5.22.2::gentoo
dev-lang/python:          2.7.12::gentoo, 3.4.5::gentoo
dev-util/cmake:           3.6.1::gentoo
sys-apps/baselayout:      2.2.1::gentoo
sys-apps/openrc:          0.18.3-r2::gentoo
sys-apps/sandbox:         2.10-r2::gentoo
sys-devel/autoconf:       2.13::gentoo, 2.69-r2::gentoo
sys-devel/automake:       1.11.6-r1::gentoo, 1.13.4::gentoo, 1.14.1-r1::gentoo, 1.15-r2::gentoo
sys-devel/binutils:       2.24-r3::gentoo, 2.25-r2::gentoo
sys-devel/gcc:            4.8.4::gentoo, 4.9.3-r3::gentoo
sys-devel/gcc-config:     1.8-r1::gentoo
sys-devel/libtool:        2.4.6-r2::gentoo
sys-devel/make:           4.1-r1::gentoo
sys-kernel/linux-headers: 4.3::gentoo (virtual/os-headers)
sys-libs/glibc:           2.22::gentoo
Repositories:

gentoo
    location: /usr/portage
    sync-type: rsync
    sync-uri: rsync://rsync.europe.gentoo.org/gentoo-portage
    priority: -1000

ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=amdfam10 -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="$CONFIG_PROTECT /etc /usr/lib/oss/conf/ /usr/lib64/libreoffice/program/sofficerc /usr/lib64/tomoyo/conf /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/themes/oxygen-gtk/gtk-2.0 etc/nginx"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.6/ext-active/ /etc/php/apache2-php7.0/ext-active/ /etc/php/cgi-php5.6/ext-active/ /etc/php/cgi-php7.0/ext-active/ /etc/php/cli-php5.6/ext-active/ /etc/php/cli-php7.0/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-march=amdfam10 -O2 -pipe"
DISTDIR="/var/portage/distfiles"
FEATURES="assume-digests binpkg-logs buildpkg config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS=""
GENTOO_MIRRORS="http://distfiles.gentoo.org"
INSTALL_MASK="/etc/systemd/ /usr/lib/systemd/ /lib/systemd/"
LANG="en_US.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,--as-needed"
LINGUAS="en_GB"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_TMPDIR="/var/tmp"
USE="3dnowext X _kdepim a52 aac aacplus acc acl addns addressbook adns adrian-aec ads aesicm aim akode akonadi alisp alsa amd64 amr amrenc amrnb amrwb anim apng apparmor archive arts artswrappersuid ass atm attica audiofile auto-hinter avahi ayatana bash-completion berkdb bluetooth bluray btrfs bzip2 calendar caps captury cdda cddb cdio cdparanoia cdr chappa chardet chart chm cjk clearcase clucene colorpicker consolekit corefonts cpuload cracklib crypt cryptsetup css cuda cups curl curlwrappers cvs cxx dbus declarative designer-plugin device-mapper dga dirac djbfft djuv djvu dom dpi dri dts dv dvd dvdr dvdread ebook egl emalloc enca encode enscript epub evdev exif expoblending faac faad facebook fam ffmpeg fftw fits flac fma3 fontconfig fontforge fortran fpm ftp fuse g3dvl gadu gcrypt gd gdbm geoip geolocation gif gimp git glitz gnokii gnutls google gpg gphoto2 gpm gpu graphite graphviz gs gsm gstreamer gudev hal hash hddtemp hdri hpijs http http2 hwdb ibus ico iconv icq icu id3tag idn ieee1394 imagemagick imap imlib immqt innodb introspection ios ipod ipv6 ivorbis jabber java java5 java6 javascript jbig jikes jingle jit joystick jpeg jpeg2k json kde kig-scripting kipi kmod lame lash lcms ldap lensfun libass libguess libmpeg2 libnotify libsamplerate libsecret libv4l libvisual lightdm live lm_sensors logitech-mouse loop-aes lqr lxc lximage lzma lzo mad matroska md5sum meanwhile messages methodjit mhash mikmod mime minizip mjpeg mmap mms mmx mmxext mng mobi modplug modules mount moznoirc mp2 mp3 mp3rtp mpeg mpi mplayer msn mtp mudflap multilib multimedia multiuser musepack musicbrainz mysql mysqli nagios-dns nagios-game nagios-ntp nagios-ping nagios-ssh nas ncurses net35 net40 net45 network networkmonitor new-login nfs nfsdcld nfsv41 nls nntp nptl nsplugin ntp nut oauth objc objc++ objc-gc ofx ogg okteta oom openal opencore-amr openexr opengl openmp openssl openvg opus osc oscar osmesa oss otr pam passfile pcre pcre-jit pcre16 pdf php plasma plugins png pnm pnp policykit portaudio postgres postproc postscript powermanagement ppds pppd printsupport prison ps pulseaudio pvr pyside python qalculate qml qq qt3support qt5 quicktime qwt radio rar raw rdesktop rdp readline real recode redeyes resolvconf reviewboard rss rtc rtmp samba scanner schroedinger screensaver script sdl seamonkey secure-delete semantic-desktop sensord sensors session sharedmem shorten simplexml slang slp smart smp smpeg sndfile snmp soap soup sox speex spell sql sqlite srt srtp sse sse2 sse3 ssh ssh-askpass ssl subversion sudo suid svg syslog sysstat system-sqlite sysvipc szip taglib tcpd telepathy theora threads thumbnail tidy tiff timidity tk tokenizer truetype tta twolame udev udisks unicode upnp ups urandom usb uvm v4l v4l2 vaapi vcd vdpau video videos vim-syntax vmware_guest_freebsd vmware_guest_linux vmware_guest_windows vnc vorbis vpx warmstarts wav wavpack wddx webgl webkit webp webserver widgets win32codecs wma wmf worldclock wxwindows x264 x265 xattr xcb xcomposite xforms xine xinerama xkb xml xmlpatterns xmlrpc xmpcairo xnest xosd xpm xprint xscreensaver xv xvid xvmc zeroconf zip zlib" ABI_X86="64 32" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel ice1724 intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio proxy_fcgi mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" APACHE2_MPMS="worker" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext popcnt sse sse2 sse3 sse4a" CURL_SSL="openssl" DRACUT_MODULES="dmraid lvm syslog btrfs nfs" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="efi-64 pc" INPUT_DEVICES="evdev keyboard mouse" KERNEL="linux" LCD_DEVICES="ncurses text xosd" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer pdfimport" LINGUAS="en_GB" NGINX_MODULES_HTTP="access auth_basic autoindex browser charset empty_gif fastcgi geo gzip limit_conn limit_req limit_zone map memcached proxy referer rewrite scgi split_clients ssi upstream_ip_hash userid uwsgi sub" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-6 php7-0" PYTHON_SINGLE_TARGET="python3_4" PYTHON_TARGETS="python2_7 python3_4" QEMU_SOFTMMU_TARGETS="arm ppc sparc x86_64" QEMU_USER_TARGETS="alpha arm ppc sparc64 x86_64" RUBY_TARGETS="ruby20 ruby21 ruby22" SANE_BACKENDS="net snapscan" USERLAND="GNU" VIDEO_CARDS="nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS

[ebuild     U ] sci-libs/fftw-3.3.5-r1 [3.3.4] USE="fortran mpi openmp threads (-altivec) -doc (-neon) -quad -static-libs {-test} (-zbus)" ABI_X86="32 (64) (-x32)" CPU_FLAGS_X86="sse sse2 -avx -avx2% -fma3 -fma4"
Comment 2 Coacher 2016-08-07 19:48:34 UTC
See bug 459758 and bug 519700.
Comment 3 Coacher 2016-08-08 13:01:34 UTC
Which virtual/mpi provider do you have installed?
Provide 'emerge -pqv <your_virtual/mpi_provider_here>' output.
Comment 4 Coacher 2016-08-08 13:32:17 UTC
Ok, this is caused by changing 'multibuild_foreach_variant multilib_foreach_abi autotools-utils_src_install' to 'multibuild_foreach_variant multilib-minimal_src_install' in 3.3.5.
Comment 5 Christoph Junghans (RETIRED) gentoo-dev 2016-08-08 14:23:01 UTC
Doesn't the ebuild do "enable_mpi=$(multilib_native_use_enable mpi)" and hence mpi only gets build on the native ABI?
Comment 6 Michelangelo Scopelliti 2016-08-08 16:14:55 UTC
(In reply to Coacher from comment #3)
> Which virtual/mpi provider do you have installed?
> Provide 'emerge -pqv <your_virtual/mpi_provider_here>' output.

There was a reason in the description there was specified the overlay of virtual/mpi.

As far as I can tell, virtual/mpi::science does not support multilib, as sci-libs/fftw::science.

If both fftw and mpi are from the same tree, the system works; the issue is when you have two different providers.

Maybe science overlay should force the dependency specifying ::science or forcing some subslot?
Comment 7 Christoph Junghans (RETIRED) gentoo-dev 2016-08-08 16:33:59 UTC
There is no sci-libs/fftw::science anymore! At some point we had multilib openmpi/mpich and multilib-mpi fftw implemented in the science overlay, but now it is gone:
https://github.com/gentoo-science/sci/compare/e1a9394386238099ece40fe0e8d7f805c23b679d...ba275f139061d2c1402c7de4279b50ba13e0b76d
Comment 8 David Seifert gentoo-dev 2016-08-08 16:36:38 UTC
(In reply to Christoph Junghans from comment #7)
> There is no sci-libs/fftw::science anymore! At some point we had multilib
> openmpi/mpich and multilib-mpi fftw implemented in the science overlay, but
> now it is gone:
> https://github.com/gentoo-science/sci/compare/
> e1a9394386238099ece40fe0e8d7f805c23b679d...
> ba275f139061d2c1402c7de4279b50ba13e0b76d

Say again, why was this never ported to the main tree?
Comment 9 Christoph Junghans (RETIRED) gentoo-dev 2016-08-08 16:44:17 UTC
(In reply to David Seifert from comment #8)
> (In reply to Christoph Junghans from comment #7)
> > There is no sci-libs/fftw::science anymore! At some point we had multilib
> > openmpi/mpich and multilib-mpi fftw implemented in the science overlay, but
> > now it is gone:
> > https://github.com/gentoo-science/sci/compare/
> > e1a9394386238099ece40fe0e8d7f805c23b679d...
> > ba275f139061d2c1402c7de4279b50ba13e0b76d
> 
> Say again, why was this never ported to the main tree?
"flames and bikeshedding", see <https://bugs.gentoo.org/show_bug.cgi?id=519700#c10>
Comment 10 David Seifert gentoo-dev 2016-08-08 19:45:52 UTC
(In reply to Christoph Junghans from comment #9)
> (In reply to David Seifert from comment #8)
> > (In reply to Christoph Junghans from comment #7)
> > > There is no sci-libs/fftw::science anymore! At some point we had multilib
> > > openmpi/mpich and multilib-mpi fftw implemented in the science overlay, but
> > > now it is gone:
> > > https://github.com/gentoo-science/sci/compare/
> > > e1a9394386238099ece40fe0e8d7f805c23b679d...
> > > ba275f139061d2c1402c7de4279b50ba13e0b76d
> > 
> > Say again, why was this never ported to the main tree?
> "flames and bikeshedding", see
> <https://bugs.gentoo.org/show_bug.cgi?id=519700#c10>

We have the following solutions:

1) Port mpi to multilib. This is the proper, globally optimal solution, involving lots of testing and much gnashing of teeth for porting mpi to proper multilib.
2) Tricking multilib-minimal.eclass into accepting the fortran headers. QA will not like this and will give me a hard time.
3) Porting multilib_prepare_wrappers and multilib_check_headers to wrap fortran headers too.
4) Disable mpi support in the latest fftw, requiring USE="mpi" users to drop down to the stable version. This is of course a total ruse, as the stable 3.3.4 version does exactly the same thing, without invoking multilib_check_headers, thereby masking the problem.

Christoph: your ideas? the mpi.eclass seems like a hairy monster and ultimately it would take me a lot of time to port this beast.
Comment 11 Christoph Junghans (RETIRED) gentoo-dev 2016-08-08 20:23:51 UTC
(In reply to David Seifert from comment #10)
> Christoph: your ideas? the mpi.eclass seems like a hairy monster and
> ultimately it would take me a lot of time to port this beast.
Well, as in discussed in #519700#c10, we should first evaluate if multiple simultaneous mpi installations are really needed. If not, porting mpi to multilib without empi support should be easy! As libmpi is not binary compatible between different implementations, this opens whole another box of problems with libraries depending on libmpi. On the other hand sometimes it is very useful, e.g. in HPC environments, to test different mpi implementations.

This, however, won't solve the issue of wrapping fortran headers.
Comment 12 François Bissey 2016-08-08 21:36:34 UTC
If you don't mind as someone who actively supports HPC systems I will crash the party:

1) We don't bother with supporting multiple ABI unless we have too for a proprietary application. Cannot think of one that is both mpi and 32 bits only on top of my head.

2) supporting different mpi providers. Yes definitely which means that we usually have several install of everything that can depend on 
 a) compiler
 b) mpi
 c) blas/lapack
that's at the lowest order. You need a seamless mechanism to switch between those. Usually module/lmod or equivalent, which means they technically live outside your main tree. I am not sure you can host all the desired at the same time from the main tree. Not if you want to stay sane.

On the other hand I appreciate that the content of ebuild is helpful in building many variants :)
Comment 13 David Seifert gentoo-dev 2016-08-08 21:40:12 UTC
(In reply to Francois Bissey from comment #12)
> If you don't mind as someone who actively supports HPC systems I will crash
> the party:
> 
> 1) We don't bother with supporting multiple ABI unless we have too for a
> proprietary application. Cannot think of one that is both mpi and 32 bits
> only on top of my head.
> 
> 2) supporting different mpi providers. Yes definitely which means that we
> usually have several install of everything that can depend on 
>  a) compiler
>  b) mpi
>  c) blas/lapack
> that's at the lowest order. You need a seamless mechanism to switch between
> those. Usually module/lmod or equivalent, which means they technically live
> outside your main tree. I am not sure you can host all the desired at the
> same time from the main tree. Not if you want to stay sane.
> 
> On the other hand I appreciate that the content of ebuild is helpful in
> building many variants :)

If you think investing time in making mpi multilib aware is north worth it, that means tricking portage into accepting the fortran headers on the native ABIs. You will need to get a QA exception for this.
Comment 14 David Seifert gentoo-dev 2016-08-08 21:52:41 UTC
Here's a quick fix that works for me:

--- a/sci-libs/fftw/fftw-3.3.5-r1.ebuild
+++ b/sci-libs/fftw/fftw-3.3.5-r1.ebuild
@@ -22,6 +22,7 @@ fi
 LICENSE="GPL-2+"
 SLOT="3.0/3"
 IUSE="altivec cpu_flags_x86_avx cpu_flags_x86_avx2 cpu_flags_x86_fma3 cpu_flags_x86_fma4 cpu_flags_x86_sse cpu_flags_x86_sse2 doc fortran mpi neon openmp quad static-libs test threads zbus"
+REQUIRED_USE="mpi? ( !abi_x86_32 )"
 
 RDEPEND="
        mpi? ( virtual/mpi )"
Comment 15 Christoph Junghans (RETIRED) gentoo-dev 2016-08-08 22:11:39 UTC
(In reply to David Seifert from comment #14)
> Here's a quick fix that works for me:
> 
> --- a/sci-libs/fftw/fftw-3.3.5-r1.ebuild
> +++ b/sci-libs/fftw/fftw-3.3.5-r1.ebuild
> @@ -22,6 +22,7 @@ fi
>  LICENSE="GPL-2+"
>  SLOT="3.0/3"
>  IUSE="altivec cpu_flags_x86_avx cpu_flags_x86_avx2 cpu_flags_x86_fma3
> cpu_flags_x86_fma4 cpu_flags_x86_sse cpu_flags_x86_sse2 doc fortran mpi neon
> openmp quad static-libs test threads zbus"
> +REQUIRED_USE="mpi? ( !abi_x86_32 )"
>  
>  RDEPEND="
>         mpi? ( virtual/mpi )"
I don't like that, multilib fftw was part of app-emu/medialibs due to the fact that some proprietary app needed ffmpeg. And fftw[mpi] is used by a couple of packages in the science overlay. So I guess it would be better to simply not warp the mpi headers.
Also if I remember correctly make openmpi multilib was trivial except for the wrapping of the fortran headers (bug #540508).
Comment 16 David Seifert gentoo-dev 2016-08-09 09:05:10 UTC
(In reply to Christoph Junghans from comment #11)
> (In reply to David Seifert from comment #10)
> > Christoph: your ideas? the mpi.eclass seems like a hairy monster and
> > ultimately it would take me a lot of time to port this beast.
> Well, as in discussed in #519700#c10, we should first evaluate if multiple
> simultaneous mpi installations are really needed. If not, porting mpi to
> multilib without empi support should be easy! As libmpi is not binary
> compatible between different implementations, this opens whole another box
> of problems with libraries depending on libmpi. On the other hand sometimes
> it is very useful, e.g. in HPC environments, to test different mpi
> implementations.
> 
> This, however, won't solve the issue of wrapping fortran headers.

If, as you say, libmpi is not ABI compatible between the different implementations (which is always my default guess, given how hard it is to make libraries ABI compatible), then what use is all the switcheroo business? Changing some mpicc links but then still being required to recompile all consumers of libmpi? Or am I missing something here? If recompiling all consumers is necessary, I think the eclass+eselect are close to pointless (they still have a use, but given the specialized use cases, is it worth the effort)? Or maybe we can just do the multilib porting now, and do the eclass+eselect switcheroo afterwards?
Comment 17 Christoph Junghans (RETIRED) gentoo-dev 2016-08-09 15:28:18 UTC
(In reply to David Seifert from comment #16)
> (In reply to Christoph Junghans from comment #11)
> > (In reply to David Seifert from comment #10)
> > > Christoph: your ideas? the mpi.eclass seems like a hairy monster and
> > > ultimately it would take me a lot of time to port this beast.
> > Well, as in discussed in #519700#c10, we should first evaluate if multiple
> > simultaneous mpi installations are really needed. If not, porting mpi to
> > multilib without empi support should be easy! As libmpi is not binary
> > compatible between different implementations, this opens whole another box
> > of problems with libraries depending on libmpi. On the other hand sometimes
> > it is very useful, e.g. in HPC environments, to test different mpi
> > implementations.
> > 
> > This, however, won't solve the issue of wrapping fortran headers.
> 
> If, as you say, libmpi is not ABI compatible between the different
> implementations (which is always my default guess, given how hard it is to
> make libraries ABI compatible), then what use is all the switcheroo
> business? Changing some mpicc links but then still being required to
> recompile all consumers of libmpi? Or am I missing something here? If
> recompiling all consumers is necessary, I think the eclass+eselect are close
> to pointless (they still have a use, but given the specialized use cases, is
> it worth the effort)? Or maybe we can just do the multilib porting now, and
> do the eclass+eselect switcheroo afterwards?
I like that, let's convert the two common mpi implementation to multilib (see bug #519700). For the switcheroo we will need to install the lib in some non-standard path, maybe we can do something similar as we did for blas/lapack in the science overlay.

@soap: please have a look at bug #483758, too. It helps a bit to understand why the fftw ebuild is so convoluted.
Comment 18 David Seifert gentoo-dev 2016-08-09 18:38:27 UTC
(In reply to Christoph Junghans from comment #17)

If I recall correctly, in the LAPACK/BLAS case, libs are ABI-compatible and can just be switched out. This is not the case with libmpi, so what do you gain from an select module really? You'll need to rebuild all consumers anyway. I say we 

1. make virtual/mpi + {all/the major 2} MPI implementations multilib aware
2. after all this, do the eselect stuff. I'm planning to integrate/reengineer the science-overlay eslect into Gentoo's proper eselect, but also making it stateless at the same time (QA's major criticism and reason it isn't in the tree).

As I don't see much gain from it being eselectable, beyond changing mpicc links etc.
Comment 19 Christoph Junghans (RETIRED) gentoo-dev 2016-08-09 22:59:37 UTC
(In reply to David Seifert from comment #18)
> (In reply to Christoph Junghans from comment #17)
> 
> If I recall correctly, in the LAPACK/BLAS case, libs are ABI-compatible and
> can just be switched out. This is not the case with libmpi, so what do you
> gain from an select module really? You'll need to rebuild all consumers
> anyway. I say we 
> 
> 1. make virtual/mpi + {all/the major 2} MPI implementations multilib aware
> 2. after all this, do the eselect stuff. I'm planning to
> integrate/reengineer the science-overlay eslect into Gentoo's proper
> eselect, but also making it stateless at the same time (QA's major criticism
> and reason it isn't in the tree).
> 
> As I don't see much gain from it being eselectable, beyond changing mpicc
> links etc.
Ok, let's do that! For 1.) I added two patches to bug #519700 as a starting point.
Comment 20 David Seifert gentoo-dev 2016-08-11 07:58:38 UTC
(In reply to Michelangelo Scopelliti from comment #0)

We've integrated multilib-aware MPI libs into the main tree now (without being eselect-able for the time being). Could you give it a try (you'll have to accept_keywords some dependencies) and tell us if it solves the problem?
Comment 21 Michelangelo Scopelliti 2016-08-11 12:55:02 UTC
(In reply to David Seifert from comment #20)
> (In reply to Michelangelo Scopelliti from comment #0)
> 
> We've integrated multilib-aware MPI libs into the main tree now (without
> being eselect-able for the time being). Could you give it a try (you'll have
> to accept_keywords some dependencies) and tell us if it solves the problem?

I've tried with virtual/mpi-2.0-r4::gentoo and sys-cluster/openmpi-1.10.2-r1::gentoo after changing accept_keywords.

openmpi fails without error message; build log will follow.
Comment 22 Michelangelo Scopelliti 2016-08-11 12:56:51 UTC
Created attachment 443050 [details]
openmpi-1.10.2-r1 build log
Comment 23 Christoph Junghans (RETIRED) gentoo-dev 2016-08-11 14:27:15 UTC
(In reply to Michelangelo Scopelliti from comment #21)
> (In reply to David Seifert from comment #20)
> > (In reply to Michelangelo Scopelliti from comment #0)
> > 
> > We've integrated multilib-aware MPI libs into the main tree now (without
> > being eselect-able for the time being). Could you give it a try (you'll have
> > to accept_keywords some dependencies) and tell us if it solves the problem?
> 
> I've tried with virtual/mpi-2.0-r4::gentoo and
> sys-cluster/openmpi-1.10.2-r1::gentoo after changing accept_keywords.
> 
> openmpi fails without error message; build log will follow.
Fixed!
Comment 24 Michelangelo Scopelliti 2016-08-11 19:11:59 UTC
(In reply to Christoph Junghans from comment #23)
> (In reply to Michelangelo Scopelliti from comment #21)
> > (In reply to David Seifert from comment #20)
> > > (In reply to Michelangelo Scopelliti from comment #0)
> > > 
> > > We've integrated multilib-aware MPI libs into the main tree now (without
> > > being eselect-able for the time being). Could you give it a try (you'll have
> > > to accept_keywords some dependencies) and tell us if it solves the problem?
> > 
> > I've tried with virtual/mpi-2.0-r4::gentoo and
> > sys-cluster/openmpi-1.10.2-r1::gentoo after changing accept_keywords.
> > 
> > openmpi fails without error message; build log will follow.
> Fixed!
Working with openmpi-1.10.3-r1 now.
Everything seems fine until now; closing?

BTW, thanks.
Comment 25 David Seifert gentoo-dev 2016-08-11 19:17:53 UTC
Thanks, very good!
Comment 26 David Seifert gentoo-dev 2016-08-25 10:52:25 UTC
(In reply to Michelangelo Scopelliti from comment #24)

I've restored the QA-compliant multilib-minimal_src_install version in the unKEYWORDed -r2 ebuild. Once the ebuild trickles down to you in a few days, could you please try re-emerging it with --oneshot in order to test that the headers are valid and in accordance with QA? Thanks.

commit 6566a7c47266eeafa3eab2bbe9d12ef03d3167fc
Author: David Seifert <soap@gentoo.org>
Date:   Thu Aug 25 12:45:29 2016 +0200

    sci-libs/fftw: Restore QA-checked multilib-minimal_src_install
Comment 27 Christoph Junghans (RETIRED) gentoo-dev 2016-08-25 15:29:13 UTC
(In reply to David Seifert from comment #26)
> (In reply to Michelangelo Scopelliti from comment #24)
> 
> I've restored the QA-compliant multilib-minimal_src_install version in the
> unKEYWORDed -r2 ebuild. Once the ebuild trickles down to you in a few days,
> could you please try re-emerging it with --oneshot in order to test that the
> headers are valid and in accordance with QA? Thanks.
> 
> commit 6566a7c47266eeafa3eab2bbe9d12ef03d3167fc
> Author: David Seifert <soap@gentoo.org>
> Date:   Thu Aug 25 12:45:29 2016 +0200
> 
>     sci-libs/fftw: Restore QA-checked multilib-minimal_src_install
Works for me!
Comment 28 Michelangelo Scopelliti 2016-09-08 10:20:24 UTC
(In reply to David Seifert from comment #26)
> (In reply to Michelangelo Scopelliti from comment #24)
> 
> I've restored the QA-compliant multilib-minimal_src_install version in the
> unKEYWORDed -r2 ebuild. Once the ebuild trickles down to you in a few days,
> could you please try re-emerging it with --oneshot in order to test that the
> headers are valid and in accordance with QA? Thanks.
> 
> commit 6566a7c47266eeafa3eab2bbe9d12ef03d3167fc
> Author: David Seifert <soap@gentoo.org>
> Date:   Thu Aug 25 12:45:29 2016 +0200
> 
>     sci-libs/fftw: Restore QA-checked multilib-minimal_src_install

Sorry for the delay, I was out on holidays.
Tested on two machines: everything is fine.
Again, Thank you.