[mpich2-dev] Failures on Solaris and standard debug macros

Darius Buntinas buntinas at mcs.anl.gov
Wed Dec 10 14:22:47 CST 2008


I removed vararg macros from three places.  The remaining ones are in
hydra, where it looks like there's an #ifdef to check if they're
supported, and the ib netmod which isn't used anyway.

-d

On 12/10/2008 08:28 AM, William Gropp wrote:
> This morning's failures to compile on Solaris are due to the use of a
> varargs macro definition, which is not universally supported.  This was
> used for some debug printfs in the code, as a way to turn them on and
> off easily.  This approach, while quick, has several flaws:
> 
> 1) Even in the debug/development version of the code, it requires
> recompilation of the file
> 2) It violates the coding standard that restricts the use of printf
> (this is done to ensure that error messages can be correctly
> internationalized - raw printfs with error messages are incorrect in any
> code that intends to support other languages)
> 
> There is a solution - there are debugging macros that allow the
> informational statements to be turned on and off by class at run time,
> and that can be eliminated entirely in production versions.  These are
> used throughout the MPICH2 code and are preferable to the use of raw
> printfs.  The are a bit longer, but through the use of editor macros or
> simply saving the template in an editor register, are easy to insert. 
> See http://wiki.mcs.anl.gov/mpich2/index.php/Debug_Event_Logging for
> instructions on using these macros.
> 
> William Gropp
> Deputy Director for Research
> Institute for Advanced Computing Applications and Technologies
> Paul and Cynthia Saylor Professor of Computer Science
> University of Illinois Urbana-Champaign
> 
> 
> 
> 



More information about the mpich2-dev mailing list