[mpich] MPICH primary repository branch, master, updated. v3.2b4-217-g3675cb8
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/3675cb81ccedc59bb50066623451ea24de... commit 3675cb81ccedc59bb50066623451ea24de48a506 Author: William Gropp <[email protected]> Date: Wed Sep 2 14:19:15 2015 -0400 Fix misspelled comment in getcoverage Signed-off-by: Ken Raffenetti <[email protected]> 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/1083e3050705774163e1c4301f75b605fc... commit 1083e3050705774163e1c4301f75b605fca2eaec Author: William Gropp <[email protected]> Date: Wed Sep 2 14:09:56 2015 -0400 Remove trailing blanks and typo in Makefile Signed-off-by: Ken Raffenetti <[email protected]> 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@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/16905e60a726d421d522c502f2d065d0ba... commit 16905e60a726d421d522c502f2d065d0ba88ee24 Author: William Gropp <[email protected]> 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 <[email protected]> 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@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@MPILIBNAME@_la-foo.o file (and +# similarly .libs/lib_lib@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@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@MPILIBNAME@_la-$$sname.* ; do \ + nfile=`echo $$pfile | sed -e 's/lib_lib@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@MPILIBNAME@_la-$$sname.o ; do \ + nfile=`echo $$pfile | sed -e 's/lib_lib@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@PMPILIBNAME@_la-$$sname.o" ] ; then \ if [ ! -d $$dir-pmpi ] ; then mkdir $$dir-pmpi ; fi ; \ - for pfile in $$dir/lib_lib@PMPILIBNAME@_la-$$sname.* ; do \ + echo "Copying name-mangled files to $$dir-pmpi" ; \ + for pfile in $$dir/.libs/lib_lib@PMPILIBNAME@_la-$$sname.* ; do \ + nfile=`echo $$pfile | sed -e 's/lib_lib@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@PMPILIBNAME@_la-$$sname.o ; do \ nfile=`echo $$pfile | sed -e 's/lib_lib@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
participants (1)
-
noreply@mpich.org