From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32293 invoked by alias); 19 Nov 2002 00:37:33 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 32227 invoked from network); 19 Nov 2002 00:37:29 -0000 Received: from unknown (HELO dc-mx02.cluster1.charter.net) (209.225.8.12) by sources.redhat.com with SMTP; 19 Nov 2002 00:37:29 -0000 Received: from [66.189.46.2] (HELO platinum.local.) by dc-mx02.cluster1.charter.net (CommuniGate Pro SMTP 3.5.9) with ESMTP id 6735154; Mon, 18 Nov 2002 19:37:28 -0500 Date: Mon, 18 Nov 2002 16:37:00 -0000 Subject: [RFA] Add stabs entries for coalesced symbols. Content-Type: multipart/mixed; boundary=Apple-Mail-14--770494252 Mime-Version: 1.0 (Apple Message framework v543) Cc: gdb-patches@sources.redhat.com To: binutils@sources.redhat.com From: Klee Dienes In-Reply-To: Message-Id: <147F64EA-FB57-11D6-84AF-00039396EEB8@apple.com> X-SW-Source: 2002-11/txt/msg00476.txt.bz2 --Apple-Mail-14--770494252 Content-Transfer-Encoding: 7bit Content-Type: text/plain; delsp=yes; charset=US-ASCII; format=flowed Content-length: 601 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. --Apple-Mail-14--770494252 Content-Disposition: attachment; filename=stabs.txt Content-Transfer-Encoding: 7bit Content-Type: text/plain; x-unix-mode=0644; name="stabs.txt" Content-length: 3663 2002-11-18 Klee Dienes * stab.def (N_BNSYM): Add definition. (N_ENSYM): Add definition. 2002-11-18 Klee Dienes * 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}. --Apple-Mail-14--770494252--