Re: ELF interposition and One Definition Rule

2013-09-03 Thread Nathan Sidwell
On 08/28/13 12:52, Jan Hubicka wrote: What is really important for backend is that it is not defined what happens when you compare addresses of those functions (based on fact that youcan't take it, as for ctors/dtors, or compare it, as for virtual functions). If backend also knows that they are

Re: ELF interposition and One Definition Rule

2013-08-28 Thread Jan Hubicka
> > I had thought that that case (overriding malloc etc) was what this patch was > > dealing with. Perhaps I was confused. > > > > There's nothing particularly special about ctors, dtors and virtual function > > implementations. Their common feature, as Jan described, is that it's hard > > to tak

Re: ELF interposition and One Definition Rule

2013-08-28 Thread Richard Biener
On Tue, Aug 27, 2013 at 2:53 PM, Nathan Sidwell wrote: > On 08/26/13 20:58, Jason Merrill wrote: > >> I would be happy with an even stronger default that optimizes on the >> assumption >> that no interposition occurs; typically interposition is overriding a >> symbol >> found in a dynamic library

Re: ELF interposition and One Definition Rule

2013-08-27 Thread Nathan Sidwell
On 08/26/13 20:58, Jason Merrill wrote: I would be happy with an even stronger default that optimizes on the assumption that no interposition occurs; typically interposition is overriding a symbol found in a dynamic library (i.e. malloc) rather than a symbol defined in the same translation unit

Re: ELF interposition and One Definition Rule

2013-08-26 Thread Gabriel Dos Reis
On Mon, Aug 26, 2013 at 7:58 PM, Jason Merrill wrote: > On 08/26/2013 11:21 AM, Jan Hubicka wrote: >> >> Our default behaviour special case inline functions that are always >> AVAIL_AVAILABLE and, via decl_replaceable_p, also any COMDAT (that may be >> for >> functions since all COMDATs are also i

Re: ELF interposition and One Definition Rule

2013-08-26 Thread Jason Merrill
On 08/26/2013 11:21 AM, Jan Hubicka wrote: Our default behaviour special case inline functions that are always AVAIL_AVAILABLE and, via decl_replaceable_p, also any COMDAT (that may be for functions since all COMDATs are also inlines, but makes difference for variables I think). Not all COMDAT

Re: ELF interposition and One Definition Rule

2013-08-26 Thread Mike Stump
On Aug 26, 2013, at 8:21 AM, Jan Hubicka wrote: > My understanding of C++ One Definition Rule, in a strict sense, does not a > allow in to define two functions of the same name and different semantics in a > valid program . I also think that all DSOs eventually linked together or > dlopenned are p