Re: [OMPI devel] PMIX on 2.0.0rc1 and cygwin build

2015-12-24 Thread Gilles Gouaillardet
Marco,

If I understand correctly, pmix is mandatory, regardless you run on a
laptop or an exascale system.

Cheers,

Gilles

On Thursday, December 24, 2015, Marco Atzeri  wrote:

> On 24/12/2015 06:10, Gilles Gouaillardet wrote:
>
>> Marco,
>>
>> Thanks for the patch, i will apply the changes related to the missing
>> include files to master and PR to v2.x
>>
>> on linux, libpmix.so does not depend on libopen-pal.
>> that being said, libpmix.so has undefined symbols related to hwloc and
>> libevent, and these symbols are defined in libopen-pal.so
>> i assume that is ok with linux but cygwin does not accept it.
>>
>
> circular dependency is hard to manage.
>
> an other way to do things (and generally speaking, that could become the
>> way to go in a near future) is to use external hwloc and libevent (that
>> assumes of course cygwin provides these libraries and versions meet the
>> ompi requirements)
>>
>
> hwloc is already available as separate library, I will look to pack also
> libevent.
>
> could you try to
>> configure --with-hwloc=external --with-libevent=external ...
>> and see if it helps ?
>>
>
> some time in the coming week
>
> fwiw, with master you will soon be able to do the same thing with pmix
>> (e.g. configure --with-pmix=external ...)
>>
>
> I assume no one will really require PMI Exascale on cygwin.
> So this should solve the issue anyway
>
> Regards
> Marco
>
>
>
> Cheers,
>>
>> Gilles
>>
>> On 12/24/2015 3:42 AM, Marco Atzeri wrote:
>>
>>> building 2.0.0rc1 on cygwin I was stacked on
>>> opal/mca/pmix/pmix1xx/pmix
>>>
>>> Question:
>>> - as pmix depends on hwloc and libevents, is it supposed to
>>>   link against opal shared lib, is it supposed to be included
>>>   in the opal shared lib or is it a circular dependency ?
>>>
>>> I solved the build changing from shared to convenience library.
>>>
>>> -lib_LTLIBRARIES = libpmix.la
>>> +noinst_LTLIBRARIES = libpmix.la
>>>
>>> as circular dependency will be a hell to manage with the
>>> no-undefined flag.
>>>
>>> The attached patch solves also
>>>
>>> - several lacks of declaration for opal_output functions
>>>   used in the ompi tree.
>>>   They also require libmpi link vs lib@opal_lib_pre...@open-pal.la
>>>
>>> - lack of declaration for several  functions
>>>   like access, gethostname, usleep, ..
>>>
>>> - add !defined(__CYGWIN__) on libevent2022/libevent/event.h
>>>   as for current 1.8 and 1.10 code.
>>>
>>>
>>> Please also note that usleep is marked as obsolescent on
>>> Open Group Base Specifications Issue 6
>>> http://pubs.opengroup.org/onlinepubs/009695399/functions/usleep.html
>>> and it is missing on Issue7
>>>
>>> With this patch it builds on cygwin 64 bit and passes the
>>> same tests of 1.10.x code
>>>
>>> Regards
>>> Marco
>>>
>>>
>>>
>>> ___
>>> devel mailing list
>>> de...@open-mpi.org
>>> Subscription:http://www.open-mpi.org/mailman/listinfo.cgi/devel
>>> Link to this post:
>>> http://www.open-mpi.org/community/lists/devel/2015/12/18453.php
>>>
>>
>>
>>
>> ___
>> devel mailing list
>> de...@open-mpi.org
>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
>> Link to this post:
>> http://www.open-mpi.org/community/lists/devel/2015/12/18456.php
>>
>> ___
> devel mailing list
> de...@open-mpi.org
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
> Link to this post:
> http://www.open-mpi.org/community/lists/devel/2015/12/18457.php
>


Re: [OMPI devel] PMIX on 2.0.0rc1 and cygwin build

2015-12-24 Thread Marco Atzeri

