summaryrefslogtreecommitdiff
path: root/share/man/man5
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>2013-10-19 09:00:20 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>2013-10-19 09:00:20 +0000
commit1c20126efea60c7dc72804fb2948de83d220af9a (patch)
treeadb7bdc0af65800cf72e4f50637db9929337e069 /share/man/man5
parent8d0e8c6d092152253766d2a4850018349fcd97bc (diff)
Remove more knowledge of a.out and stab information from the tree.
ok miod
Diffstat (limited to 'share/man/man5')
-rw-r--r--share/man/man5/Makefile8
-rw-r--r--share/man/man5/a.out.5449
-rw-r--r--share/man/man5/core.59
-rw-r--r--share/man/man5/stab.5224
4 files changed, 7 insertions, 683 deletions
diff --git a/share/man/man5/Makefile b/share/man/man5/Makefile
index 8f3d0748720..e755a7b6756 100644
--- a/share/man/man5/Makefile
+++ b/share/man/man5/Makefile
@@ -1,9 +1,7 @@
-# $OpenBSD: Makefile,v 1.47 2013/07/09 18:25:28 miod Exp $
+# $OpenBSD: Makefile,v 1.48 2013/10/19 09:00:19 deraadt Exp $
# $NetBSD: Makefile,v 1.14 1995/05/11 23:13:15 cgd Exp $
-# missing: dump.5 plot.5
-
-MAN= a.out.5 acct.5 ar.5 bsd.port.mk.5 bsd.port.arch.mk.5 bsd.regress.mk.5 \
+MAN= acct.5 ar.5 bsd.port.mk.5 bsd.port.arch.mk.5 bsd.regress.mk.5 \
changelist.5 core.5 \
defaultdomain.5 dir.5 disktab.5 elf.5 ethers.5 fbtab.5 files.conf.5 \
forward.5 fs.5 fstab.5 genassym.cf.5 group.5 hostname.if.5 \
@@ -12,7 +10,7 @@ MAN= a.out.5 acct.5 ar.5 bsd.port.mk.5 bsd.port.arch.mk.5 bsd.regress.mk.5 \
pf.conf.5 pf.os.5 port-modules.5 printcap.5 protocols.5 \
ranlib.5 remote.5 resolv.conf.5 rpc.5 ruby-module.5 \
services.5 shells.5 \
- stab.5 spamd.conf.5 sysctl.conf.5 utmp.5 wsconsctl.conf.5
+ spamd.conf.5 sysctl.conf.5 utmp.5 wsconsctl.conf.5
MLINKS= dir.5 dirent.5 fs.5 inode.5 utmp.5 wtmp.5 utmp.5 lastlog.5
MLINKS+= hosts.equiv.5 .rhosts.5
diff --git a/share/man/man5/a.out.5 b/share/man/man5/a.out.5
deleted file mode 100644
index b7fd7bcb1a7..00000000000
--- a/share/man/man5/a.out.5
+++ /dev/null
@@ -1,449 +0,0 @@
-.\" $OpenBSD: a.out.5,v 1.17 2013/07/10 06:43:38 jmc Exp $
-.\" $NetBSD: a.out.5,v 1.8 1994/11/30 19:31:09 jtc Exp $
-.\"
-.\" Copyright (c) 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" This man page is derived from documentation contributed to Berkeley by
-.\" Donn Seeley at UUNET Technologies, Inc.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)a.out.5 8.1 (Berkeley) 6/5/93
-.\"
-.Dd $Mdocdate: July 10 2013 $
-.Dt A.OUT 5
-.Os
-.Sh NAME
-.Nm a.out
-.Nd format of legacy executable binary files
-.Sh SYNOPSIS
-.Fd #include <sys/types.h>
-.Fd #include <a.out.h>
-.Sh DESCRIPTION
-The include file
-.Aq Pa a.out.h
-declares three structures and several macros.
-The structures describe the format of legacy executable machine code files
-.Pq Dq binaries
-on the system.
-.Pp
-A binary file consists of up to 7 sections.
-In order, these sections are:
-.Bl -tag -width "text relocations"
-.It exec header
-Contains parameters used by the kernel to load a binary file into memory
-and execute it, and by the link editor
-.Xr ld 1
-to combine a binary file with other binary files.
-This section is the only mandatory one.
-.It text segment
-Contains machine code and related data
-that are loaded into memory when a program executes.
-May be loaded read-only.
-.It data segment
-Contains initialized data; always loaded into writable memory.
-.It text relocations
-Contains records used by the link editor
-to update pointers in the text segment when combining binary files.
-.It data relocations
-Like the text relocation section, but for data segment pointers.
-.It symbol table
-Contains records used by the link editor
-to cross reference the addresses of named variables and functions
-.Pq Dq symbols
-between binary files.
-.It string table
-Contains the character strings corresponding to the symbol names.
-.El
-.Pp
-Every binary file begins with an
-.Fa exec
-structure:
-.Bd -literal -offset indent
-struct exec {
- u_int32_t a_midmag;
- u_int32_t a_text;
- u_int32_t a_data;
- u_int32_t a_bss;
- u_int32_t a_syms;
- u_int32_t a_entry;
- u_int32_t a_trsize;
- u_int32_t a_drsize;
-};
-.Ed
-.Pp
-The fields have the following functions:
-.Bl -tag -width a_trsize
-.It Fa a_midmag
-This field is stored in network byte-order so that binaries for
-machines with alternate byte orders can be distinguished.
-It has a number of sub-components accessed by the macros
-.Fn N_GETFLAG ,
-.Fn N_GETMID ,
-and
-.Fn N_GETMAGIC ,
-and set by the macro
-.Fn N_SETMAGIC .
-.Pp
-The macro
-.Fn N_GETFLAG
-returns a few flags:
-.Bl -tag -width EX_DYNAMIC
-.It Dv EX_DYNAMIC
-Indicates that the executable requires the services of the run-time link editor.
-.It Dv EX_PIC
-Indicates that the object contains position independent code.
-This flag is set by
-.Xr as 1
-when given the
-.Fl k
-flag and is preserved by
-.Xr ld 1
-if necessary.
-.El
-.Pp
-If both
-.Dv EX_DYNAMIC
-and
-.Dv EX_PIC
-are set, the object file is a position independent
-executable image (e.g., a shared library), which is to be loaded into the
-process address space by the run-time link editor.
-.Pp
-The macro
-.Fn N_GETMID
-returns the machine ID.
-This indicates which machine(s) the binary is intended to run on.
-.Pp
-.Fn N_GETMAGIC
-specifies the magic number, which uniquely identifies binary files
-and distinguishes different loading conventions.
-The field must contain one of the following values:
-.Bl -tag -width ZMAGIC
-.It Dv OMAGIC
-The text and data segments immediately follow the header and are contiguous.
-The kernel loads both text and data segments into writable memory.
-.It Dv NMAGIC
-As with
-.Dv OMAGIC ,
-text and data segments immediately follow the header and are contiguous.
-However, the kernel loads the text into read-only memory and loads the data
-into writable memory at the next page boundary after the text.
-.It Dv ZMAGIC
-The kernel loads individual pages on demand from the binary.
-The header, text segment and data segment are all
-padded by the link editor to a multiple of the page size.
-Pages that the kernel loads from the text segment are read-only,
-while pages from the data segment are writable.
-.El
-.It Fa a_text
-Contains the size of the text segment in bytes.
-.It Fa a_data
-Contains the size of the data segment in bytes.
-.It Fa a_bss
-Contains the number of bytes in the
-.Dq BSS segment
-and is used by the kernel to set the initial break
-.Pq Xr brk 2
-after the data segment.
-The kernel loads the program so that this amount of writable memory
-appears to follow the data segment and initially reads as zeroes.
-.It Fa a_syms
-Contains the size in bytes of the symbol table section.
-.It Fa a_entry
-Contains the address in memory of the entry point
-of the program after the kernel has loaded it;
-the kernel starts the execution of the program
-from the machine instruction at this address.
-.It Fa a_trsize
-Contains the size in bytes of the text relocation table.
-.It Fa a_drsize
-Contains the size in bytes of the data relocation table.
-.El
-.Pp
-The
-.Pa a.out.h
-include file defines several macros which use an
-.Fa exec
-structure to test consistency or to locate section offsets in the binary file.
-.Bl -tag -width N_TRELOFF(exec)
-.It Fn N_BADMAG exec
-Non-zero if the
-.Fa a_magic
-field does not contain a recognized value.
-.It Fn N_TXTOFF exec
-The byte offset of the beginning of the text segment.
-.It Fn N_DATOFF exec
-The byte offset of the beginning of the data segment.
-.It Fn N_DRELOFF exec
-The byte offset of the beginning of the data relocation table.
-.It Fn N_TRELOFF exec
-The byte offset of the beginning of the text relocation table.
-.It Fn N_SYMOFF exec
-The byte offset of the beginning of the symbol table.
-.It Fn N_STROFF exec
-The byte offset of the beginning of the string table.
-.El
-.Pp
-Relocation records have a standard format which is described by the
-.Fa relocation_info
-structure:
-.Bd -literal -offset indent
-struct relocation_info {
- int r_address;
- unsigned int r_symbolnum : 24,
- r_pcrel : 1,
- r_length : 2,
- r_extern : 1,
- r_baserel : 1,
- r_jmptable : 1,
- r_relative : 1,
- r_copy : 1;
-};
-.Ed
-.Pp
-The
-.Fa relocation_info
-fields are used as follows:
-.Bl -tag -width r_symbolnum
-.It Fa r_address
-Contains the byte offset of a pointer that needs to be link-edited.
-Text relocation offsets are reckoned from the start of the text segment,
-and data relocation offsets from the start of the data segment.
-The link editor adds the value that is already stored at this offset
-into the new value that it computes using this relocation record.
-.It Fa r_symbolnum
-Contains the ordinal number of a symbol structure in the symbol table (it is
-.Em not
-a byte offset).
-After the link editor resolves the absolute address for this symbol,
-it adds that address to the pointer that is undergoing relocation.
-(If the
-.Fa r_extern
-bit is clear, the situation is different; see below.)
-.It Fa r_pcrel
-If this is set, the link editor assumes that it is updating a pointer
-that is part of a machine code instruction using pc-relative addressing.
-The address of the relocated pointer is implicitly added
-to its value when the running program uses it.
-.It Fa r_length
-Contains the log base 2 of the length of the pointer in bytes;
-0 for 1-byte displacements, 1 for 2-byte displacements,
-2 for 4-byte displacements.
-.It Fa r_extern
-Set if this relocation requires an external reference;
-the link editor must use a symbol address to update the pointer.
-When the
-.Fa r_extern
-bit is clear, the relocation is
-.Dq local ;
-the link editor updates the pointer to reflect
-changes in the load addresses of the various segments,
-rather than changes in the value of a symbol (except when
-.Fa r_baserel
-is also set, see below).
-In this case, the content of the
-.Fa r_symbolnum
-field is an
-.Fa n_type
-value (see below);
-this type field tells the link editor
-what segment the relocated pointer points into.
-.It Fa r_baserel
-If set, the symbol, as identified by the
-.Fa r_symbolnum
-field, is to be relocated to an offset into the Global Offset Table.
-At run-time, the entry in the Global Offset Table at this offset is set to
-be the address of the symbol.
-.It Fa r_jmptable
-If set, the symbol, as identified by the
-.Fa r_symbolnum
-field, is to be relocated to an offset into the Procedure Linkage Table.
-.It Fa r_relative
-If set, this relocation is relative to the (run-time) load address of the
-image this object file is going to be a part of.
-This type of relocation only occurs in shared objects.
-.It Fa r_copy
-If set, this relocation record identifies a symbol whose contents should
-be copied to the location given in
-.Fa r_address .
-The copying is done by the run-time link editor from a suitable data
-item in a shared object.
-.El
-.Pp
-Symbols map names to addresses (or more generally, strings to values).
-Since the link editor adjusts addresses,
-a symbol's name must be used to stand for its address
-until an absolute value has been assigned.
-Symbols consist of a fixed-length record in the symbol table
-and a variable-length name in the string table.
-The symbol table is an array of
-.Fa nlist
-structures:
-.Bd -literal -offset indent
-struct nlist {
- union {
- char *n_name;
- long n_strx;
- } n_un;
- unsigned char n_type;
- char n_other;
- short n_desc;
- unsigned long n_value;
-};
-.Ed
-.Pp
-The fields are used as follows:
-.Bl -tag -width n_un.n_strx
-.It Fa n_un.n_strx
-Contains a byte offset into the string table for the name of this symbol.
-When a program accesses a symbol table with the
-.Xr nlist 3
-function, this field is replaced with the
-.Fa n_un.n_name
-field, which is a pointer to the string in memory.
-.It Fa n_type
-Used by the link editor to determine how to update the symbol's value.
-The
-.Fa n_type
-field is broken down into three sub-fields using bitmasks.
-The link editor treats symbols with the
-.Dv N_EXT
-type bit set as
-.Dq external
-symbols and permits references to them from other binary files.
-The
-.Dv N_TYPE
-mask selects bits of interest to the link editor:
-.Bl -tag -width N_TEXT
-.It Dv N_UNDF
-An undefined symbol.
-The link editor must locate an external symbol with the same name
-in another binary file to determine the absolute value of this symbol.
-As a special case, if the
-.Fa n_value
-field is non-zero and no binary file in the link-edit defines this symbol,
-the link editor will resolve this symbol to an address
-in the BSS segment, reserving an amount of bytes equal to
-.Fa n_value .
-If this symbol is undefined in more than one binary file
-and the binary files do not agree on the size,
-the link editor chooses the greatest size found across all binaries.
-.It Dv N_ABS
-An absolute symbol.
-The link editor does not update an absolute symbol.
-.It Dv N_TEXT
-A text symbol.
-This symbol's value is a text address and
-the link editor will update it when it merges binary files.
-.It Dv N_DATA
-A data symbol; similar to
-.Dv N_TEXT
-but for data addresses.
-The values for text and data symbols are not file offsets but
-addresses; to recover the file offsets, it is necessary
-to identify the loaded address of the beginning of the corresponding
-section and subtract it, then add the offset of the section.
-.It Dv N_BSS
-A BSS symbol; like text or data symbols but
-has no corresponding offset in the binary file.
-.It Dv N_FN
-A filename symbol.
-The link editor inserts this symbol before
-the other symbols from a binary file when
-merging binary files.
-The name of the symbol is the filename given to the link editor,
-and its value is the first text address from that binary file.
-Filename symbols are not needed for link editing or loading,
-but are useful for debuggers.
-.El
-.Pp
-The
-.Dv N_STAB
-mask selects bits of interest to symbolic debuggers
-such as
-.Xr gdb 1 ;
-the values are described in
-.Xr stab 5 .
-.It Fa n_other
-This field provides information on the nature of the symbol independent of
-the symbol's location in terms of segments as determined by the
-.Fa n_type
-field.
-Currently, the lower 4 bits of the
-.Fa n_other
-field hold one of two values:
-.Dv AUX_FUNC
-and
-.Dv AUX_OBJECT
-.Po
-see
-.Aq Pa link.h
-for their definitions
-.Pc .
-.Dv AUX_FUNC
-associates the symbol with a callable function, while
-.Dv AUX_OBJECT
-associates the symbol with data, irrespective of their locations in
-either the text or the data segment.
-This field is intended to be used by
-.Xr ld 1
-for the construction of dynamic executables.
-.It Fa n_desc
-Reserved for use by debuggers; passed untouched by the link editor.
-Different debuggers use this field for different purposes.
-.It Fa n_value
-Contains the value of the symbol.
-For text, data and BSS symbols, this is an address;
-for other symbols (such as debugger symbols),
-the value may be arbitrary.
-.El
-.Pp
-The string table consists of an
-.Em u_int32_t
-length followed by null-terminated symbol strings.
-The length represents the size of the entire table in bytes,
-so its minimum value (or the offset of the first string)
-is always 4 on 32-bit machines.
-.Sh SEE ALSO
-.Xr as 1 ,
-.Xr gdb 1 ,
-.Xr ld 1 ,
-.Xr brk 2 ,
-.Xr execve 2 ,
-.Xr nlist 3 ,
-.Xr core 5 ,
-.Xr elf 5 ,
-.Xr stab 5
-.Sh HISTORY
-The
-.Pa a.out.h
-include file appeared in
-.At v3 .
-.Sh BUGS
-Nobody seems to agree on what
-.Em BSS
-stands for.
diff --git a/share/man/man5/core.5 b/share/man/man5/core.5
index 82fc1143d5c..4285d6324d8 100644
--- a/share/man/man5/core.5
+++ b/share/man/man5/core.5
@@ -1,4 +1,4 @@
-.\" $OpenBSD: core.5,v 1.14 2012/08/30 15:57:13 deraadt Exp $
+.\" $OpenBSD: core.5,v 1.15 2013/10/19 09:00:19 deraadt Exp $
.\" $NetBSD: core.5,v 1.4 1994/11/30 19:31:11 jtc Exp $
.\"
.\" Copyright (c) 1980, 1991, 1993
@@ -30,7 +30,7 @@
.\"
.\" @(#)core.5 8.3 (Berkeley) 12/11/93
.\"
-.Dd $Mdocdate: August 30 2012 $
+.Dd $Mdocdate: October 19 2013 $
.Dt CORE 5
.Os
.Sh NAME
@@ -144,10 +144,9 @@ struct core {
.Pp
The core structure's
.Fa c_midmag field
-is an a.out midmag number with a
+is an a.out-style midmag number with a
.Dv COREMAGIC
-magic number (see
-.Xr a.out 5 )
+magic number.
and flags from the following list:
.Bd -unfilled -offset indent
#define CORE_CPU 1
diff --git a/share/man/man5/stab.5 b/share/man/man5/stab.5
deleted file mode 100644
index 5d9c6ac4fda..00000000000
--- a/share/man/man5/stab.5
+++ /dev/null
@@ -1,224 +0,0 @@
-.\" $OpenBSD: stab.5,v 1.14 2007/05/31 19:19:58 jmc Exp $
-.\" $NetBSD: stab.5,v 1.3 1994/11/30 19:31:33 jtc Exp $
-.\"
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)stab.5 8.1 (Berkeley) 6/5/93
-.\"
-.Dd $Mdocdate: May 31 2007 $
-.Dt STAB 5
-.Os
-.Sh NAME
-.Nm stab
-.Nd symbol table types
-.Sh SYNOPSIS
-.Fd #include <stab.h>
-.Sh DESCRIPTION
-The
-.Aq Pa stab.h
-file defines some of the symbol table
-.Fa n_type
-field values for
-.Xr a.out 5
-files.
-These are the types for permanent symbols (i.e., not local labels, etc.\&)
-used by the old debugger
-.Em sdb
-and the Berkeley Pascal compiler pc.
-.Pp
-Symbol table entries can be produced by the
-.Dq .stabs
-assembler directive.
-This allows one to specify a double-quote delimited name, a symbol type, one
-.Li char
-and one
-.Li short
-of information about the symbol, as well as an
-.Li unsigned long
-(usually an address).
-.Pp
-To avoid having to produce an explicit label for the address field,
-the
-.Dq .stabd
-directive can be used to implicitly address the current location.
-If no name is needed, symbol table entries can be generated using the
-.Dq .stabn
-directive.
-The loader promises to preserve the order of symbol table entries produced by
-.Dq .stab
-directives.
-As described in
-.Xr a.out 5 ,
-an element of the symbol table consists of the following structure:
-.Bd -literal
-/*
-* Format of a symbol table entry.
-*/
-
-struct nlist {
- union {
- char *n_name; /* for use when in-core */
- long n_strx; /* index into file string table */
- } n_un;
- unsigned char n_type; /* type flag */
- char n_other; /* unused */
- short n_desc; /* see struct desc, below */
- unsigned n_value; /* address or offset or line */
-};
-.Ed
-.Pp
-The low bits of the
-.Fa n_type
-field are used to place a symbol into
-at most one segment, according to
-the following masks, defined in
-.Aq Pa a.out.h .
-A symbol can be in none of these segments by having none of these segment
-bits set.
-.Bd -literal
-/*
-* Simple values for n_type.
-*/
-
-#define N_UNDF 0x0 /* undefined */
-#define N_ABS 0x2 /* absolute */
-#define N_TEXT 0x4 /* text */
-#define N_DATA 0x6 /* data */
-#define N_BSS 0x8 /* bss */
-
-#define N_EXT 01 /* external bit, or'ed in */
-.Ed
-.Pp
-The
-.Fa n_value
-field of a symbol is relocated by the linker,
-.Xr ld 1 ,
-as an address within the appropriate segment.
-.Fa n_value
-fields of symbols not in any segment are unchanged by the linker.
-In addition, the linker will discard certain symbols, according to rules
-of its own, unless the
-.Fa n_type
-field has one of the following bits set:
-.Bd -literal
-/*
-* Other permanent symbol table entries have some of the N_STAB bits set.
-* These are given in <stab.h>
-*/
-
-#define N_STAB 0xe0 /* if any of these bits set, don't discard */
-.Ed
-.Pp
-This allows up to 112 (7 \(** 16) symbol types, split between the various
-segments.
-Some of these have already been claimed.
-The old symbolic debugger,
-.Em sdb ,
-uses the following
-.Fa n_type
-values:
-.Bd -literal
-#define N_GSYM 0x20 /* global symbol: name,,0,type,0 */
-#define N_FNAME 0x22 /* procedure name (f77 kludge): name,,0 */
-#define N_FUN 0x24 /* procedure: name,,0,linenumber,address */
-#define N_STSYM 0x26 /* static symbol: name,,0,type,address */
-#define N_LCSYM 0x28 /* .lcomm symbol: name,,0,type,address */
-#define N_RSYM 0x40 /* register sym: name,,0,type,register */
-#define N_SLINE 0x44 /* src line: 0,,0,linenumber,address */
-#define N_SSYM 0x60 /* structure elt: name,,0,type,struct_offset */
-#define N_SO 0x64 /* source file name: name,,0,0,address */
-#define N_LSYM 0x80 /* local sym: name,,0,type,offset */
-#define N_SOL 0x84 /* #included file name: name,,0,0,address */
-#define N_PSYM 0xa0 /* parameter: name,,0,type,offset */
-#define N_ENTRY 0xa4 /* alternate entry: name,linenumber,address */
-#define N_LBRAC 0xc0 /* left bracket: 0,,0,nesting level,address */
-#define N_RBRAC 0xe0 /* right bracket: 0,,0,nesting level,address */
-#define N_BCOMM 0xe2 /* begin common: name,, */
-#define N_ECOMM 0xe4 /* end common: name,, */
-#define N_ECOML 0xe8 /* end common (local name): ,,address */
-#define N_LENG 0xfe /* second stab entry with length information */
-.Ed
-.Pp
-where the comments give
-.Em sdb
-conventional use for
-.Dq .stab s
-and the
-.Fa n_name ,
-.Fa n_other ,
-.Fa n_desc ,
-and
-.Fa n_value
-fields
-of the given
-.Fa n_type .
-.Em sdb
-uses the
-.Fa n_desc
-field to hold a type specifier in the form used
-by the Portable C Compiler,
-.Xr cc 1 ;
-see the header file
-.Pa pcc.h
-for details on the format of these type values.
-.Pp
-The Berkeley Pascal compiler, pc, uses the following
-.Fa n_type
-value:
-.Bd -literal
-#define N_PC 0x30 /* global pascal symbol: name,,0,subtype,line */
-.Ed
-.Pp
-and uses the following subtypes to do type checking across separately
-compiled files:
-.Bd -unfilled -offset indent
-1 source file name
-2 included file name
-3 global label
-4 global constant
-5 global type
-6 global variable
-7 global function
-8 global procedure
-9 external function
-10 external procedure
-11 library variable
-12 library routine
-.Ed
-.Sh SEE ALSO
-.Xr as 1 ,
-.Xr gdb 1 ,
-.Xr ld 1 ,
-.Xr a.out 5
-.Sh HISTORY
-The
-.Nm
-file appeared in
-.Bx 4.0 .
-.Sh BUGS
-More basic types are needed.