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