|
|
1.1 root 1: Changes for the 4.0 release (the cctools-133 release):
2: - Picked up sparc changes to architecture/sparc/reg.h.
3: - Picked up sparc changes to mach/sparc/thread_status.h.
4: - Picked up sparc changes to stuff/bytesex.h for prototype of
5: swap_sparc_thread_state_fpu().
6: - Picked up sparc changes to mach-o/sparc/reloc.h.
7:
8: Changes for the 4.0 release (the cctools-132 release):
9: - Removed the 2.0 compatiblity header files.
10: - Picked up the files mach/sparc/thread_status.h and architecture/sparc/reg.h
11:
12: Changes for the 3.3 release (the cctools-125 release):
13: - Picked up installing 2.0Compatiblity/sys/loader.h
14: - Added installing nlist.h stab.h loader.h fat.h (bug #31334).
15:
16: Changes for the 3.3 release (the cctools-120 release):
17: - Added the file <mach-o/dyld.h>
18:
19: Changes for the 3.3 release (the cctools-119 release):
20: - Picked up the first changes for sparc (sparc/reloc.h) the work is not
21: complete.
22:
23: Changes for the 3.3 release (the cctools-104 release):
24: - Changed the name of the first parameter of swap_ident_command() from id to
25: id_cmd (in bytesex.h). The compiler is treating this as a reserved word.
26:
27: Changes for the 3.3 release (the cctools-102 release):
28: - Integrated in the hppa support.
29: different include/Makefile (integrated for cctools-102)
30: Using cctoolshppa-37. mach-o/hppa/reloc.h is new.
31: different include/gnu/a.out.h (integrated for cctools-102)
32: Using cctoolshppa-37. Added:
33: #ifdef HPPA
34: #include "mach-o/hppa/reloc.h"
35: #endif
36: different include/mach/machine.h (integrated for cctools-102)
37: Using cctoolshppa-37. New constants for hppa and badly integrated the
38: existing contants:
39: #define CPU_TYPE_ANY ((cpu_type_t) -1)
40: #define CPU_SUBTYPE_MULTIPLE ((cpu_subtype_t) -1)
41: #define CPU_SUBTYPE_LITTLE_ENDIAN ((cpu_subtype_t) 0)
42: #define CPU_SUBTYPE_BIG_ENDIAN ((cpu_subtype_t) 1)
43: which were scattered though out the file and moved from their comment.
44: Email sent to Josh on this one (who forwarded it to Mac).
45: different include/stuff/bytesex.h (integrated for cctools-102)
46: Using cctoolshppa-37. New routines for swaping hppa's threads.
47: Only in cctoolshppa-37/include/mach: hppa (integrated for cctools-102)
48: Pick up include/mach/hppa/thread_status.h from cctoolshppa-37.
49: Only in cctoolshppa-37/include/mach-o: hppa (integrated for cctools-102)
50: Pick up include/mach-o/hppa/reloc.h from cctoolshppa-37. But has
51: HPPA_RELOC_NORELOC which is used in hppa.c. HPPA_RELOC_NORELOC pulled
52: from reloc.h and NO_RELOC defined as 0x10 (out side the range of r_type:4)
53: in hppa.h and NO_RELOC used in hppa.c.
54:
55: Changes for the 3.1 release (the cctools-22 release):
56: - Added to mach/machine.h the following cpp macros (bug #32553):
57: #define CPU_TYPE_ANY ((cpu_type_t) -1)
58: #define CPU_SUBTYPE_LITTLE_ENDIAN ((cpu_subtype_t) 0)
59: #define CPU_SUBTYPE_BIG_ENDIAN ((cpu_subtype_t) 1)
60:
61: Changes for the 3.1 release (the cctools-15 release):
62: - Picked up the proper mach/m98k/thread_status.h and the six included files
63: to make it compile.
64:
65: Changes for the 3.1 release (the cctools-13 release):
66: - Added the m98k (PowerPC) architecture. This includes a kludged
67: mach/m98k/thread_status.h with only an entry point.
68:
69: Changes for the 3.1 release (the cctools-6 release):
70: - Changed mach/i386/thread_status.h so the m68k compiler will compile this the
71: same as the i386 compiler. The change was to change the "unsigned int :0" to
72: "unsigned short pad_??".
73:
74: Changes for the 3.1 release (the cctools-5 release):
75: - Picked up the lono teams cctools-4_2 mach/i386/thread_status.h as well as
76: machdep/i386/frame.h machdep/i386/fpregs.h machdep/i386/sel.h .
77: - Changed "struct i386_thread_state *cpu," to "i386_thread_state_t *cpu,"
78: in bytesex.h for the lono team.
79:
80: Changes for the 3.1 release (the cctools-4 release):
81: - Moved the ix86 directory to i386.
82:
83: Changes for the 3.0 release (the -56 compiler release):
84: - Fixed some typos in mach-o/reloc.h in the __LITTLE_ENDIAN__ code (bug #19639).
85:
86: Changes for the 3.0 release (the -53 compiler release):
87: - Removed the local copy of mach/m88k/thread_status.h .
88:
89: Changes for the 3.0 release (the -47 compiler release):
90: - Split of the reloc.h header file:
91: part of mach-o/reloc.h -> mach-o/m88k/reloc.h
92: part of mach-o/reloc.h -> mach-o/i860/reloc.h
93: - Switch over to the newer header file organization.
94: m88k/mach/thread_status.h -> mach/m88k/thread_status.h
95: ix86/mach/thread_status.h -> mach/ix86/thread_status.h
96: i860/mach/thread_status.h -> mach/i860/thread_status.h
97: m88k/disasm.h -> mach-o/m88k/disasm.h
98: m88k/parseinst.h -> mach-o/m88k/parseinst.h
99:
100: Changes for the 3.0 release (the -44 compiler release):
101: - Switch over to the new header file organization.
102:
103: Changes for the 3.0 release (the -36 compiler release):
104: - Added the 88k disassembler header file but these are not installed.
105:
106: Changes for the 3.0 release (the -34 compiler release):
107: - Added installsrc, installIBMsrc and installGNUsrc targets to the Makefile.
108:
109: Changes for the 3.0 release (the -33 compiler release):
110: - sys/machine.h: (this is owned by the OS group and will be given back to them)
111: * 16-Oct-90 Compiler group (comp) at NeXT.
112: * Replaced the 88k cpu_subtype CPU_SUBTYPE_MMAX_JPC with
113: * CPU_SUBTYPE_MC88100 and CPU_SUBTYPE_MC88110 to match 68k types.
114:
115: /*
116: * MC88000 subtypes
117: */
118: #define CPU_SUBTYPE_MC88100 ((cpu_subtype_t) 1)
119: #define CPU_SUBTYPE_MC88110 ((cpu_subtype_t) 2)
120:
121:
122: The I860 CPU type in the NDTools 7 conflicts with the CPU_TYPE_I386 which is
123: also 7. In talking with Mike Paquette (10/16/90) he said it is ok to change
124: CPU_TYPE_I860 to whatever and he will recompile NextDimention.
125: The three I860 additions were as follows:
126:
127: * 16-Aug-89 Mike Paquette (mpaque) at NeXT
128: * Added I860 CPU type and subtypes for big or little-endian data
129: * implementation.
130:
131: #define CPU_TYPE_I860 ((cpu_type_t) 7) <<<will be 14>>>
132:
133: /*
134: * I860 subtypes
135: */
136: #define CPU_SUBTYPE_LITTLE_ENDIAN ((cpu_subtype_t) 0)
137: #define CPU_SUBTYPE_BIG_ENDIAN ((cpu_subtype_t) 1)
138:
139: - machine/thread_status.h: where "machine" is a symbolic link to "next"
140: (this is owned by the OS group and will be given back to them)
141: In talking to Mike DeMoney on (10/16/90) he came up with the following
142: structure to handle the multiple machines specific files. These would
143: be the directories in /usr/include (or in the kernel's header file area):
144:
145: next68k/ was just next/
146: next88k/
147: next860/
148:
149: A symbolic link from "next to "next" will be added for compatiblity and
150: the symbolic "machine" will point to the directory the kernel is configured
151: for.
152:
153: - next860/thread_status.h:
154: This is to be owned by someone like Mike Paquette. It is the file that
155: discrbes JUST the i860 thread state.
156:
157: - next88k/thread_status.h:
158: This is to be owned by the OS group. The compiler group made a first
159: cut at it.
160:
161: Changes for the Warp ?? release (the -25 compiler release):
162: - Added the scattered_relocation_info struct to reloc.h
163:
164: Changes for the Warp ?? release (the -24 compiler release):
165: - Added #import <sys/loader.h> to ldsyms.h (bug 6031).
166: - Added rld.h to be installed in /usr/include.
167:
168: Changes for the 2.0 impulse X.X release (the -19 compiler release):
169: - Updated ldsyms.h to match the new link editor. Basicly removing lots of old
170: stuff.
171: - Added one missing ';' in symseg.h to get rid of a warning.
172: - Removed the temporay copies of <ranlib.h> and <sys/loader.h> now that the
173: Impulse 0.02 release has the right versions.
174: - Added temporary copies of <nlist.h> and <sys/machine.h> until the next libc
175: and mk projects get released and the correct versions are in /usr/include.
176:
177: Changes for the 0.93 release (the -12 compiler release):
178: - No longer install symseg.h
179: - Now own sys/exec.h as a part of a.out.h
180:
181: Changes for the 0.82 release (the -8 compiler release):
182: - Changed the Makefile to install in /usr/include
183:
184: Changes for the 0.82 release (the -7 compiler release):
185: - Added header_addr to fvmlib load and id commands.
186: - Added the SEG_PAGEZERO segment name to sys/loader.h for the segment created
187: to protect page zero for NULL pointers.
188:
189: Changes for the 0.81 release (the -6 compiler release):
190: - The following files to reflect what is contained in a true mach-O object
191: file (relocatables and other formats):
192: nlist.h
193: reloc.h (new)
194: symseg.h
195: stab.h
196: These along with <sys/loader.h> are now the offical files that mach-O object
197: tools should reference. The file <a.out.h> has been updated with the same
198: changes but will go away in the 1.0 release or renamed to <a.out.h.old>.
199:
200: The logical changes are as follows:
201:
202: To the nlist structure (also see comments in <nlist.h> and <stab.h>):
203:
204: The modifications from the original format were changing n_other (an unused
205: field) to n_sect and the addition of the N_SECT type. All mach-O symbols
206: defined a section (for example what use to be N_TEXT, N_DATA and N_BSS) now
207: have the type N_SECT.
208:
209: If the type is N_SECT then the n_sect field contains an ordinal of the
210: section the symbol is defined in. The sections are numbered from 1 and
211: refer to sections in order they appear in the load commands for the file
212: they are in. This means the same ordinal may very well refer to different
213: sections in different files.
214:
215: The n_value field for all symbol table entries (including N_STAB's) gets
216: updated by the link editor based on the value of it's n_sect field and where
217: the section n_sect references gets relocated. If the value of the n_sect
218: field is NO_SECT then it's n_value field is not changed by the link editor.
219: The comments in <stab.h> have been updated to reflect this.
220:
221: Common symbols are represented by undefined (N_UNDF) external (N_EXT) types
222: who's values (n_value) are non-zero. In which case the value of the n_value
223: field is the size (in bytes) of the common symbol.
224:
225: Absolute, undefined and common symbols are NOT in any section and thus their
226: n_sect field must be NO_SECT to indicate this and avoid having their n_value
227: field changed.
228:
229: To the relocation_info structure (see the comments in <reloc.h>):
230:
231: The modifications from the original format were changing the value
232: of the r_symbolnum field for "local" (r_extern == 0) relocation entries.
233:
234: In 4.3bsd a.out objects if r_extern is zero then r_symbolnum is an ordinal
235: for the segment the symbol being relocated is in. These ordinals are the
236: symbol types N_TEXT, N_DATA, N_BSS or N_ABS. In mach-O object files these
237: ordinals refer to the sections in the object file they are in. The first
238: section has the ordinal 1, the second 2, and so on. This means that the
239: same ordinal in two different object files could refer to two different
240: sections. And further could have still different ordinals when combined
241: by the link-editor. The value R_ABS is used for relocation entries for
242: absolute symbols which need no further relocation.
243:
244: To the symseg structures (see the comments in <symseg.h>):
245:
246: To handle an arbitrary number of segments and sections the symbol_root,
247: the indirect_root and the shlib_root have new structures in a mach-O
248: object file. The change to these structures was to replace the fields
249: relating to where a segment was loaded with a load map.
250:
251: The load map describes where the parts the relocatable object have been
252: loaded in the executable. The enitre address space of the relocatable
253: is to be covered by all the map entries. There may be multiple map entries
254: for a single section or one map entry for multiple sections. This allows
255: the link editor to scatter load a section based on information that improves
256: performance by increasing the locality of reference.
257:
258: - The N_INDR symbol type was added for indirect symbols (to support building
259: the ANSI C library).
260:
261: If the type is N_INDR then the symbol is defined to be the same as another
262: symbol. In this case the n_value field is an index into the string table
263: of the other symbol's name. When the other symbol is defined then they both
264: take on the defined type and value.
265:
266: - Changed the loader defined symbol names _etext, _edata, and _end to __etext,
267: __edata, __end so not to pollute the name space of ANSI C programs. There
268: are now macros for these symbols. The ANSI C library will have objects with
269: indirect symbols so that old names will still work if the program is linked
270: with the ANSI C library.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.