Re: [OMPI devel] PMIX on 2.0.0rc1 and cygwin build
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 Atzeriwrote: > 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
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
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
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