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: Re: [OMPI users] problem with sctp.h on Solaris
From: Siegmar Gross (Siegmar.Gross_at_[hidden])
Date: 2012-06-07 13:16:36


Hello,

> Can you try the attached patch and tell me if you get sctp configured?

Yes, it works! Thank you very much for your help.

> > This looks like a missing check in the sctp configure.m4. I am
> > working on a patch.
> >
> > --td
> >
> > On 6/5/2012 10:10 AM, Siegmar Gross wrote:
> >> Hello,
> >>
> >> I compiled "openmpi-1.6" on "Solaris 10 sparc" and "Solaris 10 x86"
> >> with "gcc-4.6.2" and "Sun C 5.12". Today I searched my log-files for
> >> "WARNING" and found the following message.
> >>
> >> WARNING: netinet/sctp.h: present but cannot be compiled
> >> WARNING: netinet/sctp.h: check for missing prerequisite headers?
> >> WARNING: netinet/sctp.h: see the Autoconf documentation
> >> WARNING: netinet/sctp.h: section "Present But Cannot Be Compiled"
> >> WARNING: netinet/sctp.h: proceeding with the compiler's result
> >> WARNING: ## ------------------------------------------------------ ##
> >> WARNING: ## Report this tohttp://www.open-mpi.org/community/help/ ##
> >> WARNING: ## ------------------------------------------------------ ##
> >>
> >> Looking in "config.log" showed that some types are undefined.
> >>
> >> tyr openmpi-1.6-SunOS.sparc.64_cc 323 grep sctp config.log
> >> configure:119568: result: elan, mx, ofud, openib, portals, sctp, sm, tcp,
> >> udapl
> >> configure:125730: checking for MCA component btl:sctp compile mode
> >> configure:125752: checking --with-sctp value
> >> configure:125862: checking --with-sctp-libdir value
> >> configure:125946: checking netinet/sctp.h usability
> >> "/usr/include/netinet/sctp.h", line 228:
> >> incomplete struct/union/enum sockaddr_storage: spc_aaddr
> >> "/usr/include/netinet/sctp.h", line 530: syntax error before or at:
> >> socklen_t
> >> "/usr/include/netinet/sctp.h", line 533: syntax error before or at:
> >> socklen_t
> >> "/usr/include/netinet/sctp.h", line 537: syntax error before or at:
> >> socklen_t
> >> "/usr/include/netinet/sctp.h", line 772: syntax error before or at:
> >> ipaddr_t
> >> "/usr/include/netinet/sctp.h", line 779: syntax error before or at:
> >> in6_addr_t
> >> | #include<netinet/sctp.h>
> >> ...
> >>
> >> The missing types are defined via<netinet/in.h>. In which files must
> >> I include this header file to avoid the warning? Thank you very much
> >> for any help in advance.

Kind regards

Siegmar

Index: ompi/mca/btl/sctp/configure.m4
===================================================================
--- ompi/mca/btl/sctp/configure.m4 (revision 26562)
+++ ompi/mca/btl/sctp/configure.m4 (working copy)
@@ -11,6 +11,7 @@
 # Copyright (c) 2004-2005 The Regents of the University of California.
 # All rights reserved.
 # Copyright (c) 2009 Cisco Systems, Inc. All rights reserved.
+# Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved.
 # $COPYRIGHT$
 #
 # Additional copyrights may follow
@@ -100,6 +101,18 @@
             AS_IF([test ! -z "$with_sctp_libdir" -a "$with_sctp_libdir" != "yes"],
                 [ompi_check_sctp_libdir="$with_sctp_libdir"])
 
+ # Check for in.h dependency outside OMPI_CHECK_PACKAGE because it cannot
+ # handle non-system detected dependencies. This is specifically an issue
+ # with Oracale Solaris because sctp.h requires in.h to define some types where
+ # Linux does not.
+ AC_CHECK_HEADER([netinet/in.h])
+ AC_CHECK_HEADER([netinet/sctp.h],
+ [],
+ [],
+ [
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif])
             OMPI_CHECK_PACKAGE([$1],
                 [netinet/sctp.h],
                 [$ompi_sctp_api_libname],
Index: config/ompi_check_package.m4
===================================================================
--- config/ompi_check_package.m4 (revision 26562)
+++ config/ompi_check_package.m4 (working copy)
@@ -10,6 +10,7 @@
 # University of Stuttgart. All rights reserved.
 # Copyright (c) 2004-2005 The Regents of the University of California.
 # All rights reserved.
+# Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved.
 # $COPYRIGHT$
 #
 # Additional copyrights may follow
@@ -35,18 +36,31 @@
     AS_IF([test "$3" = "/usr" -o "$3" = "/usr/local"],
            [ # try as is...
             AC_VERBOSE([looking for header without includes])
- AC_CHECK_HEADER([$2], [ompi_check_package_header_happy="yes"],
- [ompi_check_package_header_happy="no"])
+ # check to see if the header file was detected previously and only
+ # do a check if it was not. This is necessary to do for
+ # things like sctp.h that has a dependency that we cannot detect
+ # in this part of the code.
+ AS_IF(AS_VAR_IF([ompi_Header], [no],
+ [AC_CHECK_HEADER([$2], [ompi_check_package_header_happy="yes"],
+ [ompi_check_package_header_happy="no"])
+ ]))
             AS_IF([test "$ompi_check_package_header_happy" = "no"],
                   [# no go on the as is - reset the cache and try again
- unset ompi_Header])])
+ unset ompi_Header])
+ ])
 
     AS_IF([test "$ompi_check_package_header_happy" = "no"],
- [AS_IF([test "$3" != ""],
+ AS_IF([test "$3" != ""],
                  [$1_CPPFLAGS="$$1_CPPFLAGS -I$3/include"
                   CPPFLAGS="$CPPFLAGS -I$3/include"])
- AC_CHECK_HEADER([$2], [$4], [$5])],
- [$4])
+ # check to see if the header file was detected previously and only
+ # do a check if it was not. This is necessary to do for
+ # things like sctp.h that has a dependency that we cannot detect
+ # in this part of the code.
+ AS_IF(AS_VAR_IF([ompi_Header], [no],
+ [AC_CHECK_HEADER([$2], [$4], [$5])]),
+ [$4])
+ )
     unset ompi_check_package_header_happy])
     
     dnl AS_VAR_POPDEF([ompi_Header])dnl