1afe61c15SRodney W. Grimes.\" Copyright (c) 1991, 1993 2afe61c15SRodney W. Grimes.\" The Regents of the University of California. All rights reserved. 3afe61c15SRodney W. Grimes.\" 4afe61c15SRodney W. Grimes.\" This man page is derived from documentation contributed to Berkeley by 5afe61c15SRodney W. Grimes.\" Donn Seeley at UUNET Technologies, Inc. 6afe61c15SRodney W. Grimes.\" 7afe61c15SRodney W. Grimes.\" Redistribution and use in source and binary forms, with or without 8afe61c15SRodney W. Grimes.\" modification, are permitted provided that the following conditions 9afe61c15SRodney W. Grimes.\" are met: 10afe61c15SRodney W. Grimes.\" 1. Redistributions of source code must retain the above copyright 11afe61c15SRodney W. Grimes.\" notice, this list of conditions and the following disclaimer. 12afe61c15SRodney W. Grimes.\" 2. Redistributions in binary form must reproduce the above copyright 13afe61c15SRodney W. Grimes.\" notice, this list of conditions and the following disclaimer in the 14afe61c15SRodney W. Grimes.\" documentation and/or other materials provided with the distribution. 15afe61c15SRodney W. Grimes.\" 3. All advertising materials mentioning features or use of this software 16afe61c15SRodney W. Grimes.\" must display the following acknowledgement: 17afe61c15SRodney W. Grimes.\" This product includes software developed by the University of 18afe61c15SRodney W. Grimes.\" California, Berkeley and its contributors. 19afe61c15SRodney W. Grimes.\" 4. Neither the name of the University nor the names of its contributors 20afe61c15SRodney W. Grimes.\" may be used to endorse or promote products derived from this software 21afe61c15SRodney W. Grimes.\" without specific prior written permission. 22afe61c15SRodney W. Grimes.\" 23afe61c15SRodney W. Grimes.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 24afe61c15SRodney W. Grimes.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 25afe61c15SRodney W. Grimes.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26afe61c15SRodney W. Grimes.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 27afe61c15SRodney W. Grimes.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28afe61c15SRodney W. Grimes.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 29afe61c15SRodney W. Grimes.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30afe61c15SRodney W. Grimes.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31afe61c15SRodney W. Grimes.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32afe61c15SRodney W. Grimes.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33afe61c15SRodney W. Grimes.\" SUCH DAMAGE. 34afe61c15SRodney W. Grimes.\" 35afe61c15SRodney W. Grimes.\" @(#)a.out.5 8.1 (Berkeley) 6/5/93 36afe61c15SRodney W. Grimes.\" 37afe61c15SRodney W. Grimes.Dd June 5, 1993 38afe61c15SRodney W. Grimes.Dt A.OUT 5 39afe61c15SRodney W. Grimes.Os 40afe61c15SRodney W. Grimes.Sh NAME 41afe61c15SRodney W. Grimes.Nm a.out 42afe61c15SRodney W. Grimes.Nd format of executable binary files 43afe61c15SRodney W. Grimes.Sh SYNOPSIS 44afe61c15SRodney W. Grimes.Fd #include <a.out.h> 45afe61c15SRodney W. Grimes.Sh DESCRIPTION 46afe61c15SRodney W. GrimesThe include file 47afe61c15SRodney W. Grimes.Aq Pa a.out.h 48afe61c15SRodney W. Grimesdeclares three structures and several macros. 49afe61c15SRodney W. GrimesThe structures describe the format of 50afe61c15SRodney W. Grimesexecutable machine code files 51afe61c15SRodney W. Grimes.Pq Sq binaries 52afe61c15SRodney W. Grimeson the system. 53afe61c15SRodney W. Grimes.Pp 54afe61c15SRodney W. GrimesA binary file consists of up to 7 sections. 55afe61c15SRodney W. GrimesIn order, these sections are: 56afe61c15SRodney W. Grimes.Bl -tag -width "text relocations" 57afe61c15SRodney W. Grimes.It exec header 58afe61c15SRodney W. GrimesContains parameters used by the kernel 59afe61c15SRodney W. Grimesto load a binary file into memory and execute it, 60afe61c15SRodney W. Grimesand by the link editor 61afe61c15SRodney W. Grimes.Xr ld 1 62afe61c15SRodney W. Grimesto combine a binary file with other binary files. 63afe61c15SRodney W. GrimesThis section is the only mandatory one. 64afe61c15SRodney W. Grimes.It text segment 65afe61c15SRodney W. GrimesContains machine code and related data 66afe61c15SRodney W. Grimesthat are loaded into memory when a program executes. 67afe61c15SRodney W. GrimesMay be loaded read-only. 68afe61c15SRodney W. Grimes.It data segment 69afe61c15SRodney W. GrimesContains initialized data; always loaded into writable memory. 70afe61c15SRodney W. Grimes.It text relocations 71afe61c15SRodney W. GrimesContains records used by the link editor 72afe61c15SRodney W. Grimesto update pointers in the text segment when combining binary files. 73afe61c15SRodney W. Grimes.It data relocations 74afe61c15SRodney W. GrimesLike the text relocation section, but for data segment pointers. 75afe61c15SRodney W. Grimes.It symbol table 76afe61c15SRodney W. GrimesContains records used by the link editor 77afe61c15SRodney W. Grimesto cross reference the addresses of named variables and functions 78afe61c15SRodney W. Grimes.Pq Sq symbols 79afe61c15SRodney W. Grimesbetween binary files. 80afe61c15SRodney W. Grimes.It string table 81afe61c15SRodney W. GrimesContains the character strings corresponding to the symbol names. 82afe61c15SRodney W. Grimes.El 83afe61c15SRodney W. Grimes.Pp 84afe61c15SRodney W. GrimesEvery binary file begins with an 85afe61c15SRodney W. Grimes.Fa exec 86afe61c15SRodney W. Grimesstructure: 87afe61c15SRodney W. Grimes.Bd -literal -offset indent 88afe61c15SRodney W. Grimesstruct exec { 89afe61c15SRodney W. Grimes unsigned short a_mid; 90afe61c15SRodney W. Grimes unsigned short a_magic; 91afe61c15SRodney W. Grimes unsigned long a_text; 92afe61c15SRodney W. Grimes unsigned long a_data; 93afe61c15SRodney W. Grimes unsigned long a_bss; 94afe61c15SRodney W. Grimes unsigned long a_syms; 95afe61c15SRodney W. Grimes unsigned long a_entry; 96afe61c15SRodney W. Grimes unsigned long a_trsize; 97afe61c15SRodney W. Grimes unsigned long a_drsize; 98afe61c15SRodney W. Grimes}; 99afe61c15SRodney W. Grimes.Ed 100afe61c15SRodney W. Grimes.Pp 101afe61c15SRodney W. GrimesThe fields have the following functions: 102afe61c15SRodney W. Grimes.Bl -tag -width a_trsize 103afe61c15SRodney W. Grimes.It Fa a_mid 104afe61c15SRodney W. GrimesContains a bit pattern that 105afe61c15SRodney W. Grimesidentifies binaries that were built for 106afe61c15SRodney W. Grimescertain sub-classes of an architecture 107afe61c15SRodney W. Grimes.Pq Sq machine IDs 108afe61c15SRodney W. Grimesor variants of the operating system on a given architecture. 109afe61c15SRodney W. GrimesThe kernel may not support all machine IDs 110afe61c15SRodney W. Grimeson a given architecture. 111afe61c15SRodney W. GrimesThe 112afe61c15SRodney W. Grimes.Fa a_mid 113afe61c15SRodney W. Grimesfield is not present on some architectures; 114afe61c15SRodney W. Grimesin this case, the 115afe61c15SRodney W. Grimes.Fa a_magic 116afe61c15SRodney W. Grimesfield has type 117afe61c15SRodney W. Grimes.Em unsigned long . 118afe61c15SRodney W. Grimes.It Fa a_magic 119afe61c15SRodney W. GrimesContains a bit pattern 120afe61c15SRodney W. Grimes.Pq Sq magic number 121afe61c15SRodney W. Grimesthat uniquely identifies binary files 122afe61c15SRodney W. Grimesand distinguishes different loading conventions. 123afe61c15SRodney W. GrimesThe field must contain one of the following values: 124afe61c15SRodney W. Grimes.Bl -tag -width ZMAGIC 125afe61c15SRodney W. Grimes.It Dv OMAGIC 126afe61c15SRodney W. GrimesThe text and data segments immediately follow the header 127afe61c15SRodney W. Grimesand are contiguous. 128afe61c15SRodney W. GrimesThe kernel loads both text and data segments into writable memory. 129afe61c15SRodney W. Grimes.It Dv NMAGIC 130afe61c15SRodney W. GrimesAs with 131afe61c15SRodney W. Grimes.Dv OMAGIC , 132afe61c15SRodney W. Grimestext and data segments immediately follow the header and are contiguous. 133afe61c15SRodney W. GrimesHowever, the kernel loads the text into read-only memory 134afe61c15SRodney W. Grimesand loads the data into writable memory at the next 135afe61c15SRodney W. Grimespage boundary after the text. 136afe61c15SRodney W. Grimes.It Dv ZMAGIC 137afe61c15SRodney W. GrimesThe kernel loads individual pages on demand from the binary. 138afe61c15SRodney W. GrimesThe header, text segment and data segment are all 139afe61c15SRodney W. Grimespadded by the link editor to a multiple of the page size. 140afe61c15SRodney W. GrimesPages that the kernel loads from the text segment are read-only, 141afe61c15SRodney W. Grimeswhile pages from the data segment are writable. 142afe61c15SRodney W. Grimes.El 143afe61c15SRodney W. Grimes.It Fa a_text 144afe61c15SRodney W. GrimesContains the size of the text segment in bytes. 145afe61c15SRodney W. Grimes.It Fa a_data 146afe61c15SRodney W. GrimesContains the size of the data segment in bytes. 147afe61c15SRodney W. Grimes.It Fa a_bss 148afe61c15SRodney W. GrimesContains the number of bytes in the 149afe61c15SRodney W. Grimes.Sq bss segment 150afe61c15SRodney W. Grimesand is used by the kernel to set the initial break 151afe61c15SRodney W. Grimes.Pq Xr brk 2 152afe61c15SRodney W. Grimesafter the data segment. 153afe61c15SRodney W. GrimesThe kernel loads the program so that this amount of writable memory 154afe61c15SRodney W. Grimesappears to follow the data segment and initially reads as zeroes. 155afe61c15SRodney W. Grimes.It Fa a_syms 156afe61c15SRodney W. GrimesContains the size in bytes of the symbol table section. 157afe61c15SRodney W. Grimes.It Fa a_entry 158afe61c15SRodney W. GrimesContains the address in memory of the entry point 159afe61c15SRodney W. Grimesof the program after the kernel has loaded it; 160afe61c15SRodney W. Grimesthe kernel starts the execution of the program 161afe61c15SRodney W. Grimesfrom the machine instruction at this address. 162afe61c15SRodney W. Grimes.It Fa a_trsize 163afe61c15SRodney W. GrimesContains the size in bytes of the text relocation table. 164afe61c15SRodney W. Grimes.It Fa a_drsize 165afe61c15SRodney W. GrimesContains the size in bytes of the data relocation table. 166afe61c15SRodney W. Grimes.El 167afe61c15SRodney W. Grimes.Pp 168afe61c15SRodney W. GrimesThe 169afe61c15SRodney W. Grimes.Pa a.out.h 170afe61c15SRodney W. Grimesinclude file defines several macros which use an 171afe61c15SRodney W. Grimes.Fa exec 172afe61c15SRodney W. Grimesstructure to test consistency or to locate section offsets in the binary file. 173afe61c15SRodney W. Grimes.Bl -tag -width N_BADMAG(exec) 174afe61c15SRodney W. Grimes.It Fn N_BADMAG exec 175afe61c15SRodney W. GrimesNonzero if the 176afe61c15SRodney W. Grimes.Fa a_magic 177afe61c15SRodney W. Grimesfield does not contain a recognized value. 178afe61c15SRodney W. Grimes.It Fn N_TXTOFF exec 179afe61c15SRodney W. GrimesThe byte offset in the binary file of the beginning of the text segment. 180afe61c15SRodney W. Grimes.It Fn N_SYMOFF exec 181afe61c15SRodney W. GrimesThe byte offset of the beginning of the symbol table. 182afe61c15SRodney W. Grimes.It Fn N_STROFF exec 183afe61c15SRodney W. GrimesThe byte offset of the beginning of the string table. 184afe61c15SRodney W. Grimes.El 185afe61c15SRodney W. Grimes.Pp 186afe61c15SRodney W. GrimesRelocation records have a standard format which 187afe61c15SRodney W. Grimesis described by the 188afe61c15SRodney W. Grimes.Fa relocation_info 189afe61c15SRodney W. Grimesstructure: 190afe61c15SRodney W. Grimes.Bd -literal -offset indent 191afe61c15SRodney W. Grimesstruct relocation_info { 192afe61c15SRodney W. Grimes int r_address; 193afe61c15SRodney W. Grimes unsigned int r_symbolnum : 24, 194afe61c15SRodney W. Grimes r_pcrel : 1, 195afe61c15SRodney W. Grimes r_length : 2, 196afe61c15SRodney W. Grimes r_extern : 1, 197afe61c15SRodney W. Grimes : 4; 198afe61c15SRodney W. Grimes}; 199afe61c15SRodney W. Grimes.Ed 200afe61c15SRodney W. Grimes.Pp 201afe61c15SRodney W. GrimesThe 202afe61c15SRodney W. Grimes.Fa relocation_info 203afe61c15SRodney W. Grimesfields are used as follows: 204afe61c15SRodney W. Grimes.Bl -tag -width r_symbolnum 205afe61c15SRodney W. Grimes.It Fa r_address 206afe61c15SRodney W. GrimesContains the byte offset of a pointer that needs to be link-edited. 207afe61c15SRodney W. GrimesText relocation offsets are reckoned from the start of the text segment, 208afe61c15SRodney W. Grimesand data relocation offsets from the start of the data segment. 209afe61c15SRodney W. GrimesThe link editor adds the value that is already stored at this offset 210afe61c15SRodney W. Grimesinto the new value that it computes using this relocation record. 211afe61c15SRodney W. Grimes.It Fa r_symbolnum 212afe61c15SRodney W. GrimesContains the ordinal number of a symbol structure 213afe61c15SRodney W. Grimesin the symbol table (it is 214afe61c15SRodney W. Grimes.Em not 215afe61c15SRodney W. Grimesa byte offset). 216afe61c15SRodney W. GrimesAfter the link editor resolves the absolute address for this symbol, 217afe61c15SRodney W. Grimesit adds that address to the pointer that is undergoing relocation. 218afe61c15SRodney W. Grimes(If the 219afe61c15SRodney W. Grimes.Fa r_extern 220afe61c15SRodney W. Grimesbit is clear, the situation is different; see below.) 221afe61c15SRodney W. Grimes.It Fa r_pcrel 222afe61c15SRodney W. GrimesIf this is set, 223afe61c15SRodney W. Grimesthe link editor assumes that it is updating a pointer 224afe61c15SRodney W. Grimesthat is part of a machine code instruction using pc-relative addressing. 225afe61c15SRodney W. GrimesThe address of the relocated pointer is implicitly added 226afe61c15SRodney W. Grimesto its value when the running program uses it. 227afe61c15SRodney W. Grimes.It Fa r_length 228afe61c15SRodney W. GrimesContains the log base 2 of the length of the pointer in bytes; 229afe61c15SRodney W. Grimes0 for 1-byte displacements, 1 for 2-byte displacements, 230afe61c15SRodney W. Grimes2 for 4-byte displacements. 231afe61c15SRodney W. Grimes.It Fa r_extern 232afe61c15SRodney W. GrimesSet if this relocation requires an external reference; 233afe61c15SRodney W. Grimesthe link editor must use a symbol address to update the pointer. 234afe61c15SRodney W. GrimesWhen the 235afe61c15SRodney W. Grimes.Fa r_extern 236afe61c15SRodney W. Grimesbit is clear, the relocation is 237afe61c15SRodney W. Grimes.Sq local ; 238afe61c15SRodney W. Grimesthe link editor updates the pointer to reflect 239afe61c15SRodney W. Grimeschanges in the load addresses of the various segments, 240afe61c15SRodney W. Grimesrather than changes in the value of a symbol. 241afe61c15SRodney W. GrimesIn this case, the content of the 242afe61c15SRodney W. Grimes.Fa r_symbolnum 243afe61c15SRodney W. Grimesfield is an 244afe61c15SRodney W. Grimes.Fa n_type 245afe61c15SRodney W. Grimesvalue (see below); 246afe61c15SRodney W. Grimesthis type field tells the link editor 247afe61c15SRodney W. Grimeswhat segment the relocated pointer points into. 248afe61c15SRodney W. Grimes.El 249afe61c15SRodney W. Grimes.Pp 250afe61c15SRodney W. GrimesSymbols map names to addresses (or more generally, strings to values). 251afe61c15SRodney W. GrimesSince the link-editor adjusts addresses, 252afe61c15SRodney W. Grimesa symbol's name must be used to stand for its address 253afe61c15SRodney W. Grimesuntil an absolute value has been assigned. 254afe61c15SRodney W. GrimesSymbols consist of a fixed-length record in the symbol table 255afe61c15SRodney W. Grimesand a variable-length name in the string table. 256afe61c15SRodney W. GrimesThe symbol table is an array of 257afe61c15SRodney W. Grimes.Fa nlist 258afe61c15SRodney W. Grimesstructures: 259afe61c15SRodney W. Grimes.Bd -literal -offset indent 260afe61c15SRodney W. Grimesstruct nlist { 261afe61c15SRodney W. Grimes union { 262afe61c15SRodney W. Grimes char *n_name; 263afe61c15SRodney W. Grimes long n_strx; 264afe61c15SRodney W. Grimes } n_un; 265afe61c15SRodney W. Grimes unsigned char n_type; 266afe61c15SRodney W. Grimes char n_other; 267afe61c15SRodney W. Grimes short n_desc; 268afe61c15SRodney W. Grimes unsigned long n_value; 269afe61c15SRodney W. Grimes}; 270afe61c15SRodney W. Grimes.Ed 271afe61c15SRodney W. Grimes.Pp 272afe61c15SRodney W. GrimesThe fields are used as follows: 273afe61c15SRodney W. Grimes.Bl -tag -width n_un.n_strx 274afe61c15SRodney W. Grimes.It Fa n_un.n_strx 275afe61c15SRodney W. GrimesContains a byte offset into the string table 276afe61c15SRodney W. Grimesfor the name of this symbol. 277afe61c15SRodney W. GrimesWhen a program accesses a symbol table with the 278afe61c15SRodney W. Grimes.Xr nlist 3 279afe61c15SRodney W. Grimesfunction, 280afe61c15SRodney W. Grimesthis field is replaced with the 281afe61c15SRodney W. Grimes.Fa n_un.n_name 282afe61c15SRodney W. Grimesfield, which is a pointer to the string in memory. 283afe61c15SRodney W. Grimes.It Fa n_type 284afe61c15SRodney W. GrimesUsed by the link editor to determine 285afe61c15SRodney W. Grimeshow to update the symbol's value. 286afe61c15SRodney W. GrimesThe 287afe61c15SRodney W. Grimes.Fa n_type 288afe61c15SRodney W. Grimesfield is broken down into three sub-fields using bitmasks. 289afe61c15SRodney W. GrimesThe link editor treats symbols with the 290afe61c15SRodney W. Grimes.Dv N_EXT 291afe61c15SRodney W. Grimestype bit set as 292afe61c15SRodney W. Grimes.Sq external 293afe61c15SRodney W. Grimessymbols and permits references to them from other binary files. 294afe61c15SRodney W. GrimesThe 295afe61c15SRodney W. Grimes.Dv N_TYPE 296afe61c15SRodney W. Grimesmask selects bits of interest to the link editor: 297afe61c15SRodney W. Grimes.Bl -tag -width N_TEXT 298afe61c15SRodney W. Grimes.It Dv N_UNDF 299afe61c15SRodney W. GrimesAn undefined symbol. 300afe61c15SRodney W. GrimesThe link editor must locate an external symbol with the same name 301afe61c15SRodney W. Grimesin another binary file to determine the absolute value of this symbol. 302afe61c15SRodney W. GrimesAs a special case, if the 303afe61c15SRodney W. Grimes.Fa n_value 304afe61c15SRodney W. Grimesfield is nonzero and no binary file in the link-edit defines this symbol, 305afe61c15SRodney W. Grimesthe link-editor will resolve this symbol to an address 306afe61c15SRodney W. Grimesin the bss segment, 307afe61c15SRodney W. Grimesreserving an amount of bytes equal to 308afe61c15SRodney W. Grimes.Fa n_value . 309afe61c15SRodney W. GrimesIf this symbol is undefined in more than one binary file 310afe61c15SRodney W. Grimesand the binary files do not agree on the size, 311afe61c15SRodney W. Grimesthe link editor chooses the greatest size found across all binaries. 312afe61c15SRodney W. Grimes.It Dv N_ABS 313afe61c15SRodney W. GrimesAn absolute symbol. 314afe61c15SRodney W. GrimesThe link editor does not update an absolute symbol. 315afe61c15SRodney W. Grimes.It Dv N_TEXT 316afe61c15SRodney W. GrimesA text symbol. 317afe61c15SRodney W. GrimesThis symbol's value is a text address and 318afe61c15SRodney W. Grimesthe link editor will update it when it merges binary files. 319afe61c15SRodney W. Grimes.It Dv N_DATA 320afe61c15SRodney W. GrimesA data symbol; similar to 321afe61c15SRodney W. Grimes.Dv N_TEXT 322afe61c15SRodney W. Grimesbut for data addresses. 323afe61c15SRodney W. GrimesThe values for text and data symbols are not file offsets but 324afe61c15SRodney W. Grimesaddresses; to recover the file offsets, it is necessary 325afe61c15SRodney W. Grimesto identify the loaded address of the beginning of the corresponding 326afe61c15SRodney W. Grimessection and subtract it, then add the offset of the section. 327afe61c15SRodney W. Grimes.It Dv N_BSS 328afe61c15SRodney W. GrimesA bss symbol; like text or data symbols but 329afe61c15SRodney W. Grimeshas no corresponding offset in the binary file. 330afe61c15SRodney W. Grimes.It Dv N_FN 331afe61c15SRodney W. GrimesA filename symbol. 332afe61c15SRodney W. GrimesThe link editor inserts this symbol before 333afe61c15SRodney W. Grimesthe other symbols from a binary file when 334afe61c15SRodney W. Grimesmerging binary files. 335afe61c15SRodney W. GrimesThe name of the symbol is the filename given to the link editor, 336afe61c15SRodney W. Grimesand its value is the first text address from that binary file. 337afe61c15SRodney W. GrimesFilename symbols are not needed for link-editing or loading, 338afe61c15SRodney W. Grimesbut are useful for debuggers. 339afe61c15SRodney W. Grimes.El 340afe61c15SRodney W. Grimes.Pp 341afe61c15SRodney W. GrimesThe 342afe61c15SRodney W. Grimes.Dv N_STAB 343afe61c15SRodney W. Grimesmask selects bits of interest to symbolic debuggers 344afe61c15SRodney W. Grimessuch as 345afe61c15SRodney W. Grimes.Xr gdb 1 ; 346afe61c15SRodney W. Grimesthe values are described in 347afe61c15SRodney W. Grimes.Xr stab 5 . 348afe61c15SRodney W. Grimes.It Fa n_other 349afe61c15SRodney W. GrimesThis field is currently unused. 350afe61c15SRodney W. Grimes.It Fa n_desc 351afe61c15SRodney W. GrimesReserved for use by debuggers; passed untouched by the link editor. 352afe61c15SRodney W. GrimesDifferent debuggers use this field for different purposes. 353afe61c15SRodney W. Grimes.It Fa n_value 354afe61c15SRodney W. GrimesContains the value of the symbol. 355afe61c15SRodney W. GrimesFor text, data and bss symbols, this is an address; 356afe61c15SRodney W. Grimesfor other symbols (such as debugger symbols), 357afe61c15SRodney W. Grimesthe value may be arbitrary. 358afe61c15SRodney W. Grimes.El 359afe61c15SRodney W. Grimes.Pp 360afe61c15SRodney W. GrimesThe string table consists of an 361afe61c15SRodney W. Grimes.Em unsigned long 362afe61c15SRodney W. Grimeslength followed by null-terminated symbol strings. 363afe61c15SRodney W. GrimesThe length represents the size of the entire table in bytes, 364afe61c15SRodney W. Grimesso its minimum value (or the offset of the first string) 365afe61c15SRodney W. Grimesis always 4 on 32-bit machines. 366afe61c15SRodney W. Grimes.Sh SEE ALSO 367afe61c15SRodney W. Grimes.Xr ld 1 , 368afe61c15SRodney W. Grimes.Xr execve 2 , 369afe61c15SRodney W. Grimes.Xr nlist 3 , 370afe61c15SRodney W. Grimes.Xr core 5 , 371afe61c15SRodney W. Grimes.Xr dbx 5 , 372afe61c15SRodney W. Grimes.Xr stab 5 373afe61c15SRodney W. Grimes.Sh HISTORY 374afe61c15SRodney W. GrimesThe 375afe61c15SRodney W. Grimes.Pa a.out.h 376afe61c15SRodney W. Grimesinclude file appeared in 377afe61c15SRodney W. Grimes.At v7 . 378afe61c15SRodney W. Grimes.Sh BUGS 379afe61c15SRodney W. GrimesSince not all of the supported architectures use the 380afe61c15SRodney W. Grimes.Fa a_mid 381afe61c15SRodney W. Grimesfield, 382afe61c15SRodney W. Grimesit can be difficult to determine what 383afe61c15SRodney W. Grimesarchitecture a binary will execute on 384afe61c15SRodney W. Grimeswithout examining its actual machine code. 385afe61c15SRodney W. GrimesEven with a machine identifier, 386afe61c15SRodney W. Grimesthe byte order of the 387afe61c15SRodney W. Grimes.Fa exec 388afe61c15SRodney W. Grimesheader is machine-dependent. 389afe61c15SRodney W. Grimes.Pp 390afe61c15SRodney W. GrimesNobody seems to agree on what 391afe61c15SRodney W. Grimes.Em bss 392afe61c15SRodney W. Grimesstands for. 393afe61c15SRodney W. Grimes.Pp 394afe61c15SRodney W. GrimesNew binary file formats may be supported in the future, 395afe61c15SRodney W. Grimesand they probably will not be compatible at any level 396afe61c15SRodney W. Grimeswith this ancient format. 397