From: Klee Dienes <klee@apple.com>
To: binutils@sources.redhat.com
Cc: gdb-patches@sources.redhat.com
Subject: [RFA] Add stabs entries for coalesced symbols.
Date: Mon, 18 Nov 2002 16:37:00 -0000 [thread overview]
Message-ID: <147F64EA-FB57-11D6-84AF-00039396EEB8@apple.com> (raw)
In-Reply-To: <C774777A-FB47-11D6-84AF-00039396EEB8@apple.com>
[-- Attachment #1: Type: text/plain, Size: 601 bytes --]
Ignore my previous post; I sent to the wrong lists and left off the
ChangeLog entries:
The following patch adds definitions for Mac OS X -style coalesced
symbols to aout/stab.def and stabs.texinfo. For general documentation
on coalesced symbols, search for N_BNSYM in the following link:
http://web.mit.edu/darwin/src/modules/cctools/RelNotes/
Private_CompilerTools.html
I suspect there may be a better place to "Relocatable Symbol Blocks"
section of the TeXinfo file, but I wasn't able to find it; I'm happy to
move it elsewhere in the document if someone can tell me a better place.
[-- Attachment #2: stabs.txt --]
[-- Type: text/plain, Size: 3663 bytes --]
2002-11-18 Klee Dienes <kdienes@apple.com>
* stab.def (N_BNSYM): Add definition.
(N_ENSYM): Add definition.
2002-11-18 Klee Dienes <kdienes@apple.com>
* stabs.texinfo (Relocatable Symbol Blocks): New section, covering
Mac OS X coalesced symbol block markers. Added to the "Program
Structure" section.
diff --minimal -u --exclude=CVS --exclude=*.gmo cygnus.cygnus/src/include/aout/stab.def cygnus.current/src/include/aout/stab.def
--- cygnus.cygnus/src/include/aout/stab.def Tue Mar 13 21:27:43 2001
+++ cygnus.current/src/include/aout/stab.def Wed Oct 30 16:40:01 2002
@@ -53,6 +53,9 @@
/* Solaris2: Read-only data symbols. */
__define_stab (N_ROSYM, 0x2c, "ROSYM")
+/* MacOS X: The beginning of a relocatable function block - including stabs */
+__define_stab (N_BNSYM, 0x2e, "BNSYM")
+
/* Global symbol in Pascal.
Supposedly the value is its line number; I'm skeptical. */
__define_stab (N_PC, 0x30, "PC")
@@ -105,6 +108,11 @@
/* New in Solaris2. Function start/body/end line numbers. */
__define_stab(N_FLINE, 0x4C, "FLINE")
+
+/* Added for MacOS X, this tells the end of a relocatable function + debugging
+ info */
+
+__define_stab(N_ENSYM, 0x4E, "ENSYM")
/* THE FOLLOWING TWO STAB VALUES CONFLICT. Happily, one is for Modula-2
and one is for C++. Still,... */
Index: stabs.texinfo
===================================================================
RCS file: /Volumes/Storage/Users/kdienes/source/cvs/cygnus/src/gdb/doc/stabs.texinfo,v
retrieving revision 1.3
diff -u -r1.3 stabs.texinfo
--- stabs.texinfo 2002/08/13 20:16:07 1.3
+++ stabs.texinfo 2002/11/18 22:37:47
@@ -404,6 +404,7 @@
* Procedures::
* Nested Procedures::
* Block Structure::
+* Relocatable Symbol Blocks:: Mac OS X Coalesced Symbols.
* Alternate Entry Points:: Entering procedures except at the beginning.
@end menu
@@ -740,6 +741,29 @@
name of the symbol is @samp{.bb}, then it is the beginning of the block;
if the name of the symbol is @samp{.be}; it is the end of the block.
+@node Relocatable Symbol Blocks
+@section Relocatable Symbol Blocks
+
+@findex N_BNSYM
+@findex N_ENSYM
+On Mac OS X, a @dfn{coalesced symbol} is a true definition of a symbol
+that may appear one or more times in the compilation units generated
+by the compiler.
+
+The static link editor allows multiple definitions of a coalesced
+symbol without any warnings or errors. The static link editor outputs
+only one instance of each coalesced symbol, using the first instance it
+encounters in the object files being linked. The static link editor
+always outputs an instance of a coalesced symbol if it appears in the
+object files being linked, even if it also appears in the dynamic
+libraries being referenced. The dynamic link editor then relocates
+such that only one instance of each coalesced symbol is used
+throughout the program.
+
+To allow the linker to properly manage the debug information for
+coalesced symbols, the stabs entries for a given coalesced symbol must
+be preceded by @code{N_BNSYM} and terminated with @code{N_ENSYM}.
+
@node Alternate Entry Points
@section Alternate Entry Points
@@ -3240,6 +3264,9 @@
@item 0x2c N_ROSYM
Variable in @code{.rodata} section; see @ref{Statics}.
+@item 0x2e N_BNSYM
+Start of a relocatble symbolblock; see @ref{Relocatable Symbol Blocks}.
+
@item 0x30 N_PC
Global symbol (for Pascal); see @ref{N_PC}.
@@ -3281,6 +3308,9 @@
@item 0x4c N_FLINE
Function start/body/end line numbers (Solaris2).
+
+@item 0x4e N_ENSYM
+End of a relocatble symbol block; see @ref{Relocatable Symbol Blocks}.
@item 0x50 N_EHDECL
GNU C++ exception variable; see @ref{N_EHDECL}.
next parent reply other threads:[~2002-11-19 0:37 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <C774777A-FB47-11D6-84AF-00039396EEB8@apple.com>
2002-11-18 16:37 ` Klee Dienes [this message]
2002-11-18 22:22 ` Ian Lance Taylor
2002-11-24 2:25 ` Klee Dienes
2002-11-24 6:21 ` Eli Zaretskii
2002-12-08 17:00 ` Klee Dienes
2002-12-08 22:39 ` Eli Zaretskii
2002-12-09 10:22 ` Klee Dienes
2002-12-09 12:37 ` Eli Zaretskii
2002-11-24 9:46 ` Ian Lance Taylor
2002-11-24 14:22 ` Jim Blandy
2002-12-06 8:59 ` Nick Clifton
2002-11-18 22:59 Eli Zaretskii
[not found] <1038196445.11584.ezmlm@sources.redhat.com>
2002-11-24 20:21 ` Jim Ingham
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=147F64EA-FB57-11D6-84AF-00039396EEB8@apple.com \
--to=klee@apple.com \
--cc=binutils@sources.redhat.com \
--cc=gdb-patches@sources.redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox