[ET Trac] [Einstein Toolkit] #767: removing the last REQUIRES item from configuration.ccl leads to build failures

Einstein Toolkit trac-noreply at einsteintoolkit.org
Tue Mar 6 10:29:50 CST 2012


#767: removing the last REQUIRES item from configuration.ccl leads to build
failures
---------------------+------------------------------------------------------
  Reporter:  rhaas   |       Owner:     
      Type:  defect  |      Status:  new
  Priority:  minor   |   Milestone:     
 Component:  Cactus  |     Version:     
Resolution:          |    Keywords:     
---------------------+------------------------------------------------------

Comment (by rhaas):

 Replying to [comment:1 eschnett]:
 > I believe this is not directly related to ccl file. I see the same
 symptoms when I remove a header file, but have old dependency information
 (the auto-generated .d files) that still say this header file is required.
 In this case make fails with the strange message you list above.

 I see. I had encountered the error a number of times but this was the
 first time that I could reproduce it.

 >
 > The solution is to either remove the dependency files of the thorn in
 question, or to use make *-cleandeps. After this, the build will work
 fine: the source tree is self-consistent, only the dependency information
 is outdated.
 >
 > This is a bug in Cactus which generates the dependency information. This
 dependency information is updated after reading the old dependency
 information, and updating relies on the outdated dependency information --
 there is no way out. Luckily, header files are removed only rarely, so
 this is not a common symptom.
 >
 > A solution could be to detect dependency errors that occur while
 checking dependencies, and if so, try again. Or, if a source file was
 changed, we could recreate the dependency information, without checking
 the dependency information for whether the dependency information needs to
 be recreated... I believe this paragraph doesn't make sense unless you
 already understand what is going on.

 That would seem to make sense and be in-line with the typical cause listed
 in the make bug report. If always regenerating the dependencies of a file
 when the file changes fixes this, then I would think that this is a good
 idea. At that point the file has to be read anyway (for compilation) so we
 are not slowing down the compile process very much on slow file systems.

 Would this also make 'make' generate useful error messages or would one
 still have to use the double-include workaround to get error messages out
 of make 3.81?

-- 
Ticket URL: <https://trac.einsteintoolkit.org/ticket/767#comment:2>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit


More information about the Trac mailing list