[ET Trac] [Einstein Toolkit] #456: Ensure functions are not defined twice

Einstein Toolkit trac-noreply at einsteintoolkit.org
Tue Jun 21 13:59:59 CDT 2011


#456: Ensure functions are not defined twice
-------------------------+--------------------------------------------------
 Reporter:  hinder       |       Owner:     
     Type:  enhancement  |      Status:  new
 Priority:  major        |   Milestone:     
Component:  Cactus       |     Version:     
 Keywords:               |  
-------------------------+--------------------------------------------------
 When multiple source files define non-static functions with the same name,
 these are all compiled together into the resulting executable.  Which one
 gets called is not predictable by the user.

 This can happen if a user copies a thorn, modifies it slightly, and
 compiles both thorns into the same configuration.  This can lead to *very*
 difficult-to-find bugs, and it would be helpful if Cactus was able to
 prevent this, or at least to mitigate the problem.

 At the CST level, Cactus should be able to tell that there are two thorns
 which schedule functions with the same name.  At the moment, this is not
 caught.  I propose that this should be a fatal error, as there is no way
 to predict which function will be called eventually.

 This will solve the problem in some cases, but not in the case where there
 are instances of duplicate function names which are not scheduled. It
 should be possible to scan the object/library files using standard tools
 (nm etc) to determine if there are multiple globally visible symbols with
 the same name.  There might even be standard tools for this purpose.
 Doing this in a portable way might not be straightforward, but having an
 implementation for Linux, for example, would catch the majority of cases.

-- 
Ticket URL: <https://trac.einsteintoolkit.org/ticket/456>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit


More information about the Trac mailing list