773
[darwin-xtools.git] / cctools / include / notes
blobfbe9a53708a9c0fdb076ab9e45b13c89820e5234
1 Changes for the 5.27 release (the cctools-772 release):
2 - Added getsectiondata() API to mach-o/getsect.h . Radar bug #5724145.
4 Changes for the 5.27 release (the cctools-769 release):
5 - Changed round() in stuff/round.h to take and return uint64_t types.  Radar
6   bug #7245879.
8 Changes for the 5.26 release (the cctools-760 release):
9 - Changed the sources so the armv7 stuff is a no longer #ifndef __OPEN_SOURCE__
10   Radar bug #7016121.
11   - Changed the Makefile and removed #ifndef __OPEN_SOURCE__ for "opcode/arm.h".
12   - Removed the #ifndef __OPEN_SOURCE__ in "mach/machine.h" that bracket armv7.
14 Changes for the 5.26 release (the cctools-758 release):
15 - Backed out the change for Radar bug #6511482:
16   - Left in ARM_THUMB_32BIT_BRANCH in <mach-o/arm/reloc.h> but added a comment
17     to say it is obsolete.
18   Radar bug #6945428.
20 Changes for the 5.26 release (the cctools-756 release):
21 - Added add_execute_list_with_prefix() to "stuff/execute.h" to add a string
22   prefixed with the executable's path.  Radar bug #6821441.
24 Changes for the 5.26 release (the cctools-752 release):
25 - Ported to build with clang.
26   - Added a #define for __STDBOOL_H to "stuff/bool.h" to allow building with
27     clang. Radar bug #6753135.
28   - Fixed a warning about extra tokens at end of #endif directive in 
29     "mach/machine.h" by putting __OPEN_SOURCE__ in a comment.
31 Changes for the 5.26 release (the cctools-750 release):
32 - Added lto_get_nlist_64() to stuff/lto.h for use by nm(1) print information
33   from llvm bit code files.  Radar bug #6067110.
35 Changes for the 5.25 release (the cctools-737 release):
36 - Added the new ARM_THUMB_32BIT_BRANCH relocation type to <mach-o/arm/reloc.h> .
37   Radar bug #6511482.
39 Changes for the 5.25 release (the cctools-725 release):
40 - Added support for new compressed LINKEDIT information. Radar bug #6232822.
41   - Added dyld_info_command and constants to mach-o/loader.h .
42   - Added the dyld_info, output_dyld_info and output_dyld_info_size fields to
43     the object struct in stuff/breakout.h .
44   - Added the swap_dyld_info_command() prototype to stuff/bytesex.h .
46 Changes for the 5.25 release (the cctools-724 release):
47 - Added the MH_KEXT_BUNDLE and MH_DEAD_STRIPPABLE_DYLIB constants to
48   <mach-o/loader.h> .  Radar bug #6272534.
50 Changes for the 5.25 release (the cctools-718 release):
51 - Added the header file "coff/debug_directory.h" and added that to the Makefile.
52   Added swap_debug_directory_entry() and swap_mtoc_debug_info() to
53   "coff/bytesex.h".  Radar bug #6211642.
55 Changes for the 5.25 release (the cctools-708 release):
56 - Picked up the changes to the comments in <mach-o/x86_64/reloc.h> for
57   Radar bug #5949622.
59 Changes for the 5.25 release (the cctools-705 release):
60 - Changed the struct ofile in <stuff/ofile.h> so that the lto* fields are not
61   #ifdef'ed LTO_SUPPORT.  Radar bug #5960471.
62 - Ported to work on 64-bit hosts:   Radar bug #6022298.
63   - Changed the unsigned long types in <mach-o/redo_prebinding.h> to uint32_t
64     types.  Also change the macro REDO_PREBINDING_VERSION from 2 to 3.
65   - Changed the unsigned long types in <opcode/arm.h> to uint32_t types.
66   - Changed the unsigned long types in <hppa/thread_status.h> to uint32_t types.
67   - Changed the comments in <gnu/symseg.h> that referred to sizeof(long) to
68     sizeof(uint32_t).
69   - Changed the unsigned long types in <gnu/exec.h> to uint32_t types and
70     changed the long type to an int32_t type.
71   - Changed the unsigned long type in <coff/bytesex.h> to a uint32_t type.
72   - Changed the unsigned long type in <stuff/version_number.h> to a uint32_t
73     type.
74   - Changed the unsigned long type in <stuff/symbol_list.h> to a uint32_t type.
75   - Changed the unsigned long types in <stuff/round.h> to uint32_t types.
76   - Changed the unsigned long types in <stuff/reloc.h> to uint32_t types.
77   - Changed the unsigned long types in <stuff/ofile.h> to uint32_t types and
78     changed the long type to an int32_t type.
79   - Changed the unsigned long types in <stuff/macosx_deployment_target.h> to
80     uint32_t types.
81   - Changed the unsigned long type in <stuff/lto.h> to a size_t type.
82   - Changed the unsigned long types in <stuff/hppa.h> to uint32_t types.
83   - Changed the long type in <stuff/hash_string.h> to an int32_t type.
84   - Changed the long types in <stuff/execute.h> to int types.
85   - Changed the unsigned long type of errors in <stuff/errors.h> to a uint32_t
86     type.
87   - Changed the unsigned long types in <stuff/seg_addr_table.h> to a uint32_t
88     types.
89   - Changed the unsigned long type in <stuff/dylib_table.h> to a uint32_t type.
90   - Changed the unsigned long type and the unsigned int type in <stuff/crc32.c>
91     to uint32_t types.
92   - Changed the unsigned long types in <stuff/bytesex.h> to uint32_t types.
93   - Changed the unsigned long types in <stuff/breakout.h> to uint32_t types.
94     And changed the one long type to a int32_t type.
95   - Changed the type that cpusubtype_findbestarch() takes in <stuff/best_arch.h>
96     to a uint32_t from an unsigned long.
97   - Changed the type that get_stack_direction_from_flag() returns in
98     <stuff/arch.h> to an int from a long.
99   - Changed the type that allocate() and reallocate() takes in
100     <stuff/allocate.h> to a size_t from an unsigned long.
102 Changes for the 5.25 release (the cctools-698 release):
103 - Added support for LLVM bitcode files.  Radar bug #5712460.
104   It was added undef the ifdef LTO_SUPPORT and can be disabled by setting the
105   LTO Makefile macro to nothing instead of its default -DLTO_SUPPORT .
106   - Added the enum value OFILE_LLVM_BITCODE to "stuff/ofile.h"
107   - Added the fields lto, lto_cputype and lto_cpusubtype to the ofile struct in
108     "stuff/ofile.h".
109   - Added the header file "stuff/lto.h" and added it to the Makefile.
111 Changes for the 5.25 release (the cctools-697 release):
113 Changes for the 5.25 release (the cctools-696 release):
114 - Changed <mach/arm/thread_status.h> to use _ARM_THREAD_STATUS_H_ and not
115   _MACH_ARM_THREAD_STATUS_H_.
117 Changes for the 5.25 release (the cctools-691 release):
118 - Added encryption_info_command and LC_ENCRYPTION_INFO to <mach-o/loader.h> .
119   Radar bug #5811987
120 - Added swap_encryption_command() to "stuff/bytesex.h". Radar bug #5811994.
122 Changes for the 5.25 release (the cctools-688 release):
123 - Added LC_LAZY_LOAD_DYLIB and S_LAZY_DYLIB_SYMBOL_POINTERS to
124   <mach-o/loader.h> . Radar bug #5760930
126 Changes for the 5.25 release (the cctools-681 release):
127 - Removed all __OPEN_SOURCE__ references in Makefile, notes, stuff/bytesex.h,
128   stuff/symbol.h, mach/machine.h, mach-o/nlist.h .
129 - Added IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER to coff/aouthdr.h .
131 Changes for the 5.25 release (the cctools-680 release):
132 - Added support for ARMv7. Radar bug #5490815.
133   - Picked up opcode/arm.h from the last GNU binutils v2 source.
134   - Added CPU_SUBTYPE_ARM_V7 to mach/machine.h
135 - Added coff/{ms_dos_stub.h,filehdr.h,aouthdr.h,scnhdr.h,syment.h} based on
136   GNU binutils headers.  Radar bug #5536661.
137 - Added swap_ms_dos_stub(), swap_filehdr(), swap_aouthdr(), swap_scnhdr(),
138   swap_syment() to coff/bytesex.h .  Radar bug #5536661.
140 Changes for the 5.25 release (the cctools-676 release):
141 - Added coff/base_relocs.h and coff/bytesex.h .  Radar bug #5218665.
143 Changes for the 5.25 release (the cctools-675 release):
144 - Added extern "C" #if'ed in for __cplusplus to <mach-o/nlist.h> .  Radar bug
145   #5419852.
146 - Added the new ld_r_ofile field in the struct object in "stuff/breakout.h"
147   the is set in strip(1) when making an ld -r of an object for stripping DWARF
148   so free_archs() in libstuff can call ofile_unmap() on it.  Radar bug #5343015.
150 Changes for the 5.25 release (the cctools-673 release):
151 - Changed the sources so the arm stuff is not in the open source version.
152   Radar bug #5326431.
153   - Changed the Makefile to #ifndef __OPEN_SOURCE__ out the arm files and to
154     run unifdef on nlist.h
155   - Added #ifndef __OPEN_SOURCE__ to the following files to bracket arm code:
156     mach/machine.h, mach-o/nlist.h, stuff/bytesex.h and stuff/symbol.h .
158 Changes for the 5.24 release (the cctools-663 release):
159 - Changed <stuff/macosx_deployment_target.h> so that it now has a struct
160   that contains the major, minor and name of the macosx_deployment_target.
161   And also changed the prototype of get_macosx_deployment_target() to take
162   just a pointer to the struct.  Radar bug #5132019.
164 Changes for the 5.24 release (the cctools-660 release):
165 - Added extern "C" #if'ed in for __cplusplus to <mach-o/swap.h> and updated
166   other headers to not have a trailing semicolon after the closing curly brace
167   for the extern "C".  Radar bug #5075908.
169 Changes for the 5.24 release (the cctools-656 release):
170 - Added MH_PIE to <mach-o/loader.h> .  Radar bug #5041291.
172 Changes for the 5.24 release (the cctools-653 release):
173 - Added GMONTYPE_DYLD2_STATE to <sys/gmon.h> .  Radar bug #4960162.
175 Changes for the 5.24 release (the cctools-651 release):
176 - Added the headers_swapped field to the ofile struct in "stuff/ofile.h".
177   Radar bug #4970647.
179 Changes for the 5.24 release (the cctools-649 release):
180 - Added S_DTRACE_DOF to to <mach-o/loader.h> .  Radar bug #4918330.
182 Changes for the 5.24 release (the cctools-648 release):
183 - Ported <sys/gmon.h> to 64-bit. Radar bug #4601274.
185 Changes for the 5.24 release (the cctools-645 release):
186 - Added support for rpath load command.  Radar bug #4822880.
187   - Added swap_rpath_command() to "stuff/bytesex.h" .
188 - Added extern "C" #if'ed in for __cplusplus to <mach-o/getsect.h> .
189   Radar bug #4814441.
191 Changes for the 5.24 release (the cctools-644 release):
192 - Added CPU_SUBTYPE_VEO_3 and CPU_SUBTYPE_VEO_4 to "mach/machine.h".
193   Radar bug #4799550.
194 - Changed get_stack_addr_from_flag() in "stuff/arch.c" to return a uint64_t.
195   Radar bug #4458775.
197 Changes for the 5.24 release (the cctools-640 release):
198 - Added the capability bit macros to <mach/machine.h> . Radar bug #4754462.
200 Changes for the 5.24 release (the cctools-638 release):
201 - Added the input_indirectsym_pad field to the object struct in
202   <stuff/breakout.h> to deal with the fact that 64-bit object may or may not
203   have padding after the indirect symbol table entries if they have an odd
204   number of entries.  Radar bug #4747408.
206 Changes for the 5.24 release (the cctools-637 release):
207 - Added the macros GET_COMM_ALIGN() and SET_COMM_ALIGN() to <mach-o/nlist.h> .
208   Radar bug #4597166.
210 Changes for the 5.24 release (the cctools-634 release):
211 - Added support for split info load command and data.  Radar bug #4695477.
212   - Added the split_info_cmd, output_split_info_data, and
213     output_split_info_data_size fields to the object struct in the header
214     "stuff/breakout.h".
216 Changes for the 5.24 release (the cctools-632 release):
217 - Ported some headers to used when compiled for 64-bit hosts.
218   Radar bug #4407440.
219   - Added SWAP_INT() macro to <stuff/bytesex.h> and added an #ifndef __LP64__ 
220     around the SWAP_LONG() macro.
221   - Changed the parameter types of swap_indirect_symbols() to be a uint32_t *
222     and a uint32_t in <stuff/bytesex.h>.
223   - Ported <stuff/breakout.h> by not using ranlib structs since ran_un.ran_name
224     can be used when compiling for 64-bit hosts.
225     - Added the new toc_entry struct to <stuff/breakout.h>.
226     - Changed the toc_nranlibs field name in the arch struct to ntocs.
227     - Added the new toc_entries field to the arch struct.
228   - Ported <stuff/ofile.h> and changed ofile_get_word()'s parameter 'word' to
229     a uint32_t pointer from an unsigned long pointer.
231 Changes for the 5.24 release (the cctools-630 release):
232 - Picked up the changes that got dropped from the the cctools-622.5 release:
233   - Support the new x86-64 relocation entry types for signed relocations
234     with offsets.  Radar bug #4664658.
235   Radar bug #4678307.
237 Changes for the 5.24 release (the cctools-626 release):
238 - Added support for code signature load command and data.  Radar bug #4588023.
239   - Added the code_sig_cmd, output_code_sig_data, and output_code_sig_data_size
240     fields to the object struct in the header "stuff/breakout.h".  Also removed
241     the output_indirect_symtab64 field since it should not be there as all
242     indirect symbol table entries are 32-bit indexes into the symbol table.
243   - Added swap_linkedit_data_command() to "stuff/bytesex.h" .
245 Changes for the 5.24 release (the cctools-624 release):
246 - Added Mach-O enhancements for Leopard to <mach-o/loader.h>.  Radar bug
247   #4614861.
249 Changes for the 5.23 release (the cctools-620 release):
250 - Added the routines swap_x86_state_hdr(), swap_x86_float_state64(),
251   swap_x86_exception_state64(), swap_x86_thread_state(), swap_x86_float_state(),
252   swap_x86_exception_state(), swap_x86_debug_state32(),
253   swap_x86_debug_state64() and swap_x86_debug_state() to <mach-o/i386/swap.c> .
254   Radar bug #4491230.
255 - Added the routines swap_x86_float_state64(), swap_x86_state_hdr(),
256   swap_x86_exception_state64(), swap_x86_debug_state32(),
257   swap_x86_debug_state64() to "stuff/bytesex.h" .  Radar bug #4491230.
259 Changes for the 5.23 release (the cctools-618 release):
260 - Add S_16BYTE_LITERALS to mach-o/loader.h.  Radar bug #4555162.
262 Changes for the 5.23 release (the cctools-616 release):
263 - Added the routines swap_mach_header_64(), swap_segment_command_64(),
264   swap_section_64(), swap_routines_command_64(), swap_nlist_64() and
265   swap_dylib_module_64() to <mach-o/swap.h> .  Radar bug #4358209.
267 Changes for the 5.23 release (the cctools-614 release):
268 - Changed "stuff/bytesex.h" to use __darwin_i386_float_state instead of the type
269   i386_float_state.  Radar bug #4508798.
270 - Changed the Makefile so that GAS_MISSING_SRCS does not have
271   mach-o/i386/thread_status.h since it has been removed from the project and
272   causes build problems on Mac OS 10.3.9 . Radar bug #4508798.
273 - Changed the Makefile so that GAS_MISSING_SRCS does not have
274   mach-o/x86_64/reloc.h since it is also in FILES and causes build problems on
275   Mac OS 10.3.9 . Radar bug #4508798.
277 Changes for the 5.23 release (the cctools-610 release):
278 - Added a few ifdef x86_THREAD_STATE64 to a few places to mach-o/i386/swap.h and
279   stuff/bytesex.h to allow it to build on Tiger.  Radar bug #4535019.
281 Changes for the 5.22 release (the cctools-590.37.3 release):
282 - Improve the comments in the x86-64 reloc.h. Radar bug #4488180.
284 Changes for the 5.22 release (the cctools-590.37.2 release):
285 - Add an extern "C" block to redo_prebinding.h. Radar bug #4319807.
287 Changes for the 5.22 release (the cctools-590.36.3 release):
288 - Add support for the new relocation entry types for x86-64. Radar bug #4475165.
290 Changes for the 5.22 release (the cctools-590.31.1 release):
291 - Added <mach-o/x86_64/reloc.h>.  Radar bug #4345090.
293 Changes for the 5.21 release (the cctools-590.35 release):
294 - Added the constant MH_DSYM to <mach-o/loader.h> for dSYM files.  Radar
295   #4443871.
297 Changes for the 5.21 release (the cctools-590.25 release):
298 - Changed the comment in <mach-o/loader.h> for debug sections to include that
299   they must have a section type of S_REGULAR.  Radar bug #3415593.
301 Changes for the 5.21 release (the cctools-590.24 release):
302 - Added support for DWARF.  Radar bug #4367423.
303   - Added the constant S_ATTR_DEBUG to <mach-o/loader.h> for debug sections.
304   - Added the constant LC_UUID and the uuid_command struct to <mach-o/loader.h>.
305   - Added the prototype for swap_uuid_command() to "stuff/bytesex.h" .
306   - Added the prototype for swap_uuid_command() to <mach-o/swap.h" .
308 Changes for the 5.20 release (the cctools-590.20 release):
309 - Removed the wanrnings when building. Radar bug #4340147.
310   - Removed the const from put_macosx_deployment_target() in
311     "stuff/macosx_deployment_target.h" .
312   - Added #undef VALID_THREAD_STATE_FLAVOR and #undef THREAD_STATE_NONE to
313     "stuff/bytesex.h"
315 Changes for the 5.18 release (the cctools-590.15 release):
316 - Added the SG_PROTECTED_VERSION_1 constant to <mach-o/loader.h> for encrypted
317   segment contents. Radar bug #4298526.
319 Changes for the 5.18 release (the cctools-590.12 release):
320 - Added the MH_ALLOW_STACK_EXECUTION constant to <mach-o/loader.h> to control
321   stack execution.  Radar bug #4281171.
322 - Added the new routine get_segprot_from_flag() to "stuff/arch.h".  Radar bug
323   #4281171.
325 Changes for the 5.18 release (the cctools-590.10 release):
326 - Added the SEG_IMPORT and S_ATTR_SELF_MODIFYING_CODE constants to
327   <mach-o/loader.h> to support the new i386 code stubs that dyld will write on.
328   Radar bug #4202415.
330 Changes for the 5.19 release (the cctools-590.8 release):
331 - Changed <mach-o/i386/swap.h> and "stuff/bytesex.h" to be #if'ed for the new
332   and old routines that swap the i386 thread states.  Radar bug #4200908.
334 Changes for the 5.19 release (the cctools-590.7 release):
335 - Added the new routine put_macosx_deployment_target() to
336   "stuff/macosx_deployment_target.h" to allow the value of
337   MACOSX_DEPLOYMENT_TARGET to be set on the argument to the compiler command
338   line flag -macosx_version_min.  Radar bug #4195253.
340 Changes for the 5.18 release (the cctools-590.5 release):
341 - Added the N_OSO stab to <mach-o/stab.h> for object file name to be created
342   by ld(1) new -Sp option.  Radar bug #4202462.
344 Changes for the 5.18 release (the cctools-589 release):
345 - Added the CPU_SUBTYPE_PENTIUM_4 subtype to <mach/machine.h>
346   Radar bug #4115802.
348 Changes for the 5.18 release (the cctools-583 release):
349 - Added the MACOSX_DEPLOYMENT_TARGET_10_5 value to the enum
350   macosx_deployment_target_value list in macosx_deployment_target.h.  Radar
351   bug #4098516.
353 Changes for the 5.18 release (the cctools-580 release):
354 - Changed get_macosx_deployment_target() in "stuff/macosx_deployment_target.h"
355   to take an additional cpu_type_t parameter.  The new cpu_type_t parameter is
356   used to set the default.  For CPU_TYPE_I386 the default is 10.4 otherwise it
357   is 10.1.  Radar bug #4081062.
359 Changes for the 5.17 release (the cctools-574 release):
360 - Added the new force_cpusubtype_ALL_for_cputype() function to "stuff/arch.h" .
361   Radar bug #4002758.
363 Changes for the 5.17 release (the cctools-572 release):
364 - Changed __private_extern__'s in <mach-o/kld.h> to just extern so that libkld
365   will build with gcc-4.0. Radar bug #4008570.
367 Changes for the 5.17 release (the cctools-568 release):
368 - Added the constant S_INTERPOSING to <mach-o/loader.h> . Radar bug #3965794.
369 - Changed "stuff/bytesex.h" and "stuff/arch.h" to remove multiply defined
370   warnings by changing all #import's to #include's.
372 Changes for the 5.17 release (the cctools-564 release):
373 - Changed the Makefile so that it only installs /usr/include/mach-o/dyld_debug.h
374   for releases Panther and older.  Radar bug #3937664.
376 Changes for the 5.17 release (the cctools-563 release):
377 - Added the constants MH_WEAK_DEFINES and MH_BINDS_TO_WEAK to <mach-o/loader.h>
378   and the constant N_REF_TO_WEAK to <mach-o/nlist.h> .  Radar bug #3799069.
379 - Changed "stuff/bytesex.h" to remove multiply defined warnings by adding
380   #undef's for MACHINE_THREAD_STATE and MACHINE_THREAD_STATE_COUNT after
381   including <mach/ppc/thread_status.h> .
383 Changes for the 5.17 release (the cctools-562 release):
384 - Removed mach/ppc/thread_status.h from the project and the Makefile.
385   Radar bug #3930480.
387 Changes for the 5.17 release (the cctools-560 release):
388 - Changed the constant FAT_CIGAM in <mach-o/fat.h> to not
389   use NXSwapInt() but use a real constant.  Radar bug #3914142.
391 Changes for the 5.17 release (the cctools-557 release):
392 - Removed support for the INTERIM_PPC64.  The changes were to remove the
393   #ifdef INTERIM_PPC64 source changes in mach/machine.h .  Radar bug #3600419.
395 Changes for the 5.17 release (the cctools-552 release):
396 - Added the header file "stuff/unix_standard_mode.h" for the new routine
397   get_unix_standard_mode() to know when we are running in UNIX standards
398   conformance mode. Radar bug #3852702.
400 Changes for the 5.17 release (the cctools-551 release):
401 - Added support for the ppc64 thread state.  Radar bug #3866755.
402   - Added ppc_thread_state64 struct and constants to "mach/ppc/thread_status.h"
403   - Added swap_ppc_thread_state64_t() to "stuff/bytesex.h"
405 Changes for the 5.17 release (the cctools-550 release):
406 - Removed the structure definition selectedSymbolListInfo from cbt/libsyminfo.h
407   (which was moved to the source file cbtlibs/libsyminfo.c). Radar bug #3854972.
408 - Changed the constant CPU_IS64BIT in <mach/machine.h> to CPU_ARCH_ABI64.
409   Radar bug #3806447.
411 Changes for the 5.17 release (the cctools-546 release):
412 - Made changes needed to make libmacho APIs work with for 32-bit & 64-bit.
413   Radar bug #3780704.
414   - Changed <mach-o/getsect.h> to deal with 32-bit & 64-bit interfaces.
415     - Changed the getsectdata() and getsectdatafromFramework() 'size' parameter
416       back to 'unsigned long *'.
417     - Changed the return values of get_end(), get_etext() and get_edata() back
418       to 'unsigned long'.
419     - Added #ifndef __LP64__ around the existing defintions of getsectbyname()
420       and getsegbyname() and added #ifdef __LP64__ defintions that have the
421       64-bit types.
422     - Added the new API's getsectdatafromheader_64() and
423       getsectbynamefromheader_64() for 64-bit Mach-O files.
424   - Changed <mach-o/ldsyms.h> to deal with 32-bit & 64-bit mach headers.
425   - Changed <mach-o/dyld.h> and added an #ifdef __LP64__ version of the
426     definition of _dyld_get_image_header() as an internal cctools fix to allow
427     libmacho to build without warnings.
429 Changes for the 5.17 release (the cctools-539 release):
430 - Changed to support 32-bit & 64-bit tools that write binaries.  Radar bug
431   #3812858.
432   - Changed the struct object in "stuff/breakout" to have both pointers to
433     32-bit and 64-bit mach headers, link edit segments, arrays of section
434     structs, output symbols, output dynamic library modules and indirect symbol
435     table entries.  And added fields for mh_cputype, mh_cpusubtype, and
436     mh_filetype copied from the mach header.
437   - Changed the struct symbol_list in "stuff/symbol_list.h" to make the
438     the sym field to a "void *" from an "nlist_t *".
440 Changes for the 5.17 release (the cctools-536 release):
441 - Added the type signed_target_addr_t as int32_t to "stuff/target_addr.h".  As
442   it being unsigned was causing problem in the i386 assembler's macros.  Radar
443   bug #3813924.
445 Changes for the 5.17 release (the cctools-534 release):
446 - Changed the definition of CPU_TYPE_POWERPC64 in "mach/machine.h" from
447     #define CPU_TYPE_POWERPC64    ((cpu_type_t) 19)
448   to
449     #define CPU_IS64BIT 0x1000000
450     #define CPU_TYPE_POWERPC64    ((cpu_type_t)(CPU_TYPE_POWERPC | CPU_IS64BIT))
451   Radar bug #3806447.
453 Changes for the 5.17 release (the cctools-533 release):
454 - Changes to support 32-bit & 64-bit tools in the same binary.  Radar bug
455   #3793394.
456   - Changed the struct ofile in "stuff/ofile.h" to have both a pointer to a
457     32-bit and 64-bit mach header.
458   - Added the fields mh_cputype, mh_cpusubtype, and mh_filetype to the struct
459     ofile in "stuff/ofile.h" .
460   - Changed the struct ofile in "stuff/ofile.h" to have both pointers to a
461     32-bit and 64-bit dylib_module.
462   - Changed the way the swap_* routines are declared in "stuff/bytesex.h" to
463     not use the "stuff/target_arch.h" typedefs but to have a routine for the
464     32-bit and 64-bit structs.
465   - Added new #define's to "stuff/target_arch.h" to deal with the specific
466     swap_* functions for code to use that is compiled as a 32-bit and a 64-bit
467     target program.
468   - Changed swap_object_headers() to take a void * as the mach_header parameter
469     which can be either a mach_header or a mach_header_64 .
471 Changes for the 5.17 release (the cctools-532 release):
472 - Made more changes to support 64-bit tools. Radar bug #3600431.
473   - Removed the #if defined(INTERIM_PPC64) || defined(ARCH64) around the
474     CPU_TYPE_POWERPC64 constant in <mach/machine.h> so that it can be used in
475     for tools like lipo(1).
476   - Added swap_mach_header_64(), swap_segment_command_64() and swap_section_64()
477     routines to <stuff/byteswap.h> .
478 - Changed the constants MH_CIGAM and MH_CIGAM_64 in <mach-o/loader.h> to not
479   use NXSwapInt() but use real constants.  Radar bug #3762888.
481 Changes for the 5.16 release (the cctools-529 release):
482 - Made changes to support 64-bit tools. Radar bug #3600431.
483   - Created the header file "stuff/target_arch.h" for use to compile tools for
484     32-bit targets or tools for 64-bit targets.
485   - Created the header file "stuff/symbol.h" with an nlist_t, char *name and
486     char *indr_name for the use in the tools.
487   - Added the include "stuff/target_arch.h" to the following files:
488     stuff/breakout.h
489     stuff/bytesex.h
490     stuff/ofile.h
491     stuff/symbol_list.h
492   and changed the uses of structs that are different for 64-bit files to the
493   typedefs in "stuff/target_arch.h".
494   - Added SWAP_LONG_LONG() to bytesex.h.
495   - Changed the #ifdef in mach/machine.c around CPU_TYPE_POWERPC64 to be
496     #if defined(INTERIM_PPC64) || defined(ARCH64)
498 Changes for the 5.16 release (the cctools-528.4 release):
499 - Changed the filesize and fileoffset fields of the segment_command_64 struct
500   in <mach-o/loader.h> to allow core files greater than 4GB.  Radar bug
501   #3781406.
503 Changes for the 5.16 release (the cctools-528 release):
504 - Add GENERIC_RELOC_LOCAL_SECTDIFF to mach-o/reloc.h.
505   Radar bug #3744821.
507 Changes for the 5.16 release (the cctools-527 release):
508 - Added the 64-bit object file structures to the following files:
509         <mach-o/loader.h>
510         <mach-o/nlist.h>
511   Radar bug #3746533.
512 - Add PPC_RELOC_LOCAL_SECTDIFF to mach-o/ppc/reloc.h.
513   Radar bug #3744821.
515 Changes for the 5.16 release (the cctools-526 release):
516 - Changed the following header files to be 64-bit clean by adding a #include
517   <stdint.h> and changing the interger types to those defined in <stdint.h>:
518     Headers dealing with file formats:
519         <mach-o/loader.h>
520         <mach-o/nlist.h>
521         <mach-o/reloc.h>
522         <mach-o/fat.h>
523         <mach-o/ranlib.h>
524     Headers for library API:
525         <mach-o/arch.h>
526         <mach-o/swap.h>
527     Headers for library API & runtime API:
528         <mach-o/getsect.h>
529   Radar bug #3742429.
531 Changes for the 5.16 release (the cctools-524 release):
532 - Fixed a problem in the Makefile where stuff/errors.h and stuff/openstep_mach.h
533   appeared in both GAS_OTHER_SRCS and OTHER_SRCS causing problems on make
534   installsrc if the file had more one hard link.
535 - Changed the Makefile to use OLD_DYLD_STUFF instead of DYLD_STUFF to work
536   around Radar bug #3675086.
538 Changes for the 5.16 release (the cctools-520 release):
539 - Changed the reference to kmodload(8) in <mach-o/kld.h> to kextload(8).
540   Radar bug #3633604.
542 Changes for the 5.16 release (the cctools-517 release):
543 - Changed the Makefile for installsrc to always install all of the files.
545 Changes for the 5.16 release (the cctools-515 release):
546 - Added the installGASsrc Makefile target to install just the needed header
547   files to build the GAS sources:
548     stuff/bytesex.h
549     stuff/bool.h
550     stuff/round.h
551     stuff/errors.h
552     stuff/openstep_mach.h
553     mach/m68k/thread_status.h
554     mach/i860/thread_status.h
555     mach/m88k/thread_status.h
556     architecture/m88k/fp_regs.h
557     architecture/m88k/reg_help.h
558     architecture/nrw/reg_help.h
559     architecture/nrw/macro_help.h
560     mach/hppa/thread_status.h
561     mach/sparc/thread_status.h
562     architecture/sparc/reg.h
563     mach/ppc/thread_status.h
564   and changed the Copyright in these files to the Apple BSD License.
565   Radar bug #3657295.
567 Changes for the 5.16 release (the cctools-514 release):
568 - Added the new typedef:
569     typedef integer_t     cpu_threadtype_t;
570   to cctools' copy of "mach/machine.h".
572 Changes for the 5.16 release (the cctools-513 release):
573 - Changed the Makefile so that it only installs the following files for releases
574   Panther and older:
575         /usr/include/mach-o/dyld.h
576         /usr/local/include/mach-o/dyld_gdb.h
577         /usr/local/include/mach-o/dyld_priv.h
578   Radar bug #3639836.
580 Changes for the 5.16 release (the cctools-512 release):
581 - Added then new enum bool * seen_archive parameter to writeout_to_mem() to the
582   header file "stuff/breakout.h".  See the notes in libstuff for this, as this
583   is part of the fix for Radar bug #3645280.
585 Changes for the 5.16 release (the cctools-509 release):
586 - Added #ifdef INTERIM_PPC64 to the source changes to support the interim ppc64
587   file format in <mach/machine.h> .
589 Changes for the 5.16 release (the cctools-501 release):
590 - Added the MH_SUBSECTIONS_VIA_SYMBOLS mach header flag to <mach-o/loader.h> to
591   be used to indicate to the static link editor it is safe to divide up the
592   sections into sub-sections via symbols for dead code stripping.  Radar bug
593   #2284500.
595 Changes for the 5.16 release (the cctools-500 release):
596 - Added the S_ATTR_LIVE_SUPPORT user section attribute to <mach-o/loader.h> to
597   be used to mark C++ exception frame sections contents and references not to
598   be dead stripped if they reference some live block.  Radar bug #2284500.
599 - Added the S_ATTR_NO_DEAD_STRIP user section attribute to <mach-o/loader.h> to
600   be used to mark Objective-C sections contents and references not to be dead
601   stripped.  Radar bug #2284500.
602 - Added N_NO_DEAD_STRIP to <mach-o/nlist.h> to be used to mark symbols not to
603   be dead stripped.  This is the same value as N_DESC_DISCARDED and the comments
604   for that were also updated.  Radar bug #2284500.
606 Changes for the 5.16 release (the cctools-499.4 release):
607 - Added the comment "3=quad" to the r_length field comments in mach-o/reloc.h 
608   for 8 byte relocable sized items.
610 Changes for the 5.16 release (the cctools-499.1 release):
611 - Added the CPU_TYPE_POWERPC64 cputype and the subtype CPU_SUBTYPE_POWERPC64_ALL
612   to <mach/machine.h> for the interim ppc64 file format.  Radar bug #3562133
613   and #3562232.
615 Changes for the 5.14 release (the cctools-496 release):
616 - Added the constant MACOSX_DEPLOYMENT_TARGET_10_4 to the header file
617   <stuff/macosx_deployment_target.h>.  Radar bug #3445632.
618 - Changed <mach-o/dyld.h> to include <AvailabilityMacros.h> and mark the
619   following API's added in 10.3::
620     extern enum DYLD_BOOL NSHasModInitObjectFileImage
621     extern struct mach_header * _dyld_get_image_header_containing_address
622     extern enum DYLD_BOOL _dyld_all_twolevel_modules_prebound
623   with AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER.  Radar bug #3401910.
625 Changes for the 5.13.2 release (the cctools-495.3 release):
626 - Added the prototype for unprebind(3) to <mach-o/redo_prebinding.h>.  
627   Radar bug #3176679.
628 - Added prototypes for the new routine breakout_mem() and writeout_to_mem()
629   to <stuff/breakout.h>.  Radar bug #3176679.
630 - Added MH_PREBINDABLE, MH_ALLMODSBOUND, and MH_CANONICAL Mach-O header 
631   flags to <mach-o/loader.h>.  MH_PREBINDABLE indicates that the binary is not
632   prebound but has enough information in it to be prebound by 
633   redo_prebinding(3) or redo_prebinding(1).  MH_ALLMODSBOUND exists 
634   only in binaries with MH_PREBINDABLE also set and indicates that 
635   when this binary is reprebound, all the two-level namespace modules
636   should be bound.  MH_CANONICAL identifies a canonical form of a 
637   binary, in other words, one that has been processed by unprebind(3) or 
638   redo_prebinding(1) -u.  Radar bug #3176679.
640 Changes for the 5.13 release (the cctools-492 release):
641 - Added the #define NEXT_DEBUG_ADDRESS_TO_ASSIGN to <stuff/seg_addr_table.h>
642   so that seg_addr_table(1) can layout debug and profile libraries at a lower
643   address than the rest of the flat region.  Radar bug #3360593.
645 Changes for the 5.13 release (the cctools-490 release):
646 - Added the proto type for the new routine cpusubtype_execute() to the header
647   file <stuff/best_arch.c> for use by the dynamic linker.  Radar bug #3387962.
649 Changes for the 5.13 release (the cctools-482 release):
650 - Added the file <mach-o/dyld_priv.h> that contains the new
651   NSFindSectionAndOffsetInObjectFileImage() SPI.  Radar bug #3318440.
652 - Updated the Makefile to install the new file <mach-o/dyld_priv.h> .
653   Radar bug #3318440.
655 Changes for the 5.12 release (the cctools-477 release):
656 - Changed <mach-o/kld.h> to make kld_load_basefile_from_memory() available for
657   both __DYNAMIC__ and __STATIC__  and added kld_set_link_options() as well as
658   the constants to use with it.  Radar bug #3270588.
660 Changes for the 5.12 release (the cctools-468 release):
661 - Added some comments to <mach-o/ppc/reloc.h> to describe the new use of the
662   previously unused value 3 for r_length to mean that the conditional branch was
663   predicted using the Y-bit and the sign of the displacement and opcode.
664   Radar bug #3223045.
666 Changes for the 5.12 release (the cctools-467 release):
667 - Added the PPC_RELOC_LO14_SECTDIFF relocation type to <mach-o/ppc/reloc.h>
668   to match the PPC_RELOC_LO14 relocation type for load and store double
669   instructions using a section difference expression.  Radar bug #3218027.
671 Changes for the 5.12 release (the cctools-466 release):
672 - Added the DYNAMIC_LOOKUP_ORDINAL to <mach-o/nlist.h> and reduced the value of
673   MAX_LIBRARY_ORDINAL by one.  This is to allow dynamic flat namespace lookups
674   in twolevel namespace images.  Radar bug #3210803.
676 Changes for the 5.12 release (the cctools-464 release):
677 - Fixed a spelling error in <mach-o/loader.h> where "alwasys" should be "always"
678   Radar bug #3198288.
679 - Added the prototype for the SPI NSHasModInitObjectFileImage() to
680   <mach-o/dyld.h> .  Radar bug #3196951.
681 - Made changes to build cleanly with gcc3.3
682   - Change the prototype for round() in "stuff/round.h" to used unsigned long
683     in the two places it use long.
685 Changes for the 5.12 release (the cctools-463 release):
686 - Changed the prototype of NSGetSectionDataInObjectFileImage() from
687     /* not yet implemented */
688     extern void * NSGetSectionDataInObjectFileImage(
689         NSObjectFileImage objectFileImage,
690         const char *segmentName,
691         const char *sectionName);
692   to the now implemented prototype:
693     extern void * NSGetSectionDataInObjectFileImage(
694         NSObjectFileImage objectFileImage,
695         const char *segmentName,
696         unsigned long *size); /* can be NULL */
697   Radar bug #3194204.
698 - Added the constant:
699     #define     MH_DYLIB_STUB   0x9     /* shared library stub for static */
700                                         /*  linking only, no section contents */
701   to <mach-o/loader.h> .  Radar bug #3193744.
703 Changes for the 5.12 release (the cctools-462 release):
704 - Added the constant:
705     #define NSLINKMODULE_OPTION_TRAILING_PHYS_NAME 0x10
706   to <mach-o/dyld.h> and comments to <mach-o/dyld_gdb.h> .  Radar bug #3190599.
708 Changes for the 5.12 release (the cctools-461 release):
709 - Added the constant:
710     #define NSLINKMODULE_OPTION_DONT_CALL_MOD_INIT_ROUTINES 0x8
711   to <mach-o/dyld.h> .  Radar bug #3183011.
713 Changes for the 5.12 release (the cctools-460 release):
714 - Removed the /* not yet implemented */ comment off of the following prototypes
715   in <mach-o/dyld.h> :
716     NSSymbolDefinitionCountInObjectFileImage
717     NSSymbolDefinitionNameInObjectFileImage
718     NSSymbolReferenceCountInObjectFileImage
719     NSSymbolReferenceNameInObjectFileImage
720     NSIsSymbolDefinedInObjectFileImage
721   As there are now implemented.  Radar bug #3179011.
723 Changes for the 5.12 release (the cctools-457 release):
724 - Added ofile_map_from_memory() to "stuff/ofile.h".  This is needed so the
725   NSCreateObjectFileImageFromMemory() api can be implemented.  Radar bug
726   #3131622.
728 Changes for the 5.12 release (the cctools-456 release):
729 - Picked up the header file <cbt/libsyminfo.h>.  Radar bug 3145742.
731 Changes for the 5.12 release (the cctools-448 release):
732 - Added the N_OPT constant to <mach-o/stabs.h> which is emitted with
733   gcc2_compiled and in gcc source.  Radar bug #3104328.
734 - Added the _dyld_get_image_header_containing_address() SPI prototype to
735   <mach-o/dyld.h> (also added the missing _dyld_image_containing_address()
736   prototype).  Radar bug #2967928.
738 Changes for the 5.12 release (the cctools-447 release):
739 - Added the _dyld_all_twolevel_modules_prebound() SPI prototype to
740   <mach-o/dyld.h>.  Radar bug #3055372.
742 Changes for the 5.11 release (the cctools-444 release):
743 - Added the file <stuff/symbol_list.h> which contains the interface for the
744   symbol lists code taken from strip.c.  Now also used by ld(1)'s
745   -exported_symbols_list and -unexported_symbols_list options.  Radar bug
746   #3083844.
748 Changes for the 5.11 release (the cctools-439 release):
749 - Added the VEO cputype and its subtypes to <mach/machine.h>.  Radar bug
750   #3068161.
751 - Added the install_name() API to <mach-o/redo_prebinding.h> .
752   Radar bug #3065586.
754 Changes for the 5.11 release (the cctools-440 release):
755 - Fixed the warnings about extra tokens at end of #endif directive in
756   <mach-o/loader.h>, <mach/m68k/thread_status.h>, <architecture/nrw/reg_help.h>,
757   <architecture/m88k/reg_help.h>, <mach/m88k/thread_status.h>,
758   <mach/i860/thread_status.h>, <architecture/sparc/reg.h>,
759   <mach/sparc/thread_status.h>, <mach-o/nlist.h>, <architecture/m88k/fp_regs.h>,
760   <gnu/exec.h>, <mach/machine.h>, <architecture/nrw/macro_help.h>,
761   <mach-o/gmon.h> and <mach-o/stab.h> (Radar bug #3072042).
763 Changes for the 5.11 release (the cctools-438 release):
764 - Added the constant MACOSX_DEPLOYMENT_TARGET_10_3 to the header file
765   <stuff/macosx_deployment_target.h>.  Radar bug #3049974.
767 Changes for the 5.11 release (the cctools-437 release):
768 - Added the new N_PARAMS, N_VERSION and N_OLEVEL defines to <mach-o/stab.h>.
769   Radar bug #3000792.
771 Changes for the 5.10 release (the cctools-422 release):
772 - Added the section attribute S_ATTR_STRIP_STATIC_SYMS to <mach-o/loader.h>.
773   Radar bug #2945659.
774   
775 Changes for the 5.10 release (the cctools-421 release):
776 - Added the constant MH_NOFIXPREBINDING to <mach-o/loader.h> so that the
777   fix_prebinding(1) program can be marked with this.  Radar bug #2941669.
779 Changes for the 5.10 release (the cctools-420 release):
780 - Changed the comment on the constant NOT_PREBINDABLE in
781   <mach-o/redo_prebinding.h> to include "or statically linked" to indicate
782   that it will be returned for statically linked binaries.  Radar bug #2934831.
784 Changes for the 5.10 release (the cctools-416 release):
785 - Added the N_WEAK_DEF define to <mach-o/nlist.h> to support weak definitions
786   and non-weak definitions in the same coalesced section. Radar bug #2919646.
787 - Removed the section attribute S_ATTR_WEAK_DEFS to <mach-o/loader.h> .
788   Radar bug #2919646.
789 - Added the dont_update_LC_ID_DYLIB_timestamp field to the arch struct in
790   breakout.h .  Radar bug #2914003.
792 Changes for the 5.10 release (the cctools-414 release):
793 - Added the section attribute S_ATTR_WEAK_DEFS to <mach-o/loader.h> for weak
794   definitions to be used with coalesced sections for supporting explicit
795   template instantiation.  Radar bug #2898558.
797 Changes for the 5.10 release (the cctools-412 release):
798 - Added the no_error_if_missing parameter to symLocForDylib(), dstLocForDylib()
799   and LocForDylib() in stuff/SymLoc.h .  Radar bug #2882324.
800 - Added the no_error_if_missing parameter to get_symfile_for_dylib() and
801   get_dstfile_for_dylib() in stuff/dylib_roots.h.  Radar bug #2882324.
803 Changes for the 5.10 release (the cctools-411 release):
804 - Added the header file <stuff/macosx_deployment_target.h> so that both the
805   ld(1) code and the seg_addr_table(1) code can use them.
807 Changes for the 5.10 release (the cctools-408 release):
808 - Changed the comments in <mach-o/loader.h> where it used sizeof(unsigned long)
809   to 4 bytes.
811 Changes for the 5.10 release (the cctools-407 release):
812 - Added "(obsolete)" to the comment in <mach-o/loader.h> for the MH_LAZY_INIT
813   constant.
815 Changes for the 5.10 release (the cctools-404 release):
816 - Changed crc32() in <stuff/crc32.h> to be a __private_extern__. 
817   Radar bug #2859919.
819 Changes for the 5.10 release (the cctools-403 release):
820 - Changed mach-o/ppc/swap.h and mach-o/i386/swap.h to use #include and not
821   #import.  Radar bug #2778821.
823 Changes for the 5.10 release (the cctools-400 release):
824 - Added a new throttle parameter to redo_prebinding() in
825   <mach-o/redo_prebinding.h> to allow it to be used prebinding on demand to
826   throttle back its I/O when running in the back ground.  Radar bug #2850642.
827 - Added a new throttle parameter to writeout() in <stuff/writeout.h> to allow
828   redo_prebinding(3) used with prebinding on demand to throttle back its
829   I/O when running in the back ground.  Radar bug #2850642.
831 Changes for the 5.10 release (the cctools-397 release):
832 - Added the new allow_missing_architectures parameter to the
833   needs_redo_prebinding() API in <mach-o/redo_prebinding.h> .  Radar bug
834   #2836068
835 - Added the macro #define REDO_PREBINDING_VERSION 1 to
836   <mach-o/redo_prebinding.h> . Radar bug #2836572.
837 - Removed the DYLD_BOOL macro from <mach-o/dyld.h> because ANSI C99 has a
838   macro bool defined as _Bool which causes problems with this.  Radar bug 
839   #2831923.
840 - Added the _NSGetExecutablePath SPI to <mach-o/dyld.h>. Radar bug #2432816.
842 Changes for the 5.10 release (the cctools-396 release):
843 - Added the new allow_missing_architectures parameter to the redo_prebinding()
844   API in <mach-o/redo_prebinding.h> .  Radar bug #2809673.
845 - Changed the N_WEAK_SYM macro in <mach-o/nlist.h> to N_WEAK_REF so that it is
846   clear it means weak references not weak defintions.
848 Changes for the 5.10 release (the cctools-394 release):
849 - Added guards to <mach-o/ranlib.h>, "stuff/bytesex.h", "stuff/arch.h",
850   "stuff/ofile.h",
851   to prevent multiple includes.
853 Changes for the 5.10 release (the cctools-393 release):
854 - Added the N_WEAK_SYM macro to <mach-o/nlist.h>.
855 - Added the LC_LOAD_WEAK_DYLIB macro for the new weak dylib load command to
856   <mach-o/loader.h>.
858 Changes for the 5.10 release (the cctools-392 release):
859 - Added the new parameter use_member_syntax to the ofile_process() prototype
860   in <stuff/ofile.h>.  Radar bug #2730127.
862 Changes for the 5.10 release (the cctools-388 release):
863 - Changed the use of #import to #include in the mach-o directory files and
864   added guards to each header to prevent multiple includes.  Radar bug #2778821.
866 Changes for the 5.10 release (the cctools-387 release):
867 - Added NSADDIMAGE_OPTION_MATCH_FILENAME_BY_INSTALLNAME to <mach-o/dyld.h>
869 Changes for the 5.10 release (the cctools-386 release):
870 - Added the get_prebind_cksums() prototype to <mach-o/redo_prebinding.h> .
871 - Added a <stuff/crc32.h> header for the crc32() prototype.
872 - Added the parameter zero_out_prebind_checksum to redo_prebinding() in
873   <mach-o/redo_prebinding.h>
874 - Added the two fields:
875     struct prebind_cksum_command *cs;
876     unsigned long calculated_input_prebind_cksum;
877   to the object struct.  And added the calculate_input_prebind_cksum parameter
878   to breakout() prototype.
879 - Added the swap_prebind_cksum_command() to <stuff/bytesex.h> and to
880   <mach-o/swap.c>.
881 - Added the prebind check sum load command to <mach-o/loader.h> .
883 Changes for the 5.10 release (the cctools-385 release):
884 - Added the routines archive_error(), archive_member_error() and
885   Mach_O_error() to ofile.h as they were moved out of ofile.c to ofile_error.c
886   so the redo_prebinding library can override them.
887 - Changed <mach-o/redo_prebinding.h> for the following API changes for
888   Radar bug #2575205 and #2729976:
890   Added the routine object_file_type().
892   Added the only_if_needed boolean parameter to the redo_prebinding(3) library.
893             
894   Changed the return type of the redo_prebinding(3) library API to be an enum.
896   Removed the comment about the slide_to_address parameter of the
897   redo_prebinding(3) library API not being supported.
899   Added the expected_address parameter to the needs_redo_prebinding(3) library
900   API.
902 Changes for the 5.9 release (the cctools-384 release):
903 - Removed the semicolon after the closing curly brace in the trailing endif
904   __cplusplus wrapper in <mach-o/dyld.h>.  Radar bug #2748160.
906 Changes for the 5.9 release (the cctools-381 release):
907 - Added the LC_REQ_DYLD constant to <mach-o/loader.h> as a bit in the load
908   command that must be understood by the dynamic linker for the image to
909   execute properly.
911 Changes for the 5.9 release (the cctools-378 release):
912 - Added the extern "C" stuff in #if __cplusplus wrappers for <mach-o/dyld.h> .
913   Radar bug #2728016.
915 Changes for the 5.9 release (the cctools-370 release):
916 - Added the MH_NOMULTIDEFS flag to <mach-o/loader.h> .
917 - Added the hints_cmd and output_hints fields to the object structure in
918   <stuff/breakout.h> .
920 Changes for the 5.9 release (the cctools-369 release):
921 - Picked up the changes to <mach-o/arch.h> so that it has the extern "C" stuff
922   in #if __cplusplus wrappers.
923 - Added kld_load_from_memory & kld_load_basefile_from_memory for the dynamic
924   build variant of libkld.  These APIs will be used by the Kernel's dynamic
925   OSObject patch code.  This change is in <mach-o/kld.h> .
927 Changes for the 5.9 release (the cctools-367 release):
928 - Added swap_sub_library_command to <mach-o/swap.c>.  Added
929   swap_sub_library_command() to <stuff/bytesex.h> .  Added the LC_SUB_LIBRARY
930   load command and the sub_library_command struct to <mach-o/loader.h> . 
931   Radar bug #2697458.
932 - Added swap_twolevel_hint(), swap_twolevel_hints_command() and the missing
933   swap_routines_command() to <mach-o/swap.c>. Added
934   swap_twolevel_hints_command() and swap_twolevel_hint() to <stuff/bytesex.h> .
935   Added the LC_TWOLEVEL_HINTS load command and the twolevel_hint struct to
936   <mach-o/loader.h> .  Radar bug #2558069.
938 Changes for the 5.9 release (the cctools-365 release):
939 - Added NSAddImage(), NSLookupSymbolInImage() and NSIsSymbolNameDefinedInImage()
940   and their options to <mach-o/dyld.h>.  Also NSOtherErrorInvalidArgs in the
941   NSOtherErrorNumbers enum in <mach-o/dyld.h> was added.  Radar bug #2689833.
943 Changes for the 5.9 release (the cctools-360 release):
944 - Added the sections field to stuff/breakout.h for support of NO_TOC section
945   attribute.  See notes in libstuff about writeout().
946 - Added the header file <mach-o/redo_prebinding.h> for the redo_prebinding(3)
947   API.  Radar bug #2604014.
948 - Changed guess_short_name() to be __private_extern__ in
949   <stuff/guess_short_name.h> .
951 Changes for the 5.9 release (the cctools-359 release):
952 - Changed the comments about SELF_LIBRARY_ORDINAL in <mach-o/nlist.h> to
953   correctly reflect its usage.
954 - Removed the comment /* not yet implemented */ before
955   NSDestroyObjectFileImage() in <mach-o/dyld.h> as this was fixed as part of
956   Radar bug #2500014.
958 Changes for the 5.8 release (the cctools-357 release):
959 - Added CPU_SUBTYPE_POWERPC_7450 to <mach/machine.h> Radar bug #2599869.
961 Changes for the 5.8 release (the cctools-354 release):
962 - Fixed a type in <mach-o/loader.h> in describing MH_PRELOAD.  Radar bug
963   #2571359.
965 Changes for the 5.8 release (the cctools-353 release):
966 - Moved the header files to /usr/include and /usr/local/include when RC_OS is
967   macos and RC_RELEASE is not Beaker, Bunsen, Gonzo or Kodiak.  Radar bug
968   #2569880.
970 Changes for the 5.8 release (the cctools-350 release):
971 - Added the prototypes for NSIsSymbolNameDefinedWithHint(),
972   NSLookupAndBindSymbolWithHint() and  _dyld_lookup_and_bind_with_hint() to
973   <mach-o/dyld.h>.  Radar bug #2567184.
975 Changes for the 5.8 release (the cctools-349 release):
976 - Added the file <mach-o/dyld_gdb.h>.  Radar bug #2559324.
978 Changes for the 5.8 release (the cctools-347 release):
979 - Added _dyld_register_func_for_remove_image() to <mach-o/dyld.h>.
980 - Added NSAddLibraryWithSearching() to <mach-o/dyld.h>.  Radar bug #2535633.
982 Changes for the 5.8 release (the cctools-343 release):
983 - Changed REFERENCED_DYNAMICALLY back to 0x0010 as it was inadverntly changed
984   to 0x0080 which breaks strip(1) and binary compatiblity.
986 Changes for the 5.8 release (the cctools-342 release):
987 - Added the sub_client_command load command to <mach-o/loader.h> and swap
988   routine to <mach-o/swap.h>.  Radar bug 2533649.
989 - Added MH_TWOLEVEL and MH_FORCE_FLAT to <mach-o/loader.h> for two-level name
990   space support. Radar bug #2534043.
991 - Added comments and macros to <mach-o/nlist.h> for two-level name space
992   support. Radar bug #2534043.
994 Changes for the 5.8 release (the cctools-341 release):
995 - Added the sub_umbrella_command load command to <mach-o/loader.h>. Radar bug
996   #2530028.
997 - Added the header file <mach-o/kld.h> and changed the Makefile to install it. 
998 - Changed <mach-o/sarld.h> so that sa_rld_output_addr and sa_rld_output_size
999   are private_externs and noted in the comment they are not part of the extenal
1000   API.  Radar bug #2523649.
1002 Changes for the 5.7 release (the cctools-336 release):
1003 - Added the section attribute S_ATTR_NO_TOC section contains coalesced symbols
1004   that are not to be in a ranlib table of contents.  Radar bug #2494286.
1006 Changes for the 5.7 release (the cctools-334 release):
1007 - Changed guess_short_name()'s has_suffix argument to return_suffix to a pointer
1008   to the suffix so checksyms could check for "_debug".
1009 - Added NSOtherErrorLazyInit to the NSOtherErrorNumbers enum typedef for the
1010   few errors that can happen setting up the exception handler for lazy inits.
1011   Radar bug #2490396.
1012 - Added MH_LAZY_INIT to <mach-o/loader.h> for "Lazy initialization of specified
1013   libraries in a prebound launch".  Radar bug #2490396.
1015 Changes for the 5.7 release (the cctools-332 release):
1016 - Changed the following routines to take a disablewarnings flag which was added
1017   to seg_addr_table(1): get_symfile_for_dylib() and get_dstfile_for_dylib() in
1018   the header file "stuff/dylib_roots.h" and dstLocForDylib(),
1019   get_dstfile_for_dylib() and LocForDylib() in the header file "stuff/SymLoc.h"
1020   (Radar bug #2482327).
1022 Changes for the 5.7 release (the cctools-329 release):
1023 - Change the parameters to the unimplemented NSReplaceModule() api to change
1024   the last two parameters to just one parameter named options to match what
1025   is done in NSLinkModule() and NSUnLinkModule().  Radar bug #2469558.
1026 - Changed the fields names iinit and ninit in struct dylib_module in
1027   <mach-o/loader.h> to iinit_iterm and ninit_nterm reflect that they now contain
1028   the indexes and counts into the init and term sections.  Radar bug #2469527.
1029 - Added the prototype for the new function _dyld_debug_task_from_core() to
1030   <mach-o/dyld_debug.h>.  Radar bug #2155790.
1031 - Added the prototype for the new function NSCreateCoreFileImageFromFile()
1032   to <mach-o/dyld.h>.  Also added a new enum for other link edit errors and made
1033   some other minor changes.  Radar bug #2155790.
1035 Changes for the 5.7 release (the cctools-327 release):
1036 - Left where the headers get installed in the System Framework.  So they will
1037   continue to be installed in /System/Library/Frameworks/System.framework/...
1038   And maybe sometime post-DP4 they will be in
1039   /MacOSX/System/Frameworks/System.framework/...
1041 Changes for the 5.6 release (the cctools-323 release):
1042 - Changed back where the headers get installed in the System Framework
1043   back to /System/Library/Frameworks/System.framework/...  from
1044   /MacOSX/System/Frameworks/System.framework/.... for the Space release.  This
1045   won't change till post-DP4.
1047 Changes for the 5.6 release (the cctools-320 release):
1048 - Changed the Makefile to install "stuff/bool.h" into the local include mach-o
1049   directory as an egregious hack for sampler.  See the dyld notes.
1050   (Radar bug #2376135).
1051 - Added the new LC_SUB_FRAMEWORK load command to support "Guarding against
1052   direct linking of non-umbrella frameworks".  Various public and private
1053   header files were updated to supply this support, <mach-o/loader.h>,
1054   <mach-o/swap.h> (also the missing prototypes for other functions were added),
1055   "stuff/bytesex.h", "stuff/seg_addr_table.h" (the routine guess_short_name()
1056   was broken out and the new header "guess_short_name.h" was added).
1057   Radar bug #2443212.
1059 Changes for the 5.5 release (the cctools-314 release):
1060 - Added the definition of the struct dyld_debug_error_data and
1061   the API _dyld_debug_set_error_func() to register a function to be called
1062   when one of the dyld debug API's fails to <mach-o/dyld_debug.h>  Radar bug
1063   #2421770.
1064 - Added DYLD_IMAGE_REMOVED to the dyld_event_type enum for removal of plugins
1065   in <mach-o/dyld_debug.h> Radar bug #2421760.
1067 Changes for the 5.5 release (the cctools-308 release):
1068 - Added the following code to dyld.h:
1069     #ifndef __cplusplus
1070     #define DYLD_BOOL bool
1071     #endif
1072   and changed all occurences of "bool" to "DYLD_BOOL". Radar bug #2412898.
1074 Changes for the 5.5 release (the cctools-307 release):
1075 - Added N_BINCL, N_EINCL and N_EXCL to mach-o/stabs.h for begin/end/exclude
1076   include files. Radar bug #2410704.
1077 - Added N_BNSYM and N_ENSYM to mach-o/stabs.h for begin/end section symbols
1078   for used with coalesced symbols. Radar bug #2411273.
1079 - Added CPU_SUBTYPE_POWERPC_7400 to cctools copy of mach/machine.h.  The
1080   Beaker2O6 has this as CPU_SUBTYPE_POWERPC_Max (both have the value 10).
1081   Radar bug #2397523.
1083 Changes for the 5.4 release (the cctools-300 release):
1084 - Changed the Makefile so headers are not in installed for make install for
1085   RC_OS=macos.  Radar Bug #2370826.
1086 - Added the new load command LC_ROUTINES for library initialization routines.
1087 - Added the new section type S_COALESCED for coalesced symbols.
1089 Changes for the 5.3 release (the cctools-286 release):
1090 - Added the new section type S_MOD_TERM_FUNC_POINTERS for termination function
1091   pointers.
1093 Changes for the 5.3 release (the cctools-285 release):
1094 - Changed the #ifdef NeXT in <gnu/exec.h> to #ifdef NeXT_MOD and to define
1095   NeXT_MOD if not defined.
1096 - Updated again mach/ppc/thread_status.h to the Beaker1E1 MacOS X version.
1097   Also changed the macros
1098         MACHINE_THREAD_STATE
1099         MACHINE_THREAD_STATE_COUNT
1100         THREAD_MACHINE_STATE_MAX
1101   to:
1102         PPC_MACHINE_THREAD_STATE
1103         PPC_MACHINE_THREAD_STATE_COUNT
1104         PPC_THREAD_MACHINE_STATE_MAX
1105   So that mach/{ppc,i386,etc}/thread_status.h can all be included in the same
1106   file without warnings about redefined macros.
1107 - Changed #import <sys/types.h> in ranlib.h to #include <sys/types.h>
1108   Radar Bug #2303937.
1110 Changes for the MacOS X bring up (the cctools-282 release):
1111 - Added the file stuff/openstep_mach.h which has defines to allow cctools
1112   to be built on openstep now that the code has been changed to use Mach 3.0
1113   names.
1114 - Changed the Makefile to allow for RC_OS=macos for MacOS X builds.
1115 - Chanded standalone/libsa.h to used mach_port_t for port_t, vm_task_t and
1116   host_t.
1117 - Changed all the port_t and task_t to mach_port_t in mach-o/dyld_debug.h .
1118   Also added a hack to typedef msg_header_t and msg_type_t to int for bring up.
1119 - Changed vm_task_t to mach_port_t in vm_flush_cache.c to build for MacOS X.
1120 - Updated mach/ppc/thread_status.h to the MacOS X version.  The files in the
1121   architecture/ppc are no longer needed and the Makefile was changed.
1122 - Copied in mach/i386/thread_status.h from Rhapsody Atlas1G1 for porting to
1123   MacOS X since this header file is not yet part of the header set.
1125 Changes for the 5.2 release (the cctools-278 release):
1126 - Changed where <mach-o/rld.h> gets installed.  It is now a private header as
1127   it uses <streams/streams.h> which is a private header.
1128 - Chanded <mach-o/dyld.h> to not include <streams/streams.h>
1130 Changes for the 5.2 release (the cctools-274 release):
1131 - Removed the i586SX cpusubtype and added the new intel x86 subtypes and macros
1132   for families and models.  Radar bug #2231830.
1134 Changes for the 5.2 release (the cctools-267 release):
1135 - Added <mach-o/getsect.h>.  Radar bug #2227839.
1136 - Added:
1137     #if defined(__MWERKS__) && !defined(__private_extern__)
1138     #define __private_extern__ __declspec(private_extern)
1139     #endif
1140   to many headers to allow compiling with MetroWerks compiler.  Radar bug
1141   #2227678.
1142 - Changed architecture/m88k/fp_regs.h line:
1143     #ifdef __GNUC__
1144             unsigned        x[4] __attribute__(( aligned(16) ));
1145     #else
1146             unsigned        x[4];
1147     #endif
1148   to deal with MetroWerks compiler. Radar bug #2227678.
1149 - Removed the #ifded 0 around swap_dysymtab_command() in <mach-o/swap.h>.
1150   Radar bug #2227474.
1152 Changes for the 5.1 release (the cctools-260 release):
1153 - Added -c to all the install commands in the Makefile.
1155 Changes for the 5.1 release (the cctools-253 release):
1156 - Changed where the headers get installed to match the new directory layout for
1157   Preimer.
1159 Changes for the 5.1 release (the cctools-248 release):
1160 - Changed over to base gmon.h on the 4.4bsd file.  For Rhapsody this file is
1161   installed by another project.  There is a local copy if the file <sys/gmon.h> 
1162   here until the modified file makes it into the release.  The 4.2
1163   <mach-o/gmon.h> file is no longer installed for RC_OS teflon.
1165 Changes for the 5.1 release (the cctools-247 release):
1166 - Added MKDIRS if code to the Makefile to build native on Rhapsody.
1167 - Changed the Makefile to use gnutar instead of tar because it works on Rhapsody
1168   where tar does not.
1169 - Moved m68k and sparc mach-o headers to local headers for install.
1170 - Removed the comment allowing the moduleName parameter of NSLinkModule() in
1171   dyld.h to be NULL (Radar 1670835).
1173 Changes for the 5.0 release (the cctools-240 release):
1174 - Changed it so gnu/a.out.h and gnu/exec.h are not installed with installGNUsrc
1175   and installMWsrc because they are encumbered.
1177 Changes for the 5.0 release (the cctools-235 release):
1178 - Added PPC_RELOC_JBSR to ppc/reloc.h .
1179 - Picked up the comments from the OpenBSD headers and replaced the comments in
1180   nlist.h, reloc.h, gmon.h and stab.h.
1182 Changes for the 5.0 release (the cctools-234 release):
1183 - Ifdef'ed the inline functions using asm()'s in architecture because of the
1184   Teflon use of -fkeep-inlines causing things not to compile.
1186 Changes for the 5.0 release (the cctools-224 release):
1187 - Added mach-o/ranlib.h from bsd/ranlib.h changing off_t to unsigned long.
1188   This was needed for Teflon as off_t is a long long (64 bits).
1189 - Added a mach-o/sparc/swap.h, mach-o/ppc/swap.h, mach-o/i860/swap.h and a
1190   mach-o/m88k/swap.h .
1191 - Picked up the PowerPC subtypes from unix-42/mach/machine.h .
1192 - Changed the Makefile to install mach-o/ppc/reloc.h in NextDeveloper/Headers.
1194 Changes for the 5.0 release (the cctools-221 release):
1195 - Picked up correct Rhapsody mach/ppc/thread_status.h and updated
1196   stuff/bytesex.h.
1198 Changes for the 4.0 release (the cctools-133 release):
1199 - Picked up sparc changes to architecture/sparc/reg.h.
1200 - Picked up sparc changes to mach/sparc/thread_status.h.
1201 - Picked up sparc changes to stuff/bytesex.h for prototype of
1202   swap_sparc_thread_state_fpu().
1203 - Picked up sparc changes to mach-o/sparc/reloc.h.
1205 Changes for the 4.0 release (the cctools-132 release):
1206 - Removed the 2.0 compatiblity header files.
1207 - Picked up the files mach/sparc/thread_status.h and architecture/sparc/reg.h
1209 Changes for the 3.3 release (the cctools-125 release):
1210 - Picked up installing 2.0Compatiblity/sys/loader.h
1211 - Added installing nlist.h stab.h loader.h fat.h (bug #31334).
1213 Changes for the 3.3 release (the cctools-120 release):
1214 - Added the file <mach-o/dyld.h>
1216 Changes for the 3.3 release (the cctools-119 release):
1217 - Picked up the first changes for sparc (sparc/reloc.h) the work is not
1218   complete.
1220 Changes for the 3.3 release (the cctools-104 release):
1221 - Changed the name of the first parameter of swap_ident_command() from id to
1222   id_cmd (in bytesex.h).  The compiler is treating this as a reserved word.
1224 Changes for the 3.3 release (the cctools-102 release):
1225 - Integrated in the hppa support.
1226 different include/Makefile (integrated for cctools-102)
1227     Using cctoolshppa-37. mach-o/hppa/reloc.h is new.
1228 different include/gnu/a.out.h (integrated for cctools-102)
1229     Using cctoolshppa-37.  Added:
1230         #ifdef HPPA
1231         #include "mach-o/hppa/reloc.h"
1232         #endif
1233 different include/mach/machine.h (integrated for cctools-102)
1234     Using cctoolshppa-37.  New constants for hppa and badly integrated the
1235     existing contants:
1236         #define CPU_TYPE_ANY                    ((cpu_type_t) -1)
1237         #define CPU_SUBTYPE_MULTIPLE            ((cpu_subtype_t) -1)
1238         #define CPU_SUBTYPE_LITTLE_ENDIAN       ((cpu_subtype_t) 0)
1239         #define CPU_SUBTYPE_BIG_ENDIAN          ((cpu_subtype_t) 1)
1240     which were scattered though out the file and moved from their comment.
1241     Email sent to Josh on this one (who forwarded it to Mac).
1242 different include/stuff/bytesex.h (integrated for cctools-102)
1243     Using cctoolshppa-37.  New routines for swaping hppa's threads.
1244 Only in cctoolshppa-37/include/mach: hppa (integrated for cctools-102)
1245     Pick up include/mach/hppa/thread_status.h from cctoolshppa-37.
1246 Only in cctoolshppa-37/include/mach-o: hppa (integrated for cctools-102)
1247     Pick up include/mach-o/hppa/reloc.h from cctoolshppa-37.  But has
1248     HPPA_RELOC_NORELOC which is used in hppa.c.  HPPA_RELOC_NORELOC pulled
1249     from reloc.h and NO_RELOC defined as 0x10 (out side the range of r_type:4)
1250     in hppa.h and NO_RELOC used in hppa.c.
1252 Changes for the 3.1 release (the cctools-22 release):
1253 - Added to mach/machine.h the following cpp macros (bug #32553):
1254         #define CPU_TYPE_ANY                    ((cpu_type_t) -1)
1255         #define CPU_SUBTYPE_LITTLE_ENDIAN       ((cpu_subtype_t) 0)
1256         #define CPU_SUBTYPE_BIG_ENDIAN          ((cpu_subtype_t) 1)
1258 Changes for the 3.1 release (the cctools-15 release):
1259 - Picked up the proper mach/m98k/thread_status.h and the six included files
1260   to make it compile.
1262 Changes for the 3.1 release (the cctools-13 release):
1263 - Added the m98k (PowerPC) architecture.  This includes a kludged
1264   mach/m98k/thread_status.h with only an entry point.
1266 Changes for the 3.1 release (the cctools-6 release):
1267 - Changed mach/i386/thread_status.h so the m68k compiler will compile this the
1268   same as the i386 compiler.  The change was to change the "unsigned int :0" to
1269   "unsigned short pad_??".
1271 Changes for the 3.1 release (the cctools-5 release):
1272 - Picked up the lono teams cctools-4_2 mach/i386/thread_status.h as well as
1273   machdep/i386/frame.h machdep/i386/fpregs.h machdep/i386/sel.h .
1274 - Changed "struct i386_thread_state *cpu," to "i386_thread_state_t *cpu,"
1275   in bytesex.h for the lono team.
1277 Changes for the 3.1 release (the cctools-4 release):
1278 - Moved the ix86 directory to i386.
1280 Changes for the 3.0 release (the -56 compiler release):
1281 - Fixed some typos in mach-o/reloc.h in the __LITTLE_ENDIAN__ code (bug #19639).
1283 Changes for the 3.0 release (the -53 compiler release):
1284 - Removed the local copy of mach/m88k/thread_status.h .
1286 Changes for the 3.0 release (the -47 compiler release):
1287 - Split of the reloc.h header file:
1288   part of mach-o/reloc.h -> mach-o/m88k/reloc.h
1289   part of mach-o/reloc.h -> mach-o/i860/reloc.h
1290 - Switch over to the newer header file organization.
1291   m88k/mach/thread_status.h -> mach/m88k/thread_status.h
1292   ix86/mach/thread_status.h -> mach/ix86/thread_status.h
1293   i860/mach/thread_status.h -> mach/i860/thread_status.h
1294   m88k/disasm.h -> mach-o/m88k/disasm.h
1295   m88k/parseinst.h -> mach-o/m88k/parseinst.h
1297 Changes for the 3.0 release (the -44 compiler release):
1298 - Switch over to the new header file organization.
1300 Changes for the 3.0 release (the -36 compiler release):
1301 - Added the 88k disassembler header file but these are not installed.
1303 Changes for the 3.0 release (the -34 compiler release):
1304 - Added installsrc, installIBMsrc and installGNUsrc targets to the Makefile.
1306 Changes for the 3.0 release (the -33 compiler release):
1307 - sys/machine.h:  (this is owned by the OS group and will be given back to them)
1308      * 16-Oct-90  Compiler group (comp) at NeXT.
1309      *  Replaced the 88k cpu_subtype CPU_SUBTYPE_MMAX_JPC with 
1310      *  CPU_SUBTYPE_MC88100 and CPU_SUBTYPE_MC88110 to match 68k types.
1312     /*
1313      *  MC88000 subtypes
1314      */
1315     #define CPU_SUBTYPE_MC88100         ((cpu_subtype_t) 1) 
1316     #define CPU_SUBTYPE_MC88110         ((cpu_subtype_t) 2) 
1319     The I860 CPU type in the NDTools 7 conflicts with the CPU_TYPE_I386 which is
1320     also 7.  In talking with Mike Paquette (10/16/90) he said it is ok to change
1321     CPU_TYPE_I860 to whatever and he will recompile NextDimention.
1322     The three I860 additions were as follows:
1324      * 16-Aug-89  Mike Paquette (mpaque) at NeXT
1325      *  Added I860 CPU type and subtypes for big or little-endian data
1326      *  implementation.
1328     #define CPU_TYPE_I860               ((cpu_type_t) 7) <<<will be 14>>>
1330     /*
1331      *  I860 subtypes
1332      */
1333     #define CPU_SUBTYPE_LITTLE_ENDIAN   ((cpu_subtype_t) 0)
1334     #define CPU_SUBTYPE_BIG_ENDIAN              ((cpu_subtype_t) 1)
1336 - machine/thread_status.h: where "machine" is a symbolic link to "next"
1337   (this is owned by the OS group and will be given back to them)
1338     In talking to Mike DeMoney on (10/16/90) he came up with the following
1339     structure to handle the multiple machines specific files.  These would
1340     be the directories in /usr/include (or in the kernel's header file area):
1342         next68k/   was just next/
1343         next88k/
1344         next860/
1346     A symbolic link from "next to "next" will be added for compatiblity and
1347     the symbolic "machine" will point to the directory the kernel is configured
1348     for.
1350 - next860/thread_status.h:
1351     This is to be owned by someone like Mike Paquette.  It is the file that
1352     discrbes JUST the i860 thread state.
1354 - next88k/thread_status.h:
1355     This is to be owned by the OS group.  The compiler group made a first
1356     cut at it.
1358 Changes for the Warp ?? release (the -25 compiler release):
1359 - Added the scattered_relocation_info struct to reloc.h
1361 Changes for the Warp ?? release (the -24 compiler release):
1362 - Added #import <sys/loader.h> to ldsyms.h (bug 6031).
1363 - Added rld.h to be installed in /usr/include.
1365 Changes for the 2.0 impulse X.X release (the -19 compiler release):
1366 - Updated ldsyms.h to match the new link editor.  Basicly removing lots of old
1367   stuff.
1368 - Added one missing ';' in symseg.h to get rid of a warning.
1369 - Removed the temporay copies of <ranlib.h> and  <sys/loader.h> now that the
1370   Impulse 0.02 release has the right versions.
1371 - Added temporary copies of <nlist.h> and <sys/machine.h> until the next libc
1372   and mk projects get released and the correct versions are in /usr/include.
1374 Changes for the 0.93 release (the -12 compiler release):
1375 - No longer install symseg.h
1376 - Now own sys/exec.h as a part of a.out.h
1378 Changes for the 0.82 release (the -8 compiler release):
1379 - Changed the Makefile to install in /usr/include
1381 Changes for the 0.82 release (the -7 compiler release):
1382 - Added header_addr to fvmlib load and id commands.
1383 - Added the SEG_PAGEZERO segment name to sys/loader.h for the segment created
1384   to protect page zero for NULL pointers.
1386 Changes for the 0.81 release (the -6 compiler release):
1387 - The following files to reflect what is contained in a true mach-O object
1388   file (relocatables and other formats):
1389         nlist.h
1390         reloc.h (new)
1391         symseg.h
1392         stab.h
1393   These along with <sys/loader.h> are now the offical files that mach-O object
1394   tools should reference.  The file <a.out.h> has been updated with the same
1395   changes but will go away in the 1.0 release or renamed to <a.out.h.old>.  
1397   The logical changes are as follows:
1399   To the nlist structure (also see comments in <nlist.h> and <stab.h>):
1401     The modifications from the original format were changing n_other (an unused
1402     field) to n_sect and the addition of the N_SECT type.   All mach-O symbols
1403     defined a section (for example what use to be N_TEXT, N_DATA and N_BSS) now
1404     have the type N_SECT.
1406     If the type is N_SECT then the n_sect field contains an ordinal of the
1407     section the symbol is defined in.  The sections are numbered from 1 and 
1408     refer to sections in order they appear in the load commands for the file
1409     they are in.  This means the same ordinal may very well refer to different
1410     sections in different files.
1411   
1412     The n_value field for all symbol table entries (including N_STAB's) gets
1413     updated by the link editor based on the value of it's n_sect field and where
1414     the section n_sect references gets relocated.  If the value of the n_sect 
1415     field is NO_SECT then it's n_value field is not changed by the link editor.
1416     The comments in <stab.h> have been updated to reflect this.
1418     Common symbols are represented by undefined (N_UNDF) external (N_EXT) types
1419     who's values (n_value) are non-zero.  In which case the value of the n_value
1420     field is the size (in bytes) of the common symbol.
1422     Absolute, undefined and common symbols are NOT in any section and thus their
1423     n_sect field must be NO_SECT to indicate this and avoid having their n_value
1424     field changed.
1426   To the relocation_info structure (see the comments in <reloc.h>):
1428     The modifications from the original format were changing the value
1429     of the r_symbolnum field for "local" (r_extern == 0) relocation entries.
1431     In 4.3bsd a.out objects if r_extern is zero then r_symbolnum is an ordinal
1432     for the segment the symbol being relocated is in.  These ordinals are the
1433     symbol types N_TEXT, N_DATA, N_BSS or N_ABS.  In mach-O object files these
1434     ordinals refer to the sections in the object file they are in.  The first
1435     section has the ordinal 1, the second 2, and so on.  This means that the
1436     same ordinal in two different object files could refer to two different
1437     sections.  And further could have still different ordinals when combined
1438     by the link-editor.  The value R_ABS is used for relocation entries for
1439     absolute symbols which need no further relocation.
1441   To the symseg structures (see the comments in <symseg.h>):
1443     To handle an arbitrary number of segments and sections the symbol_root,
1444     the indirect_root and the shlib_root have new structures in a mach-O
1445     object file.  The change to these structures was to replace the fields
1446     relating to where a segment was loaded with a load map.
1448     The load map describes where the parts the relocatable object have been
1449     loaded in the executable.  The enitre address space of the relocatable
1450     is to be covered by all the map entries.  There may be multiple map entries
1451     for a single section or one map entry for multiple sections.  This allows
1452     the link editor to scatter load a section based on information that improves
1453     performance by increasing the locality of reference.
1455 - The N_INDR symbol type was added for indirect symbols (to support building
1456   the ANSI C library).
1458     If the type is N_INDR then the symbol is defined to be the same as another
1459     symbol.  In this case the n_value field is an index into the string table
1460     of the other symbol's name.  When the other symbol is defined then they both
1461     take on the defined type and value.
1463 - Changed the loader defined symbol names _etext, _edata, and _end to __etext,
1464   __edata, __end so not to pollute the name space of ANSI C programs.  There
1465   are now macros for these symbols.  The ANSI C library will have objects with
1466   indirect symbols so that old names will still work if the program is linked
1467   with the ANSI C library.