On Sep 29, 2009, at 5:30 PM, Ralph Castain wrote:
> The issue isn't why or why not static, Jeff - the issue is that we get
> a compiler warning whenever we do a developer build.
Right. The initial issue was the static-ness, though -- Ethan removed
the static because some compilers were effectively inlining the
function (and therefore removing the symbol from the library, making
the parallel debugger attach stuff not work) presumably because a) the
function was static, b) the function was short with no side effects,
and c) the function was only called once within that .c file.
Removing the "static" from the function prototype violated those
assumptions so that it could no longer be inlined (And therefore the
symbol definitely appears in the library). But then we ran across the
"must be prototyped" warning.
That's where all this came from. :-)
So -- I still don't think we need to DECLSPEC the prototype. :-)
> On Sep 29, 2009, at 2:32 PM, Jeff Squyres wrote:
> > I don't think we need to DECLSPEC it, do we? We don't need (or
> > want) this symbol to be visible at the link level when user apps
> > link against libmpi. You might want to put in a comment about why
> > it's not static so that we don't repeat this conversation again next
> > year. ;-)
> > I think not having it DECLSPEC'ed should still work for the debugger
> > (since it worked before when it was static), but if you could test
> > it to be sure, that would be great...