diff options
author | Steve Chamberlain <sac@cygnus> | 1991-12-01 04:26:38 +0000 |
---|---|---|
committer | Steve Chamberlain <sac@cygnus> | 1991-12-01 04:26:38 +0000 |
commit | 245ed2ea54b7a5de9e6a83cdf45f1a10ea392631 (patch) | |
tree | a69b530b1a4e6fafbb7a05ccec40088b63820a81 /include/aout | |
parent | bdce0211a3d56fb84d742e65fe2622199bb39044 (diff) | |
download | gdb-245ed2ea54b7a5de9e6a83cdf45f1a10ea392631.zip gdb-245ed2ea54b7a5de9e6a83cdf45f1a10ea392631.tar.gz gdb-245ed2ea54b7a5de9e6a83cdf45f1a10ea392631.tar.bz2 |
Initial revision
Diffstat (limited to 'include/aout')
-rw-r--r-- | include/aout/ar.h | 24 | ||||
-rw-r--r-- | include/aout/ranlib.h | 62 |
2 files changed, 86 insertions, 0 deletions
diff --git a/include/aout/ar.h b/include/aout/ar.h new file mode 100644 index 0000000..2bca46d --- /dev/null +++ b/include/aout/ar.h @@ -0,0 +1,24 @@ +/* archive file definition for GNU software */ + +/* So far this is correct for BSDish archives. Don't forget that + files must begin on an even byte boundary. */ + +#ifndef __GNU_AR_H__ +#define __GNU_AR_H__ + +#define ARMAG "!<arch>\n" /* For COFF and a.out archives */ +#define ARMAGB "!<bout>\n" /* For b.out archives */ +#define SARMAG 8 +#define ARFMAG "`\n" + +struct ar_hdr { + char ar_name[16]; /* name of this member */ + char ar_date[12]; /* file mtime */ + char ar_uid[6]; /* owner uid; printed as decimal */ + char ar_gid[6]; /* owner gid; printed as decimal */ + char ar_mode[8]; /* file mode, printed as octal */ + char ar_size[10]; /* file size, printed as decimal */ + char ar_fmag[2]; /* should contain ARFMAG */ +}; + +#endif /* __GNU_AR_H__ */ diff --git a/include/aout/ranlib.h b/include/aout/ranlib.h new file mode 100644 index 0000000..53e35ce --- /dev/null +++ b/include/aout/ranlib.h @@ -0,0 +1,62 @@ +/* ranlib.h -- archive library index member definition for GNU. + Copyright 1990-1991 Free Software Foundation, Inc. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* The Symdef member of an archive contains two things: + a table that maps symbol-string offsets to file offsets, + and a symbol-string table. All the symbol names are + run together (each with trailing null) in the symbol-string + table. There is a single longword bytecount on the front + of each of these tables. Thus if we have two symbols, + "foo" and "_bar", that are in archive members at offsets + 200 and 900, it would look like this: + 16 ; byte count of index table + 0 ; offset of "foo" in string table + 200 ; offset of foo-module in file + 4 ; offset of "bar" in string table + 900 ; offset of bar-module in file + 9 ; byte count of string table + "foo\0_bar\0" ; string table */ + +#define RANLIBMAG "__.SYMDEF" /* Archive file name containing index */ +#define RANLIBSKEW 3 /* Creation time offset */ + +/* Format of __.SYMDEF: + First, a longword containing the size of the 'symdef' data that follows. + Second, zero or more 'symdef' structures. + Third, a longword containing the length of symbol name strings. + Fourth, zero or more symbol name strings (each followed by a null). */ + +struct symdef + { + union + { + unsigned long string_offset; /* In the file */ + char *name; /* In memory, sometimes */ + } s; + /* this points to the front of the file header (AKA member header -- + a struct ar_hdr), not to the front of the file or into the file). + in other words it only tells you which file to read */ + unsigned long file_offset; + }; + +/* Compatability with BSD code */ + +#define ranlib symdef +#define ran_un s +#define ran_strx string_offset +#define ran_name name +#define ran_off file_offset |