home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2J (Developer) / os42jdev.iso / NextDeveloper / Headers / bsd / ranlib.h < prev    next >
Text File  |  1995-01-23  |  2KB  |  40 lines

  1. /*    ranlib.h    4.1    83/05/03    */
  2.  
  3. #import <sys/types.h>        /* off_t */
  4.  
  5. /*
  6.  * There are two known orders of table of contents for archives.  The first is
  7.  * the order ranlib(1) originally produced and still produces without any
  8.  * options.  This table of contents has the archive member name "__.SYMDEF"
  9.  * This order has the ranlib structures in the order the objects appear in the
  10.  * archive and the symbol names of those objects in the order of symbol table.
  11.  * The second know order is sorted by symbol name and is produced with the -s
  12.  * option to ranlib(1).  This table of contents has the archive member name
  13.  * "__.SYMDEF SORTED" and many programs (notably the 1.0 version of ld(1) can't
  14.  * tell the difference between names because of the imbedded blank in the name
  15.  * and works with either table of contents).  This second order is used by the
  16.  * post 1.0 link editor to produce faster linking.  The original 1.0 version of
  17.  * ranlib(1) gets confused when it is run on a archive with the second type of
  18.  * table of contents because it and ar(1) which it uses use different ways to
  19.  * determined the member name (ar(1) treats all blanks in the name as
  20.  * significant and ranlib(1) only checks for the first one).
  21.  */
  22. #define SYMDEF        "__.SYMDEF"
  23. #define SYMDEF_SORTED    "__.SYMDEF SORTED"
  24.  
  25. /*
  26.  * Structure of the __.SYMDEF table of contents for an archive.
  27.  * __.SYMDEF begins with a long giving the size in bytes of the ranlib
  28.  * structures which immediately follow, and then continues with a string
  29.  * table consisting of a long giving the number of bytes of strings which
  30.  * follow and then the strings themselves.  The ran_strx fields index the
  31.  * string table whose first byte is numbered 0.
  32.  */
  33. struct    ranlib {
  34.     union {
  35.         off_t    ran_strx;    /* string table index of */
  36.         char    *ran_name;    /* symbol defined by */
  37.     } ran_un;
  38.     off_t    ran_off;        /* library member at this offset */
  39. };
  40.