This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Proposed change: weak symbol support for Darwin


On Wed, 2003-10-15 at 10:43, Matt Austern wrote:
> On Oct 14, 2003, at 3:00 PM, Mark Mitchell wrote:
> 
> >
> >> The only reason I was reluctant to make the change globally was that
> >> on most platforms (e.g. Linux/x86) the current scheme ain't broke.
> >
> > For right or wrong, the ABI requires that all vtables with external
> > linkage have "vague linkage".  Therefore, I don't think we should 
> > change
> > the linkage of vtables on any platform, except those that don't have
> > proper support for weak/COMDAT/etc.
> 
> I agree that we have to conform to what the ABI says.  So this may just
> be a digression, but...  Do you happen to remember why the ABI says
> that, and can you think of any way for a program to tell the difference
> between emitting a symbol in a single translation unit with vague
> linkage and emitting it with ordinary linkage?

No, I don't remember -- except that it may have seemed easier to do all
vtables the same way, and it's a protection in the case where you have
"inline" in some translation units and not others, which is
non-conforming, but not necessarily uncommon.  That, of course, suggests
how a program can tell the difference. :-)

-- 
Mark Mitchell <mark@codesourcery.com>
CodeSourcery, LLC


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]