[ebuild R ] sys-cluster/mpich2-1.0.6 USE="crypt cxx doc fortran mpe pvfs2 romio threads -debug -fast -mpe-sdk" 0 kB [ebuild R ] sci-libs/hdf5-1.6.6 USE="fortran mpi ssl threads zlib -cxx -debug -szip" 0 kB [ebuild U ] sci-mathematics/octave-2.9.18 [2.9.17] USE="doc fftw* hdf5 readline zlib -curl -debug -emacs" 0 kB [1] octave don't compile with hdf5 compiled with mpi support. Last error is: In file included from /usr/include/mpi.h:1110, from /usr/include/H5public.h:54, from /usr/include/hdf5.h:24, from ov.h:34, from oct-obj.h:33, from Cell.h:32, from Cell.cc:29: /usr/include/mpicxx.h:26:2: error: #error "SEEK_SET is #defined but must not be for the C++ binding of MPI" /usr/include/mpicxx.h:30:2: error: #error "SEEK_CUR is #defined but must not be for the C++ binding of MPI" /usr/include/mpicxx.h:35:2: error: #error "SEEK_END is #defined but must not be for the C++ binding of MPI" comment from mpicxx.h: // There is a name conflict between stdio.h and the MPI C++ binding // with respect to the names SEEK_SET, SEEK_CUR, and SEEK_END. MPI // wants these in the MPI namespace, but stdio.h will #define these // to integer values. #undef'ing these can cause obscure problems // with other include files (such as iostream), so we instead use // #error to indicate a fatal error. Users can either #undef // the names before including mpi.h or include mpi.h *before* stdio.h // or iostream. #ifndef MPICH_IGNORE_CXX_SEEK #ifdef SEEK_SET #error "SEEK_SET is #defined but must not be for the C++ binding of MPI" //#undef SEEK_SET #endif #ifdef SEEK_CUR #error "SEEK_CUR is #defined but must not be for the C++ binding of MPI" //#undef SEEK_CUR #endif #ifdef SEEK_END //#undef SEEK_END #error "SEEK_END is #defined but must not be for the C++ binding of MPI" #endif #endif P.S. octave-2.9.19 have the same problem Reproducible: Always
emerge --info Portage 2.1.4_rc9 (default-linux/amd64/2007.0, gcc-4.2.2, glibc-2.7-r1, 2.6.23-gentoo-r2 x86_64) ================================================================= System uname: 2.6.23-gentoo-r2 x86_64 AMD Athlon(tm) 64 Processor 3200+ Timestamp of tree: Thu, 13 Dec 2007 01:47:01 +0000 ccache version 2.4 [enabled] app-shells/bash: 3.2_p17-r1 dev-java/java-config: 1.3.7, 2.1.3 dev-lang/python: 2.5.1-r4 dev-python/pycrypto: 2.0.1-r6 dev-util/ccache: 2.4-r7 sys-apps/baselayout: 1.12.10-r5 sys-apps/sandbox: 1.2.18.1-r2 sys-devel/autoconf: 2.13, 2.61-r1 sys-devel/automake: 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10 sys-devel/binutils: 2.18-r1 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 1.5.24 virtual/os-headers: 2.6.23-r2 ACCEPT_KEYWORDS="amd64 ~amd64" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -march=athlon64 -pipe -msse3 " CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/splash /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d" CXXFLAGS="-O2 -march=athlon64 -pipe -msse3 " DISTDIR="/distfiles" FEATURES="ccache distlocks metadata-transfer parallel-fetch sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://distfiles.gentoo.org" LANG="ru_RU.UTF-8" LC_ALL="" LINGUAS="ru en" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage/layman/science /usr/local/portage" SYNC="rsync://mirror.aiya.ru/gentoo-portage" USE="3dnow 3dnowext 7zip X Xaw3d a52 aac acl acpi alsa amd64 amr apache2 arts artworkextra audiofile avi berkdb bitmap-fonts bluetooth boost browserplugin bzip2 cairo cdr clamav cli cracklib crypt css cups dbus directfb djvu dri dts dv dvb dvd dvdr dvdread encode exif fbcon ffmpeg flac flash foomaticdb fortran freetype2 gdbm gif gimp gphoto2 gpm gtk gtk2 guile hal hdf5 iconv ieee1394 imagemagick imlib ipv6 isdnlog jack java jpeg jpeg2k kde kdeenablefinal kipi ladspa lame lcms ldap libsamplerate lirc lm_sensors logrotate lzw lzw-tiff mad midi mmap mmx mmxext mng mono mozilla mp2 mp3 mp4 mpeg mudflap mysql ncurses neXt nls nptl nptlonly nsplugin ntfs nvidia ogg oggvorbis openal openexr opengl openmp pam pcre pdf pdflib perl png postgres ppds pppd pulseaudio python qt qt3 qt4 quicktime readline reflection reiserfs sdl sensord session slang slp sndfile sox speex spell spl sqlite3 sse sse2 ssl svg tcpd tetex theora threads tiff tools truetype truetype-fonts type1-fonts udev unicode usb userlocales utf8 v4l v4l2 vcd visualization vorbis wifi wmf x264 xcb xcomposite xml xml2 xorg xpm xprint xrandr xv xvid zlib" 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" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="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 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" CAMERAS="canon fuji template ptp2 directory" ELIBC="glibc" INPUT_DEVICES="keyboard mouse ps2mouse penmount evdev joystik" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="ru en" LIRC_DEVICES="devinput" USERLAND="GNU" VIDEO_CARDS="nvidia nv vesa radeon" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Hi Artemij, Please correct me if I am wrong, but I don't think that this is a problem with octave since the latter has no mpi support itself and doesn't therefore include any mpi headers. Octave simply pulls in hdf5 so this is probably something that needs to be fixed in hdf5 instead if anything. cheers, Markus
This error means, that hdf5.h must be included BEFORE iostream. In Cell.cc (and in all other sources in .../src), oct-obj.h (include hdf5) is AFTER idx-vector.h (include iostream) included.
Ahh, thanks for clarifying :) This is probably something that should be fixed upstream rather than by us. Would you mind filing a bug upstream or even better, send them a patch that takes care of this? Thanks, Markus
I have sent bug to bug@octave.org
Thank you very much! Please keep us in the loop about what upstream has to say and if they will fix it. cheers, Markus
Answer from upstream: John W. Eaton ... It seems like a really bad design decision for the MPI spec to use SEEK_SET, SEEK_CUR, and SEEK_END for some purpose different from the usage of the standard C library, so I don't see that this is a bug in Octave. jwe
Thanks for posting John's response and that's what I expected. I'll have a look at it, but before we can switch any includes it has to be 100% certain that this doesn't screw up octave's I/O in some other place since it clearly wasn't coded with this in mind. Thanks, Markus
In the meantime, you can rebuild mpich2 without the cxx USE flag. Let me know if octave still doesn't build (but it should).
I had compiled hdf5 without mpi support, after main stream answer. It works. I will try other USE flag combination later...
This is a known bug in the mpi standard. http://www.mcs.anl.gov/research/projects/mpich2/support/index.php?s=faqs#cxxseek
I'll close this one as WONTFIX since this really is something that should be done by upstream not us. Best, Markus