(stabs.info)XCOFF Differences


Next: Sun Differences Prev: Questions Up: Top

Differences Between GNU Stabs in a.out and GNU Stabs in XCOFF
*************************************************************

   The AIX/RS6000 native object file format is XCOFF with stabs.  This
appendix only covers those differences which are not covered in the main
body of this document.

   * BSD a.out stab types correspond to AIX XCOFF storage classes. In
     general the mapping is `N_STABTYPE' becomes `C_STABTYPE'.  Some
     stab types in a.out are not supported in XCOFF; most of these use
     `C_DECL'.

     Exception: initialised static `N_STSYM' and un-initialized static
     `N_LCSYM' both map to the `C_STSYM' storage class.  But the
     distinction is preserved because in XCOFF `N_STSYM' and `N_LCSYM'
     must be emited in a named static block.  Begin the block with `.bs
     s[RW] data_section_name' for `N_STSYM' or `.bs s bss_section_name'
     for `N_LCSYM'.  End the block with `.es'.

   * If the XCOFF stab is an `N_FUN' (`C_FUN') then follow the string
     field with `,.' instead of just `,'.

   I think that's it for `.s' file differences.  They could stand to be
better presented.  This is just a list of what I have noticed so far.
There are a *lot* of differences in the information in the symbol
tables of the executable and object files.

   Mapping of a.out stab types to XCOFF storage classes:

     stab type       storage class
     -------------------------------
     N_GSYM          C_GSYM
     N_FNAME         unused
     N_FUN           C_FUN
     N_STSYM         C_STSYM
     N_LCSYM         C_STSYM
     N_MAIN          unknown
     N_PC            unknown
     N_RSYM          C_RSYM
     unknown         C_RPSYM
     N_M2C           unknown
     N_SLINE         unknown
     N_DSLINE        unknown
     N_BSLINE        unknown
     N_BROWSE        unchanged
     N_CATCH         unknown
     N_SSYM          unknown
     N_SO            unknown
     N_LSYM          C_LSYM
     various         C_DECL
     N_BINCL         unknown
     N_SOL           unknown
     N_PSYM          C_PSYM
     N_EINCL         unknown
     N_ENTRY         C_ENTRY
     N_LBRAC         unknown
     N_EXCL          unknown
     N_SCOPE         unknown
     N_RBRAC         unknown
     N_BCOMM         C_BCOMM
     N_ECOMM         C_ECOMM
     N_ECOML         C_ECOML
     
     N_LENG          unknown


automatically generated by info2www