With gcc-4.1.2 on sparc, build of openmpi-1.3 fails on sparc with: ========================= vt_pform_linux.c:179: error: impossible constraint in ‘asm’ ========================= The code in question is: ======================= asm volatile ("rdtsc" : "=a" (low), "=d" (high)); ======================= It's trying to figure out how to get wall clock time, it seems, and apparently it forgot how to do that on sparc between: Mon Oct 20 14:05:39 2008 >>> sys-cluster/openmpi-1.2.8 and 1-3. I'm marking this as major, because it is a regression from earlier versions.
Looks like they added this package in 1.3 http://www.open-mpi.org/faq/?category=vampirtrace Adding --enable-contrib-no-build=vt should disable the integration of vampirtrace, which is at least a temporary workaround.
Yes, that does it. I tested by adding ================ use sparc && myconf="${myconf} --enable-contrib-no-build=vt" =============== at 90 in the ebuild, and with that, openmpi-1.3 builds and installs fine with FEATURES=test (ompi_info reports:) ====================== polylepis openmpi # ompi_info Package: Open MPI root@polylepis Distribution Open MPI: 1.3 Open MPI SVN revision: r20295 Open MPI release date: Jan 19, 2009 Open RTE: 1.3 Open RTE SVN revision: r20295 Open RTE release date: Jan 19, 2009 OPAL: 1.3 OPAL SVN revision: r20295 OPAL release date: Jan 19, 2009 Ident string: 1.3 Prefix: /usr Configured architecture: sparc-unknown-linux-gnu Configure host: polylepis Configured by: root Configured on: Tue Jan 27 19:23:49 UTC 2009 Configure host: polylepis Built by: root Built on: Tue Jan 27 19:39:43 UTC 2009 Built host: polylepis C bindings: yes C++ bindings: yes Fortran77 bindings: yes (all) Fortran90 bindings: yes Fortran90 bindings size: small C compiler: sparc-unknown-linux-gnu-gcc C compiler absolute: /usr/lib/ccache/bin/sparc-unknown-linux-gnu-gcc C++ compiler: sparc-unknown-linux-gnu-g++ C++ compiler absolute: /usr/lib/ccache/bin/sparc-unknown-linux-gnu-g++ Fortran77 compiler: sparc-unknown-linux-gnu-gfortran Fortran77 compiler abs: /usr/bin/sparc-unknown-linux-gnu-gfortran Fortran90 compiler: sparc-unknown-linux-gnu-gfortran Fortran90 compiler abs: /usr/bin/sparc-unknown-linux-gnu-gfortran C profiling: yes C++ profiling: yes Fortran77 profiling: yes Fortran90 profiling: yes C++ exceptions: no Thread support: posix (mpi: no, progress: no) Sparse Groups: no Internal debug support: no MPI parameter check: runtime Memory profiling support: no Memory debugging support: no libltdl support: yes Heterogeneous support: yes mpirun default --prefix: yes MPI I/O support: yes MPI_WTIME support: gettimeofday Symbol visibility support: yes FT Checkpoint support: no (checkpoint thread: no) MCA backtrace: execinfo (MCA v2.0, API v2.0, Component v1.3) MCA memory: ptmalloc2 (MCA v2.0, API v2.0, Component v1.3) MCA paffinity: linux (MCA v2.0, API v2.0, Component v1.3) MCA carto: auto_detect (MCA v2.0, API v2.0, Component v1.3) MCA carto: file (MCA v2.0, API v2.0, Component v1.3) MCA maffinity: first_use (MCA v2.0, API v2.0, Component v1.3) MCA timer: linux (MCA v2.0, API v2.0, Component v1.3) MCA installdirs: env (MCA v2.0, API v2.0, Component v1.3) MCA installdirs: config (MCA v2.0, API v2.0, Component v1.3) MCA dpm: orte (MCA v2.0, API v2.0, Component v1.3) MCA pubsub: orte (MCA v2.0, API v2.0, Component v1.3) MCA allocator: basic (MCA v2.0, API v2.0, Component v1.3) MCA allocator: bucket (MCA v2.0, API v2.0, Component v1.3) MCA coll: basic (MCA v2.0, API v2.0, Component v1.3) MCA coll: hierarch (MCA v2.0, API v2.0, Component v1.3) MCA coll: inter (MCA v2.0, API v2.0, Component v1.3) MCA coll: self (MCA v2.0, API v2.0, Component v1.3) MCA coll: sm (MCA v2.0, API v2.0, Component v1.3) MCA coll: tuned (MCA v2.0, API v2.0, Component v1.3) MCA mpool: fake (MCA v2.0, API v2.0, Component v1.3) MCA mpool: rdma (MCA v2.0, API v2.0, Component v1.3) MCA mpool: sm (MCA v2.0, API v2.0, Component v1.3) MCA pml: cm (MCA v2.0, API v2.0, Component v1.3) MCA pml: ob1 (MCA v2.0, API v2.0, Component v1.3) MCA pml: v (MCA v2.0, API v2.0, Component v1.3) MCA bml: r2 (MCA v2.0, API v2.0, Component v1.3) MCA rcache: vma (MCA v2.0, API v2.0, Component v1.3) MCA btl: self (MCA v2.0, API v2.0, Component v1.3) MCA btl: sm (MCA v2.0, API v2.0, Component v1.3) MCA btl: tcp (MCA v2.0, API v2.0, Component v1.3) MCA topo: unity (MCA v2.0, API v2.0, Component v1.3) MCA osc: pt2pt (MCA v2.0, API v2.0, Component v1.3) MCA osc: rdma (MCA v2.0, API v2.0, Component v1.3) MCA iof: hnp (MCA v2.0, API v2.0, Component v1.3) MCA iof: orted (MCA v2.0, API v2.0, Component v1.3) MCA iof: tool (MCA v2.0, API v2.0, Component v1.3) MCA oob: tcp (MCA v2.0, API v2.0, Component v1.3) MCA odls: default (MCA v2.0, API v2.0, Component v1.3) MCA rmaps: rank_file (MCA v2.0, API v2.0, Component v1.3) MCA rmaps: round_robin (MCA v2.0, API v2.0, Component v1.3) MCA rmaps: seq (MCA v2.0, API v2.0, Component v1.3) MCA rml: oob (MCA v2.0, API v2.0, Component v1.3) MCA routed: binomial (MCA v2.0, API v2.0, Component v1.3) MCA routed: direct (MCA v2.0, API v2.0, Component v1.3) MCA routed: linear (MCA v2.0, API v2.0, Component v1.3) MCA plm: rsh (MCA v2.0, API v2.0, Component v1.3) MCA filem: rsh (MCA v2.0, API v2.0, Component v1.3) MCA errmgr: default (MCA v2.0, API v2.0, Component v1.3) MCA ess: env (MCA v2.0, API v2.0, Component v1.3) MCA ess: hnp (MCA v2.0, API v2.0, Component v1.3) MCA ess: singleton (MCA v2.0, API v2.0, Component v1.3) MCA ess: tool (MCA v2.0, API v2.0, Component v1.3) MCA grpcomm: bad (MCA v2.0, API v2.0, Component v1.3) =========================
Fixed in cvs, thanks for reporting and testing.