-
Notifications
You must be signed in to change notification settings - Fork 889
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix "autogen.pl --no-ompi" #1143
Conversation
my 0.02US$ all test/*/Makefile.am does define check_PROGRAMS except monitoring that defines noinst_PROGRAMS my best bet would be to update test/Makefile.am and append monitoring to SUBDIRS only if PROJECT_OMPI I will not be able to test that before tuesday... |
@@ -256,7 +256,9 @@ m4_ifdef([project_oshmem], [OSHMEM_CONFIGURE_OPTIONS]) | |||
# Set up project specific AM_CONDITIONALs | |||
AS_IF([test "$enable_ompi" != "no"], [project_ompi_amc=true], [project_ompi_amc=false]) | |||
m4_ifndef([project_ompi], [project_ompi_amc=false]) | |||
AM_CONDITIONAL([PROJECT_OMPI], [test "$project_ompi_amc" = "true"]) | |||
AM_CONDITIONAL([PROJECT_OMPI], [test "$PROJECT_OMPI_amc" = "true"]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This change in case doesn't seem right -- the lower case version is defined on the three lines above.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Argh - that is a typo. I didn't mean to change that line.
A better solution might be to move the test/monitoring directory to be within ompi/mca/pml/monitoring. That way, it'll already naturally be traversed (or not), depending on whether the monitoring PML is going to be built or not. |
We always put all our tests together in a single location. Scattering the tests all over the development tree is not only ugly but confusing. |
It also makes the build conditionals a nightmare. FWIW, the usnic BTL has had its tests in |
These are exceptions and not the norm. Moreover, the monitoring PML only depends on HWLOC which is now a required block in OMPI, and as a result the monitoring PML is supposedly always compiled. What is the problem with these tests? |
The monitoring PML can be compiled out via |
Let me check more precisely what the problem is. The interaction between the PML an the rest of the world is done via MPIT pvars and cvars, and the test should have failed graciously. |
I just closed up my laptop, but IIRC, it's a linking problem. Sent from my phone. No type good. |
It isn't a linking problem - the issue is that MCA_BUILD_ompi_pml_monitoring_DSO is only defined if you are (a) building the OMPI layer and (b) didn't exclude that component. So autogen fails because that parameter hasn't been defined and yet is used in the test Makefile.am. |
How do we protect the MPI tests today ? |
The problem is simple:
That second if statement is -not- protected by the first one - autogen still requires that the param being tested must be defined, even if the first if is not "true" |
fwiw an other way to fix this is to update that might be a bit convoluted ... imho, i agree with @bosilca we should keep the tests in more or less the same location
the pros is that would fix such kind of issues in an elegant way |
@ggouaillardet I tried your suggestion, and it does not work - autogen still insists that the parameter must be defined:
|
Let's comment out the generation of the shared library. This library is a PMPI type of interception layer that can be linked with any applications in order to get automatic support for the monitoring framework. It is not necessary for the testing. |
@rhc54 oops, my bad diff --git a/configure.ac b/configure.ac
index eec43fc..3e23a3c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1377,8 +1377,9 @@ AC_CONFIG_FILES([
test/support/Makefile
test/threads/Makefile
test/util/Makefile
- test/monitoring/Makefile
])
+m4_ifdef([project_ompi], [AC_CONFIG_FILES([test/monitoring/Makefile])])
+
AC_CONFIG_FILES([contrib/dist/mofed/debian/rules],
[chmod +x contrib/dist/mofed/debian/rules])
AC_CONFIG_FILES([contrib/dist/mofed/compile_debian_mlnx_example],
diff --git a/test/Makefile.am b/test/Makefile.am
index 5252fd5..5d5323d 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -11,6 +11,8 @@
# All rights reserved.
# Copyright (c) 2009 Sun Microsystems, Inc. All rights reserved.
# Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
+# Copyright (c) 2015 Research Organization for Information Science
+# and Technology (RIST). All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
@@ -19,5 +21,8 @@
#
# support needs to be first for dependencies
-SUBDIRS = support asm class threads datatype util monitoring
+SUBDIRS = support asm class threads datatype util
+if PROJECT_OMPI
+SUBDIRS += monitoring
+endif
DIST_SUBDIRS = event $(SUBDIRS) |
…nditional in the test/monitoring Makefile.am that is only defined if OMPI is built. Per suggestion from @bosilca, comment out generation of the shared library Use the patch from Gilles instead
@ggouaillardet Looks fine to me, and it seems to work, so let's go with that approach. Thx! |
@rhc54 @ggouaillardet @bosilca No no no! This does not solve the problem of conditional compilation. If I The tests for the monitoring PML need to only be built when the monitoring PML itself is built. The best way to to do that is to put the tests in the same directory as the monitoring PML itself, so that if the monitoring PML is not built, its directory is skipped and the tests aren't built, either. The whole GNU |
…_ireduce_scatter_block coll/libnbc: fix MPI_Ireduce_scatter_block for one task communicator
This was broken due to inclusion of a conditional (MCA_BUILD_ompi_pml_monitoring_DSO) in the test/monitoring Makefile.am that is only defined if OMPI is built.
@jsquyres @bosilca I suspect this isn't the right way to fix the build, but I've tried everything I can think of to resolve it with no luck. This seems to work, but looks ugly. Could you guys please look at this?