[mpich-commits] [mpich] MPICH primary repository branch, master, updated. v3.2b4-217-g3675cb8

Service Account noreply at mpich.org
Mon Sep 14 20:15:18 CDT 2015


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".

The branch, master has been updated
       via  3675cb81ccedc59bb50066623451ea24de48a506 (commit)
       via  1083e3050705774163e1c4301f75b605fca2eaec (commit)
       via  16905e60a726d421d522c502f2d065d0ba88ee24 (commit)
      from  eaf8835f0711a08f425b4534d908a59390de3225 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/3675cb81ccedc59bb50066623451ea24de48a506

commit 3675cb81ccedc59bb50066623451ea24de48a506
Author: William Gropp <wgropp at illinois.edu>
Date:   Wed Sep 2 14:19:15 2015 -0400

    Fix misspelled comment in getcoverage
    
    Signed-off-by: Ken Raffenetti <raffenet at mcs.anl.gov>

diff --git a/maint/getcoverage.in b/maint/getcoverage.in
index 43e0b96..c9c69f2 100644
--- a/maint/getcoverage.in
+++ b/maint/getcoverage.in
@@ -784,7 +784,7 @@ sub ExpandDir {
 	    next;
 	}
 	elsif (-d "$dir/$filename") {
-	    # Skip pmpi directories used for mergeing gcov output
+	    # Skip pmpi directories used for merging gcov output
 	    if ($filename =~ /\-pmpi$/) { next; }
 	    # Skip mpi directories used for handling name-mangled files
 	    if ($filename =~ /\-mpi$/) { next; }

http://git.mpich.org/mpich.git/commitdiff/1083e3050705774163e1c4301f75b605fca2eaec

commit 1083e3050705774163e1c4301f75b605fca2eaec
Author: William Gropp <wgropp at illinois.edu>
Date:   Wed Sep 2 14:09:56 2015 -0400

    Remove trailing blanks and typo in Makefile
    
    Signed-off-by: Ken Raffenetti <raffenet at mcs.anl.gov>

diff --git a/Makefile.am b/Makefile.am
index 2b6403d..811a4df 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -300,11 +300,11 @@ gcov_sources = $(lib_lib at MPILIBNAME@_la_SOURCES)
 #   bcast.c --> {bcast.o,lib_libpmpi_la-bcast.o}
 # It still generates a bcast.c.gcov output for each object file.  Long file
 # names and preserved paths do not help with this problem.
-# What we can do in this case is to move the second files to a separate 
-# directory, rename name, and run the GCOV on the new files.
+# What we can do in this case is to move the second files to a separate
+# directory, rename name, and run gcov on the new files.
 # For the web-based coverage reports, the gcov output for the two files
-# needs to be merged; see maint/gcovmerge .  
-# To make it easier to re-run the coverage generation, we copy, rather than 
+# needs to be merged; see maint/gcovmerge .
+# To make it easier to re-run the coverage generation, we copy, rather than
 # move, when there are two object files for each source file.
 # A change to the build procedure broke this target.  This is a partial though
 # nearly complete fix to the broken build process.  The generated coverage

http://git.mpich.org/mpich.git/commitdiff/16905e60a726d421d522c502f2d065d0ba88ee24

commit 16905e60a726d421d522c502f2d065d0ba88ee24
Author: William Gropp <wgropp at illinois.edu>
Date:   Wed Sep 9 11:23:06 2015 -0500

    Fixes for coverage target.
    
    Handles changes in the object file naming convention in both
    Makefile.am and getcoverage script. Refs #2252
    
    Signed-off-by: Ken Raffenetti <raffenet at mcs.anl.gov>

diff --git a/Makefile.am b/Makefile.am
index 4ce3cd5..2b6403d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -306,24 +306,78 @@ gcov_sources = $(lib_lib at MPILIBNAME@_la_SOURCES)
 # needs to be merged; see maint/gcovmerge .  
 # To make it easier to re-run the coverage generation, we copy, rather than 
 # move, when there are two object files for each source file.
+# A change to the build procedure broke this target.  This is a partial though
+# nearly complete fix to the broken build process.  The generated coverage
+# files after the fix appear mostly correct, though there appear to also be
+# errors in the gcov output itself (the format of this output changes
+# frequently).  However, the coverage analysis is still valuable and has
+# identified missing tests.
+#
+# The problem:
+#   The source file is foo.c
+#   gcov expects foo.o, foo.gcno, and foo.gcda files
+#   The MPICH build process, unfortunately, does not produce a foo.o file;
+#   instead, it produces a .libs/lib_lib at MPILIBNAME@_la-foo.o file (and
+#   similarly .libs/lib_lib at MPILIBNAME@_la_foo.gcno etc.
+#   This change broke this coverage target.  If further changes to the
+#   naming conventions for object files are made, make sure that the
+#   coverage target is also modified to correspond to those changes.
+#
 coverage:
 	@for file in $(gcov_sources) ; do \
 	    dir=`dirname $$file` ; \
 	    bname=`basename $$file` ; \
 	    aux=`echo $$bname | sed -e 's,\.*$$,,'` ; \
-	    echo "( $(GCOV) -b -f -o $$file $$file && mv $${bname}.gcov $$dir )" ; \
-	    ( $(GCOV) -b -f -o $$file $$file && mv $${bname}.gcov $$dir ) ; \
 	    sname=`echo $$bname | sed -e 's/\.[^\.]*$$//'` ;\
+	    if [ -s "$$dir/$$sname.o" ] ; then \
+	        echo "( $(GCOV) -b -f -o $$file $$file && mv $$bname.gcov $$dir )" ; \
+	        ( $(GCOV) -b -f -o $$file $$file && mv $$bname.gcov $$dir ) ; \
+	    elif [ -s "$$dir/lib_lib at MPILIBNAME@_la-$$sname.o" ] ; then \
+	        if [ ! -d $$dir-mpi ] ; then mkdir $$dir-mpi ; fi ; \
+		echo "Copying name-mangled files to $$dir-mpi" ; \
+		for pfile in $$dir/.libs/lib_lib at MPILIBNAME@_la-$$sname.* ; do \
+		     nfile=`echo $$pfile | sed -e 's/lib_lib at MPILIBNAME@_la-//'` ;\
+		     nfile=`basename $$nfile` ; \
+		     echo "cp -p $$pfile $$dir-mpi/$$nfile" ; \
+		     cp -p $$pfile $$dir-mpi/$$nfile ; \
+		done ; \
+		for pfile in $$dir/lib_lib at MPILIBNAME@_la-$$sname.o ; do \
+		     nfile=`echo $$pfile | sed -e 's/lib_lib at MPILIBNAME@_la-//'` ;\
+		     nfile=`basename $$nfile` ; \
+		     echo "( cd $$dir-mpi && $(GCOV) -b -f $$nfile )" ; \
+		     ( cd $$dir-mpi && $(GCOV) -b -f $$nfile ) ; \
+		     if [ ! -s $$dir-mpi/$$bname.gcov ] ; then \
+			echo "No $$bname.gcov file created" ;\
+		     else \
+		        mv $$dir-mpi/$$bname.gcov $$dir ; \
+		     fi ; \
+		done ; \
+	    else \
+		echo "Missing object file for source $$file" ; \
+	    fi ; \
 	    if [ -s "$$dir/lib_lib at PMPILIBNAME@_la-$$sname.o" ] ; then \
 	        if [ ! -d $$dir-pmpi ] ; then mkdir $$dir-pmpi ; fi ; \
-		for pfile in $$dir/lib_lib at PMPILIBNAME@_la-$$sname.* ; do \
+		echo "Copying name-mangled files to $$dir-pmpi" ; \
+		for pfile in $$dir/.libs/lib_lib at PMPILIBNAME@_la-$$sname.* ; do \
+		     nfile=`echo $$pfile | sed -e 's/lib_lib at PMPILIBNAME@_la-//'` ;\
+		     nfile=`basename $$nfile` ; \
+		     echo "cp -p $$pfile $$dir-pmpi/$$nfile" ; \
+		     cp -p $$pfile $$dir-pmpi/$$nfile ; \
+		done ; \
+		for pfile in $$dir/lib_lib at PMPILIBNAME@_la-$$sname.o ; do \
 		     nfile=`echo $$pfile | sed -e 's/lib_lib at PMPILIBNAME@_la-//'` ;\
 		     nfile=`basename $$nfile` ; \
-		     cp $$pfile $$dir-pmpi/$$nfile ; \
 		     echo "( cd $$dir-pmpi && $(GCOV) -b -f $$nfile )" ; \
 		     ( cd $$dir-pmpi && $(GCOV) -b -f $$nfile ) ; \
-		     $(srcdir)/maint/gcovmerge $$dir-pmpi/$$bname.gcov \
+		     if [ -s $$dir/$$bname.gcov ] ; then \
+		         echo "gcovmerge $$dir-pmpi/$$bname.gcov $$dir/$$bname.gcov > $$dir/$$bname.gcov.merge" ; \
+		         $(srcdir)/maint/gcovmerge $$dir-pmpi/$$bname.gcov \
 				$$dir/$$bname.gcov > $$dir/$$bname.gcov.merge ;\
+		     else \
+			 echo "Did not find file $$dir/$$bname.gcov" ; \
+		         echo "mv $$dir-pmpi/$$bname.gcov $$dir/$$bname.gcov";\
+			 mv $$dir-pmpi/$$bname.gcov $$dir/$$bname.gcov ; \
+		     fi ;\
 		done ; \
 	    fi ; \
 	    rm -f *.gcov ; \
diff --git a/maint/getcoverage.in b/maint/getcoverage.in
index 9eb7239..43e0b96 100644
--- a/maint/getcoverage.in
+++ b/maint/getcoverage.in
@@ -170,6 +170,10 @@ for my $filename (@TopFilenames) {
 	# Check for a "pmpi" directory - one that was used to merge 
 	# PMPI and MPI outputs.  If found, we skip to the next directory
 	if ($filename =~ /\-pmpi$/) { next; }
+	# Added to handle a change in the naming convention for object files
+	# in MPICH, which now needs a -mpi directory as well as the -pmpi
+	# directory needed to handle the pmpi object files.
+	if ($filename =~ /\-mpi$/) { next; }
 	# Expand the directory into a list of files.  If there are 
 	# subdirectories, expand them too (e.g., get a list of 
 	# *every* file within the directory tree. 
@@ -782,6 +786,8 @@ sub ExpandDir {
 	elsif (-d "$dir/$filename") {
 	    # Skip pmpi directories used for mergeing gcov output
 	    if ($filename =~ /\-pmpi$/) { next; }
+	    # Skip mpi directories used for handling name-mangled files
+	    if ($filename =~ /\-mpi$/) { next; }
 	    $otherdirs[$#otherdirs+1] = "$dir/$filename";
 	}
 	elsif ($filename =~ /(.*\.gcov)$/) {

-----------------------------------------------------------------------

Summary of changes:
 Makefile.am          |   72 +++++++++++++++++++++++++++++++++++++++++++------
 maint/getcoverage.in |    8 +++++-
 2 files changed, 70 insertions(+), 10 deletions(-)


hooks/post-receive
-- 
MPICH primary repository


More information about the commits mailing list