weak for Darwin

Aaron W. LaFramboise aaronavay62@aaronwl.com
Sun Oct 31 02:56:00 GMT 2004


Geoffrey Keating wrote:

> Index: libstdc++-v3/ChangeLog
> 2004-10-25  Geoffrey Keating  <geoffk@apple.com>
>
> 	* libsupc++/new_op.cc (new): Make weak.
> 	* libsupc++/new_opnt.cc (new): Make weak.
> 	* libsupc++/new_opv.cc (new): Make weak.
> 	* libsupc++/new_opvnt.cc (new): Make weak.
> 	* libsupc++/delete_op.cc (delete): Make weak.
> 	* libsupc++/delete_opnt.cc (delete): Make weak.
> 	* libsupc++/delete_opv.cc (delete): Make weak.
> 	* libsupc++/delete_opvnt.cc (delete): Make weak.

Hi Geoffrey,

Why is it necessary to make these symbols weak?  It doesn't seem like it
should be necessary, as prior definitions of these symbols will override
them anyway, and there are no other references to these symbols within
these translation units.

The reason I'm asking is that I think this change will break non-ELF
targets where weak symbols are translation-unit local (that is, weak
symbols have meaning #2, but not meaning #1).  One such binary format is
PECOFF, and I think there are others that have similar semantics.

Aaron W. LaFramboise



More information about the Libstdc++ mailing list