|
|
1.1 root 1:
2:
3: l.out.h Header File l.out.h
4:
5:
6:
7:
8: Object file format
9:
10: #include <l.out.h>
11:
12: The header file l.out.h describes the format for the output of
13: compilers, assemblers, and the linker.
14:
15: The assembler outputs an unlinked object module, which must be
16: bound with any required libraries (leaving no unresolved symbols)
17: to produce an executable file, or load module. A call to one of
18: the exec routines can then execute the load module directly.
19:
20: The link module begins with a header, which gives global and size
21: information about each segment. Segments of the indicated size
22: follow the header in a fixed order. The header file l.out.h
23: defines the header structure for the Z8000 and M68000 as follows:
24:
25:
26: struct ldheader {
27: short l_magic;
28: short l_flag;
29: short l_machine;
30: short l_tbase;
31: size_t l_ssize[NLSEG];
32: long l_entry;
33: };
34:
35:
36: It describes the header structure for the i8086, i8088, i80286,
37: and PDP-11 as follows:
38:
39:
40: struct ldheader {
41: int l_magic;
42: int l_flag;
43: int l_machine;
44: vaddr_t l_entry;
45: size_t l_ssize[NLSEG];
46: };
47:
48:
49: l_magic is the magic number that identifies a link module; it al-
50: ways contains L_MAGIC. l_flag contains flags indicating the type
51: of the object. l_machine is the processor identifier, as defined
52: in the header file mtype.h. l_tbase is the start of the text
53: segment. l_entry contains the machine address where execution of
54: the module commences. l_ssize gives the size of each segment.
55:
56: ***** Files *****
57:
58: ll.oouutt -- Default load module name
59: <l.out.h>
60: <mmttyyppee.hh> -- Machine identifiers
61:
62:
63:
64: COHERENT Lexicon Page 1
65:
66:
67:
68:
69: l.out.h Header File l.out.h
70:
71:
72:
73: ***** See Also *****
74:
75: as, cc, COHERENT system calls, core, exec, ld, mtype, nm
76:
77: ***** Notes *****
78:
79: In the early releases of COHERENT, the header structure was
80: defined only as shown above for i8086. It was changed to handle
81: 32-bit addresses. In the future, the header structure defined
82: above for Z8000 and M68000 machines will be implemented on i8086
83: and i80286 systems as well.
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130: COHERENT Lexicon Page 2
131:
132:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.