Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |  

This web mail archive is frozen.

This page is part of a frozen web archive of this mailing list.

You can still navigate around this archive, but know that no new mails have been added to it since July of 2016.

Click here to be taken to the new web archives of this list; it includes all the mails that are in this frozen archive plus all new mails that have been sent to the list since it was migrated to the new archives.

Subject: Re: [OMPI devel] [OMPI svn] svn:open-mpi r22014
From: George Bosilca (bosilca_at_[hidden])
Date: 2009-09-30 00:08:15


Ethan is right. The MPIR_Breakpoint function will be queried by your
preferred parallel debugger, in order to set a breakpoint. Therefore,
to allow the debuggers to be able to find the function we have to make
sure it is externally visible, i.e. flagged with OMPI_DECLSPEC (for
the one in libmpi) and with ORTE_DECLSPEC for the one in libopen-rte.
And yes, we really need the *_DECLSPEC to make it visible, extern is
not enough.

Moreover, looking in the ompi/debugger/debugger.h file I realized that
the two functions declared inside are flagged OMPI_DECLSPEC when they
should not have been, as these two functions are not called from
outside the libmpi.

Please try r22032.

   george.

On Sep 29, 2009, at 17:55 , Jeff Squyres wrote:

> 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...
>>
>
>
> --
> Jeff Squyres
> jsquyres_at_[hidden]
>
> _______________________________________________
> devel mailing list
> devel_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/devel