Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
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}.

       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