Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: [OMPI users] error building openmpi-1.7.3a1r29213 on Solaris
From: Siegmar Gross (Siegmar.Gross_at_[hidden])
Date: 2013-09-20 07:00:41


Hi,

I tried to install openmpi-1.7.3a1r29213 on "openSuSE Linux 12.1",
"Solaris 10 x86_64", and "Solaris 10 sparc" with "Sun C 5.12" and
gcc-4.8.0 in 64-bit mode. Unfortunately "make" breaks with the same
error for both compilers on both Solaris platforms.

tyr openmpi-1.7.3a1r29213-SunOS.sparc.64_cc 126 tail -10 \
  log.make.SunOS.sparc.64_cc
Making all in mca/if/posix_ipv4
make[2]: Entering directory `.../opal/mca/if/posix_ipv4'
  CC if_posix.lo
"../../../../../openmpi-1.7.3a1r29213/opal/mca/if/posix_ipv4/if_posix.c",
  line 277: undefined struct/union member: ifr_mtu
cc: acomp failed for
  ../../../../../openmpi-1.7.3a1r29213/opal/mca/if/posix_ipv4/if_posix.c
make[2]: *** [if_posix.lo] Error 1
make[2]: Leaving directory `.../opal/mca/if/posix_ipv4'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `.../opal'
make: *** [all-recursive] Error 1

tyr openmpi-1.7.3a1r29213-SunOS.sparc.64_gcc 131 tail -12 \
  log.make.SunOS.sparc.64_gcc
Making all in mca/if/posix_ipv4
make[2]: Entering directory `.../opal/mca/if/posix_ipv4'
  CC if_posix.lo
../../../../../openmpi-1.7.3a1r29213/opal/mca/if/posix_ipv4/if_posix.c:
  In function 'if_posix_open':
../../../../../openmpi-1.7.3a1r29213/opal/mca/if/posix_ipv4/if_posix.c:
  277:31: error: 'struct ifreq' has no member named 'ifr_mtu'
             intf->if_mtu = ifr->ifr_mtu;
                               ^
make[2]: *** [if_posix.lo] Error 1
make[2]: Leaving directory `.../opal/mca/if/posix_ipv4'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `.../opal'
make: *** [all-recursive] Error 1

I have had this problem before and Jeff solved it. Here is my
old e-mail.

Date: Tue, 7 May 2013 19:38:11 +0200 (CEST)
From: Siegmar Gross <Siegmar.Gross_at_[hidden]>
Subject: Re: commit/ompi-java: jsquyres: Up to SVN r28392
To: jsquyres_at_[hidden]
Cc: Siegmar.Gross_at_[hidden]
MIME-Version: 1.0
Content-MD5: O1pjPK/1JiMXXZ/EHyMU0Q==
X-HRZ-JLUG-MailScanner-Information: Passed JLUG virus check
X-HRZ-JLUG-MailScanner: No virus found
X-Envelope-From: fd1026_at_[hidden]
X-Spam-Status: No

Hello Jeff

> Ok, I made a change in the OMPI trunk that should fix this:
>
> https://svn.open-mpi.org/trac/ompi/changeset/28460
>
> And I pulled it into the ompi-java hg repo. Could you give
> it a whirl and let me know if this works for you?

Perfect :-)))). Now I can build Open MPI on Solaris without
"#if 0" :-). Thank you very much for your help.

"make check" still produces the old bus error on Solaris Sparc.
All checks are fine on Linux and Solaris x86_64.

...
PASS: ddt_test
/bin/bash: line 5: 12453 Bus Error ${dir}$tst
FAIL: ddt_raw
========================================================
1 of 5 tests failed
Please report to http://www.open-mpi.org/community/help/
========================================================
make[3]: *** [check-TESTS] Error 1
...

Kind regards

Siegmar

> On May 6, 2013, at 7:20 AM, Siegmar Gross
<Siegmar.Gross_at_[hidden]> wrote:
>
> > Hello Jeff
> >
> >>>> "../../../../../ompi-java/opal/mca/if/posix_ipv4/if_posix.c",
> >>>> line 279: undefined struct/union member: ifr_mtu
> >>>>
> >>>> Sigh. Solaris kills me. :-\
> >>>>
> >>>> Just so I understand -- Solaris has SIOCGIFMTU, but doesn't
> >>>> have struct ifreq.ifr_mtu?
> >>>
> >>> I found SIOCGIFMTU in sys/sockio.h with the following comment.
> >>
> >> Is there a Solaris-defined constant we can use here to know
> >> that we're on Solaris? If so, I can effectively make that code
> >> only be there if SIOCFIGMTU exists and we're not on Solaris.
> >
> > I searched our header files for "sunos" and "solaris" with
> > "-ignore-case", but didn't find anything useful. You have a very
> > minimal environment, if you use "sh" and you would have a useful
> > environment variable, if you use "tcsh".
> >
> > tyr java 321 su -
> > ...
> > # env
> > HOME=/root
> > HZ=
> > LANG=C
> > LC_ALL=C
> > LOGNAME=root
> > MAIL=/var/mail/root
> > PATH=/usr/sbin:/usr/bin
> > SHELL=/sbin/sh
> > TERM=dtterm
> > TZ=Europe/Berlin
> > # tcsh
> > # env | grep TYPE
> > HOSTTYPE=sun4
> > OSTYPE=solaris
> > MACHTYPE=sparc
> > #
> >
> > The best solution would be "uname -s", if that is possible.
> >
> > # /usr/bin/uname -s
> > SunOS

I would be grateful, if somebody can solve the problem once more.

Kind regards

Siegmar