Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |  

This web mail archive is frozen.

This page is part of a frozen web archive of this mailing list.

You can still navigate around this archive, but know that no new mails have been added to it since July of 2016.

Click here to be taken to the new web archives of this list; it includes all the mails that are in this frozen archive plus all new mails that have been sent to the list since it was migrated to the new archives.

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