On 24/12/2015 06:10, Gilles Gouaillardet wrote:

Marco,

Thanks for the patch, i will apply the changes related to the missing
include files to master and PR to v2.x

on linux, libpmix.so does not depend on libopen-pal.
that being said, libpmix.so has undefined symbols related to hwloc and
libevent, and these symbols are defined in libopen-pal.so
i assume that is ok with linux but cygwin does not accept it.


circular dependency is hard to manage.


an other way to do things (and generally speaking, that could become the
way to go in a near future) is to use external hwloc and libevent (that
assumes of course cygwin provides these libraries and versions meet the
ompi requirements)


hwloc is already available as separate library, I will look to pack also 
libevent.



could you try to
configure --with-hwloc=external --with-libevent=external ...
and see if it helps ?


some time in the coming week


fwiw, with master you will soon be able to do the same thing with pmix
(e.g. configure --with-pmix=external ...)


I assume no one will really require PMI Exascale on cygwin.
So this should solve the issue anyway

Regards
Marco




Cheers,

Gilles

On 12/24/2015 3:42 AM, Marco Atzeri wrote:

building 2.0.0rc1 on cygwin I was stacked on
opal/mca/pmix/pmix1xx/pmix

Question:
- as pmix depends on hwloc and libevents, is it supposed to
  link against opal shared lib, is it supposed to be included
  in the opal shared lib or is it a circular dependency ?

I solved the build changing from shared to convenience library.

-lib_LTLIBRARIES = libpmix.la
+noinst_LTLIBRARIES = libpmix.la

as circular dependency will be a hell to manage with the
no-undefined flag.

The attached patch solves also

- several lacks of declaration for opal_output functions
  used in the ompi tree.
  They also require libmpi link vs lib@opal_lib_pre...@open-pal.la

- lack of declaration for several  functions
  like access, gethostname, usleep, ..

- add !defined(__CYGWIN__) on libevent2022/libevent/event.h
  as for current 1.8 and 1.10 code.


Please also note that usleep is marked as obsolescent on
Open Group Base Specifications Issue 6
http://pubs.opengroup.org/onlinepubs/009695399/functions/usleep.html
and it is missing on Issue7

With this patch it builds on cygwin 64 bit and passes the
same tests of 1.10.x code

Regards
Marco



___
devel mailing list
de...@open-mpi.org
Subscription:http://www.open-mpi.org/mailman/listinfo.cgi/devel
Link to this 
post:http://www.open-mpi.org/community/lists/devel/2015/12/18453.php




___
devel mailing list
de...@open-mpi.org
Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
Link to this post: 
http://www.open-mpi.org/community/lists/devel/2015/12/18456.php



Re: [OMPI devel] PMIX on 2.0.0rc1 and cygwin build

2015-12-24 Thread Gilles Gouaillardet

Marco,

Thanks for the patch, i will apply the changes related to the missing 
include files to master and PR to v2.x


on linux, libpmix.so does not depend on libopen-pal.
that being said, libpmix.so has undefined symbols related to hwloc and 
libevent, and these symbols are defined in libopen-pal.so

i assume that is ok with linux but cygwin does not accept it.

an other way to do things (and generally speaking, that could become the 
way to go in a near future) is to use external hwloc and libevent (that 
assumes of course cygwin provides these libraries and versions meet the 
ompi requirements)


could you try to
configure --with-hwloc=external --with-libevent=external ...
and see if it helps ?

fwiw, with master you will soon be able to do the same thing with pmix
(e.g. configure --with-pmix=external ...)

Cheers,

Gilles

On 12/24/2015 3:42 AM, Marco Atzeri wrote:

building 2.0.0rc1 on cygwin I was stacked on
opal/mca/pmix/pmix1xx/pmix

Question:
- as pmix depends on hwloc and libevents, is it supposed to
  link against opal shared lib, is it supposed to be included
  in the opal shared lib or is it a circular dependency ?

I solved the build changing from shared to convenience library.

-lib_LTLIBRARIES = libpmix.la
+noinst_LTLIBRARIES = libpmix.la

as circular dependency will be a hell to manage with the
no-undefined flag.

The attached patch solves also

- several lacks of declaration for opal_output functions
  used in the ompi tree.
  They also require libmpi link vs lib@opal_lib_pre...@open-pal.la

- lack of declaration for several  functions
  like access, gethostname, usleep, ..

- add !defined(__CYGWIN__) on libevent2022/libevent/event.h
  as for current 1.8 and 1.10 code.


Please also note that usleep is marked as obsolescent on
Open Group Base Specifications Issue 6
http://pubs.opengroup.org/onlinepubs/009695399/functions/usleep.html
and it is missing on Issue7

With this patch it builds on cygwin 64 bit and passes the
same tests of 1.10.x code

Regards
Marco



___
devel mailing list
de...@open-mpi.org
Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
Link to this post: 
http://www.open-mpi.org/community/lists/devel/2015/12/18453.php




[OMPI devel] PMIX on 2.0.0rc1 and cygwin build

2015-12-23 Thread Marco Atzeri

building 2.0.0rc1 on cygwin I was stacked on
opal/mca/pmix/pmix1xx/pmix

Question:
- as pmix depends on hwloc and libevents, is it supposed to
  link against opal shared lib, is it supposed to be included
  in the opal shared lib or is it a circular dependency ?

I solved the build changing from shared to convenience library.

-lib_LTLIBRARIES = libpmix.la
+noinst_LTLIBRARIES = libpmix.la

as circular dependency will be a hell to manage with the
no-undefined flag.

The attached patch solves also

- several lacks of declaration for opal_output functions
  used in the ompi tree.
  They also require libmpi link vs lib@opal_lib_pre...@open-pal.la

- lack of declaration for several  functions
  like access, gethostname, usleep, ..

- add !defined(__CYGWIN__) on libevent2022/libevent/event.h
  as for current 1.8 and 1.10 code.


Please also note that usleep is marked as obsolescent on
Open Group Base Specifications Issue 6
  http://pubs.opengroup.org/onlinepubs/009695399/functions/usleep.html
and it is missing on Issue7

With this patch it builds on cygwin 64 bit and passes the
same tests of 1.10.x code

Regards
Marco

--- origsrc/openmpi-2.0.0rc1/ompi/Makefile.am   2015-12-18 22:52:51.0 
+0100
+++ src/openmpi-2.0.0rc1/ompi/Makefile.am   2015-12-23 06:49:07.003451100 
+0100
@@ -130,6 +130,7 @@ DIST_SUBDIRS = \
 lib_LTLIBRARIES = libmpi.la
 libmpi_la_SOURCES =
 libmpi_la_LIBADD = \
+   $(OMPI_TOP_BUILDDIR)/opal/lib@opal_lib_pre...@open-pal.la \
 datatype/libdatatype.la \
 debuggers/libdebuggers.la \
 mpi/c/libmpi_c.la \
--- origsrc/openmpi-2.0.0rc1/ompi/mca/coll/tuned/coll_tuned.h   2015-12-18 
22:52:51.0 +0100
+++ src/openmpi-2.0.0rc1/ompi/mca/coll/tuned/coll_tuned.h   2015-12-23 
06:49:07.013451100 +0100
@@ -21,6 +21,7 @@
 #include "ompi/mca/mca.h"
 #include "ompi/request/request.h"
 #include "ompi/mca/coll/base/coll_base_functions.h"
+#include "opal/util/output.h"
 
 /* also need the dynamic rule structures */
 #include "coll_tuned_dynamic_rules.h"
--- origsrc/openmpi-2.0.0rc1/ompi/mca/fbtl/base/fbtl_base_find_available.c  
2015-12-18 22:52:51.0 +0100
+++ src/openmpi-2.0.0rc1/ompi/mca/fbtl/base/fbtl_base_find_available.c  
2015-12-23 10:13:01.353793800 +0100
@@ -25,6 +25,7 @@
 #include "mpi.h"
 #include "ompi/constants.h"
 #include "opal/class/opal_list.h"
