http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55693



--- Comment #41 from Jack Howarth <howarth at nitro dot med.uc.edu> 2013-01-24 
15:23:54 UTC ---

Iain,

    I believe the current behavior of dyld in darwin10/11/12 is clearly

described in...



http://developer.apple.com/library/mac/#releasenotes/DeveloperTools/RN-dyld/_index.html



Specifically in the section...



Faster Weak-symbol Coalescing

C++ uses weak definitions to solve a number of issues. But if weak symbols are

not hidden, the dynamic loader needs to make them unique at runtime. The

previous algorithm for doing that was expensive. For every weak symbol in each

image, the dynamic loader would look up that symbol in every other image. In OS

X v10.6 the algorithm is more efficient: It assumes that weak-symbol duplicates

are rare. First, all symbols are bound by their normal two-level namespace

binding. Then there is as a separate pass that takes an alphabetized list of

weak symbols from each image and iterates through just those weak symbols

looking for duplicates. The dynamic loader updates only the duplicates. The new

LINKEDIT segment format is optimized for this algorithm.



This issue seems to also be described in this thread on cfe-commits...



http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20120625/059752.html

http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20120625/059755.html

http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20120625/059793.html

http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20120625/059796.html

http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20120625/059799.html

http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20120625/059803.html

http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20120625/059807.html

http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20120625/059819.html

http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20120625/059825.html

Reply via email to