Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 256529 - sys-cluster/openmpi-1.3 fails on sparc because of bad assembly code, regression from -1.2.8
Summary: sys-cluster/openmpi-1.3 fails on sparc because of bad assembly code, regressi...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: Sparc Linux
: High major (vote)
Assignee: Gentoo Cluster Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-01-27 16:19 UTC by Ferris McCormick (RETIRED)
Modified: 2010-09-10 19:01 UTC (History)
2 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ferris McCormick (RETIRED) gentoo-dev 2009-01-27 16:19:56 UTC
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.
Comment 1 Justin Bronder (RETIRED) gentoo-dev 2009-01-27 16:46:26 UTC
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.
Comment 2 Ferris McCormick (RETIRED) gentoo-dev 2009-01-27 19:51:57 UTC
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)
=========================
Comment 3 Justin Bronder (RETIRED) gentoo-dev 2009-01-29 16:52:03 UTC
Fixed in cvs, thanks for reporting and testing.