+#include "opal/util/output.h"
 #include "ompi/mca/mca.h"
 #include "opal/mca/base/base.h"
 #include "ompi/mca/fbtl/fbtl.h"
--- origsrc/openmpi-2.0.0rc1/opal/mca/base/base.h   2015-12-18 
22:52:51.0 +0100
+++ src/openmpi-2.0.0rc1/opal/mca/base/base.h   2015-12-23 09:54:43.169182900 
+0100
@@ -35,6 +35,7 @@
 #include "opal/mca/base/mca_base_var.h"
 #include "opal/mca/base/mca_base_framework.h"
 #include "opal/util/cmd_line.h"
+#include "opal/util/output.h"
 
 BEGIN_C_DECLS
 
--- origsrc/openmpi-2.0.0rc1/opal/mca/base/mca_base_component_repository.c  
2015-12-18 22:52:51.0 +0100
+++ src/openmpi-2.0.0rc1/opal/mca/base/mca_base_component_repository.c  
2015-12-23 09:58:25.202502900 +0100
@@ -30,6 +30,7 @@
 #include 
 #include 
 #include 
+#include 
 
 #include "opal/class/opal_list.h"
 #include "opal/mca/mca.h"
--- origsrc/openmpi-2.0.0rc1/opal/mca/btl/sm/btl_sm.c   2015-12-18 
22:52:51.0 +0100
+++ src/openmpi-2.0.0rc1/opal/mca/btl/sm/btl_sm.c   2015-12-23 
06:49:07.033451100 +0100
@@ -30,6 +30,7 @@
 
 #include 
 #include 
+#include 
 #ifdef HAVE_FCNTL_H
 #include 
 #endif  /* HAVE_FCNTL_H */
--- origsrc/openmpi-2.0.0rc1/opal/mca/btl/tcp/btl_tcp.h 2015-12-18 
22:52:51.0 +0100
+++ src/openmpi-2.0.0rc1/opal/mca/btl/tcp/btl_tcp.h 2015-12-23 
10:09:42.226504600 +0100
@@ -37,6 +37,7 @@
 #ifdef HAVE_NETINET_IN_H
 #include 
 #endif
+#include 
 
 /* Open MPI includes */
 #include "opal/mca/event/event.h"
--- origsrc/openmpi-2.0.0rc1/opal/mca/event/libevent2022/libevent/event.h   
2015-12-18 22:52:51.0 +0100
+++ src/openmpi-2.0.0rc1/opal/mca/event/libevent2022/libevent/event.h   
2015-12-23 06:49:07.053451200 +0100
@@ -56,7 +56,7 @@ extern "C" {
 /* For int types. */
 #include 
 
-#ifdef WIN32
+#if defined(WIN32) && !defined(__CYGWIN__)
 #ifndef WIN32_LEAN_AND_MEAN
 #define WIN32_LEAN_AND_MEAN
 #endif
--- origsrc/openmpi-2.0.0rc1/opal/mca/mpool/base/mpool_base_tree.c  
2015-12-18 22:52:51.0 +0100
+++ src/openmpi-2.0.0rc1/opal/mca/mpool/base/mpool_base_tree.c  2015-12-23 
10:00:28.592679000 +0100
@@ -28,6 +28,7 @@
  * Description of the Registration Cache framework
  */
 
+#include 
 #include "opal_config.h"
 
 #include "opal/mca/mca.h"
--- origsrc/openmpi-2.0.0rc1/opal/mca/pmix/base/pmix_base_fns.c 2015-12-18 
22:52:51.0 +0100
+++ src/openmpi-2.0.0rc1/opal/mca/pmix/base/pmix_base_fns.c 2015-12-23 
10:05:17.804124200 +0100
@@ -21,6 +21,7 @@
 
 #include 
 #include 
+#include 
 
 #include "opal_stdint.h"
 #include "opal/class/opal_pointer_array.h"
--- origsrc/openmpi-2.0.0rc1/opal/mca/pmix/pmix1xx/pmix/Makefile.am