This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils 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] |
My understanding is that coalesced symbols are similar to, but not quite the same as COMDAT sections. In our implementation, coalesced symbols are placed into sections marked with the S_COALESCED flag, each of which may contain any number of coalesced symbols. I've tried to make the documentation reflect this a bit better (speaking of which, I should mention that these docs are extensively plagiarized from docs written by another engineer at Apple; I'm just adapting them as best I can from the release notes for use in the stabs document).Coalesced symbols look quite similar to COMDAT sections (e.g., SEC_LINK_DUPLICATES_DISCARD). They're called coalesced *symbols*, but in BFD terminology they are really *sections*. It would be nice if you mentioned this in your new documentation. Thanks.
There's no reason they couldn't be supported on other platforms, though it seems unlikely they would be (since I believe COMDAT sections serve the same purpose). I thought that starting the section with "On Mac OS X" and including that in the menu entry was a reasonably clear way to mark the feature as Mac OS X -specific. I'm certainly willing to include something stronger, but couldn't think of a way to do it that didn't seem awkward --- any suggestions?Also, are coalesced symbols a MacOS-only feature, or are they supported (or can reasonably be expected to be supported in the future) on other platforms? If the former, I think we should tell right at the start of this section that the information pertains only to the Mac.
Actually, the static linker leaves them in, so that they can be combined across shared libraries. Once these patches are in, I'll be submitting patches to GDB to direct it to ignore BNSYM and ENSYM symbols.I have the impression that GDB doesn't need to know about these symbols, since the static linker has removed them by the time GDB sees the file. If that's so, that should be stated explicitly. There must be more information in these stabs that allows the static linker to pair up a BNSYM..ENSYM region with its symbol in the coalesced section. Whatever the case, the way the pairing is done should be explained in complete detail here.
Attachment:
coalesced-symbols.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |