#1897: MPI thorn builds when it shouldn't ------------------------------------+--------------------------------------- Reporter: hinder | Owner: Type: defect | Status: new Priority: major | Milestone: Component: EinsteinToolkit thorn | Version: development version Resolution: | Keywords: ------------------------------------+---------------------------------------
Comment (by hinder):
The first section shows that enough options are provided that we don't need to build OpenMPI, but the second section shows that we are building it anyway. The culprit appears to be the "done" file. The MPI "done" file is not being updated with the current date by detect.pl, and make.code.deps has a rule which says to run build.pl if the done file is older than the build.pl. I suspect the relevant commit is
{{{ commit 86b1f5fad74891a044ef1f6f2059f98c3e8b0db0 Author: eschnett eschnett@043a8217-7a68-40fe-abfd-36aa7d4fa6a8 Date: Sat Apr 23 05:18:34 2016 +0000
Don't modify the 'done' file unless there was a real change
git-svn-id: https://svn.cactuscode.org/projects/ExternalLibraries/MPI/trunk@75 043a8217-7a68-40fe-abfd-36aa7d4fa6a8
diff --git a/src/detect.pl b/src/detect.pl index 3ddaf3c..36712c3 100644 --- a/src/detect.pl +++ b/src/detect.pl @@ -154,8 +154,10 @@ if ($mpi_build and !$mpi_info_set) { } else { my $THORN = "MPI"; my $DONE_FILE = "$ENV{SCRATCH_BUILD}/done/${THORN}"; - mkdir("$ENV{SCRATCH_BUILD}/done"); - system("date > ${DONE_FILE}") == 0 or die; + if (! -e $DONE_FILE) { + mkdir("$ENV{SCRATCH_BUILD}/done"); + system("date > ${DONE_FILE}") == 0 or die; + } } }}}
So it looks like make.code.deps assumes that the done file will be updated unless building is needed, but this change is stopping this from happening.