Changes for the 5.27 release (the cctools-773 release): - Added getsectiondata() API to getsecbyname.c . Radar bug #5724145. Changes for the 5.27 release (the cctools-762 release): - Changed the Makefile to set CC when when SDKROOT is set. Radar bug #7078805. Changes for the 5.27 release (the cctools-760 release): - Changed the sources so the armv7 stuff is a no longer #ifndef __OPEN_SOURCE__ Radar bug #7016121. - Changed the Makefile to remove the OPEN macro which was -D__OPEN_SOURCE__ and removed it from the CFLAGS. - Removed the #ifndef __OPEN_SOURCE__ in arch.c that bracketed armv7 references. Changes for the 5.27 release (the cctools-759 release): - Changed the Makefile to add -isysroot $(SDKROOT) to compile and link lines when SDKROOT is set. Radar bug #6965029. Changes for the 5.26 release (the cctools-753 release): - Fixed OSSwapInt32Long to be OSSwapInt64 and added #include to i386_swap.c and swap.c to removed warnings about implicit declarations. - Added #if i386_THREAD_STATE == 1 around the calls to swap_i386_float_state() in and swap_i386_exception_state() in i386_swap.c. Changes for the 5.26 release (the cctools-752 release): - Ported to build with clang. - Changed Makefile to work around bugs 6756912 and 6757212. - Changed NXSwapLong to OSSwapInt32 in getsecbyname.c, hppa_swap.c, i386_swap.c, i860_swap.c, m68k_swap.c, m88k_swap.c, ppc_swap.c, and swap.c . Changes for the 5.26 release (the cctools-721 release): - Changed the Makefile and removed -force_cpusubtype_ALL from KERN. Radar bug #6233829. Changes for the 5.26 release (the cctools-705 release): - Ported to run on 64-bit hosts. Radar bug #6022298. Changes for the 5.26 release (the cctools-700 release): - Fixed a problem with swap_relocation_info() in swap.c where it was incorrectly using "long" which should be "uint32_t" in two places, the fields r_address and r_value fields of the swapped_relocation_info and the swapped_scattered_relocation_info structures. Radar bug #5904383. Changes for the 5.25 release (the cctools-697 release): Changes for the 5.25 release (the cctools-696 release): - Changed the Makefile to use -iwithsysroot as part of the KERN flags. Changes for the 5.25 release (the cctools-679.4 and cctools-686 releases): - Changed the Makefile to test OLD_LIBKLD passed down from the upper Makefile so to not build libmacho_kld.a when OLD_LIBKLD is not YES. Radar bug #5780592. Changes for the 5.25 release (the cctools-682 release): - Updated NXCombineCpuSubtypes() in arch.c to include arm. Changes for the 5.25 release (the cctools-681 release): - Removed all __OPEN_SOURCE__ references in: Makefile, notes and arch.c . Changes for the 5.25 release (the cctools-677 release): - Changed the Makefile to not use -Wno-long-double and -no-cpp-precomp . Radar bug #5563553. Changes for the 5.25 release (the cctools-676 release): - Changed get_end.c, getsecbyname.c and getsegbyname.c to stop defining _NSGetMachExecuteHeader and just use it out of . Radar bug #4696889. Changes for the 5.25 release (the cctools-673 release): - Changed the sources so the arm stuff is not in the open source version. Radar bug #5326431. - Changed the Makefile to build with -D__OPEN_SOURCE__ with $(OPEN) - Added #ifndef __OPEN_SOURCE__ to arch.c to bracket arm code. Changes for the 5.24 release (the cctools-652 release): - Added creating a vers.c file and linking in the vers.o into the libmacho archives. Radar bug #4980378. Changes for the 5.24 release (the cctools-642 release, picked up from cctools-640.1): - Fixed a problem in NXGetArchInfoFromCpuType() with the use of CPU_SUBTYPE_MULTIPLE and the changes to use CPU_SUBTYPE_MASK to mask out the capability bits. Since the value of CPU_SUBTYPE_MULTIPLE is -1, the capability bits can't be masked out of the passed cpusubtype when comparing to this constant. Radar bug #4787007. Changes for the 5.24 release (the cctools-640 release): - Changed arch.c to use CPU_SUBTYPE_MASK to mask out the capability bits from the cpusubtype on comparisons. Radar bug #4754462. Changes for the 5.23 release (the cctools-616 release): - Added the routines swap_x86_state_hdr(), swap_x86_float_state64(), swap_x86_exception_state64(), swap_x86_thread_state(), swap_x86_float_state(), swap_x86_exception_state(), swap_x86_debug_state32(), swap_x86_debug_state64() and swap_x86_debug_state() to i386_swap.c . Radar bug #4491230. Changes for the 5.23 release (the cctools-616 release): - Added the routines swap_mach_header_64(), swap_segment_command_64(), swap_section_64(), swap_routines_command_64(), swap_nlist_64() and swap_dylib_module_64() to swap.c . Also fixed a bug in swap_dylib_module() that did not have the swap of the objc_module_info_size and objc_module_info_addr fields. Radar bug #4358209. Changes for the 5.23 release (the cctools-610 release): - Added a few ifdef x86_THREAD_STATE64 to a few places in i386_swap.c to allow it to build on Tiger. Radar bug #4535019. Changes for the 5.22 release (the cctools-590.37.3 release): - Correctly swap x86_THREAD_STATE64 states when running on PowerPC. Also, update to the current definition of the x86-64 thread state. Radar bug #4491228. Changes for the 5.22 release (the cctools-590.36.2 release): - Add #defines to ensure that libmacho builds on systems with POSIX conformant headers. Radar bug #4471574. Changes for the 5.22 release (the cctools-590.31.1 release): - Added support for the x86_64 architecture. Radar bug #4345090. Changes for the 5.20.1 release (the cctools-590.38 relase) Picked up from the cctools-590.23.5 release: - Changed i386_swap.c to add macros that rename structure members of the i386_thread_state_t for Unix conformance. Radar bug #4438650. Changes for the 5.21 release (the cctools-590.32 release): - Changed ppc_swap.c to add macros that rename structure members of the ppc_thread_state_t for Unix conformance. Picked up from cctools-590.23.4 . Radar bug #4340681. Changes for the 5.21 release (the cctools-590.24 release): - Added support for DWARF. Radar bug #4367423. - Added swap_uuid_command() to swap.h . Changes for the 5.20 release (the cctools-590.23 release): - Changed swap_i386_float_state() in i386_swap.c for the current floating point i386 thread state (#if i386_THREAD_STATE == 1 case) so that it does swap the struct fields if i386_EXCEPTION_STATE_COUNT is defined. Radar bug #4350771. Changes for the 5.19 release (the cctools-590.11 release): - Changed swap_i386_float_state() in i386_swap.c for the current i386 thread states (#if i386_THREAD_STATE == 1 case) so that it does not swap any fields. Removed the three added #defined's from the change below now that they are no longer needed. Radar bug #4282026. Changes for the 5.19 release (the cctools-590.10 release): - Added three #defined's to i386_swap.c #define obsolete1 fpkind #define obsolete2 initialized #define obsolete3 exc_status allow the source to build on Leopard with different fields in the struct i386_float_state in . Radar bug #4279472. Changes for the 5.19 release (the cctools-590.8 release): - Changed i386_swap.c to #if the old swap_i386_thread_fpstate(), swap_i386_thread_exceptstate() and swap_i386_thread_cthreadstate() routines and added the new swap_i386_float_state() and swap_i386_exception_state() routines. Radar bug #4200908. Changes for the 5.18 release (the cctools-589 release): - Added support for the CPU_SUBTYPE_PENTIUM_4 cpusubtype. Radar bug #4115802 - Added an entry in the ArchInfoTable[] array in arch.c for pentium4 as: {"pentium4", CPU_TYPE_I386, CPU_SUBTYPE_PENTIUM_4, NX_LittleEndian, "Intel Pentium 4" }, - Changed the Makefile and added a LEGACY macro with two defines to allow the code to use the old field name "environ" from the i386 structs. Radar bug #4113580. Changes for the 5.18 release (the cctools-583 release): - Changed the Makefile so that when RC_XBS is set to YES then the compiler options -MD and -dependency-file as well as the md(1) program are not used. Radar bug #4029936. Changes for the 5.18 release (the cctools-580 release): - Changed the Makefile to set CC to gcc-3.5 when RC_USE_GCC35_FOR_PPC64 is YES. Radar bug #4066237. Changes for the 5.18 release (the cctools-579 release): - Changed the Makefile to set CC to gcc-3.5 when RC_RELEASE is Saffron. Radar bug #4064324. Changes for the 5.17 release (the cctools-574 release): - Changed the routine NXCombineCpuSubtypes() in arch.c to combine any i386 subtype to the ALL subtype. Radar 4002756. Changes for the 5.17 release (the cctools-562 release): - Changed swap_ppc_thread_state_t() in ppc_swap.c to use cpu->vrsave and not cpu->pad. Radar bug #3930480. Changes for the 5.17 release (the cctools-559 release): - Added building libmacho_kld.a built for the kernel's kld use. Radar bug #3906133. - Changed the code to only compile the needed routines when RLD is defined: - getsegbyname.c only compile getsegbyname() for RLD - Changed the following files and ifndef RLD their entire contents: arch.c, get_end.c, getsecbyname.c, hppa_swap.c,i386_swap.c, i860_swap.c, m68k_swap.c, m88k_swap.c, ppc_swap.c,sparc_swap.c and swap.c . Changes for the 5.16 release (the cctools-546 release): - Changed the code to support 32-bit & 64-bit Mach-O files. Radar bug #3780704. - Changed the Makefile to no longer pass -DINTERIM_PPC64 and to set CC to gcc-3.5 when RC_RELEASE is Tiger or Gordian. Also the upper level Makefile was change to edit out "-arch ppc64" from the RC_CFLAGS for the ofiles_install for all builds except libmacho. - Removed the INTERIM_PPC64 ifdefs in arch.c - Updated the case code for CPU_TYPE_POWERPC64 in NXFindBestFatArch() in arch.c to handle CPU_SUBTYPE_POWERPC_970. Also Radar bug #3825281. - Updated and added routines to getsecbyname.c, getsegbyname.c and get_end.c to compile for -arch ppc64 and new tool routines to deal with 64-bit APIs. The new routines are: In getsecbyname.c getsectbynamefromheader_64(), getsectdatafromheader_64() Changes for the 5.16 release (the cctools-526 release): - Changed the types of parameters of various routines and some of their local variables from unsigned long to uint32_t to match the change in the header files to make 32-bit Mach-O structures 32-bit clean. Radar bug #3744082. - Changed the type of NXFindBestFatArch()'s nfat_archs argument to an uint32_t and added an include of to arch.c . - Changed all the unsigned long parameters in swap.c routines to uint32_t and many local variables. Changes for the 5.16 release (the cctools-524 release): - Fixed a bug in NXFindBestFatArch() in arch.c when trying to pick the lowest model i386 fat arch. The variable lowest_model was initialized to ULONG_MAX when it should have been LONG_MAX as it was a signed value. Radar bug #3694812. Changes for the 5.16 release (the cctools-509 release): - Added #ifdef INTERIM_PPC64 to the source changes to support the interim ppc64 file format. And added -DINTERIM_PPC64 to the Makefile. Changes for the 5.16 release (the cctools-499.1 release): - Made changes to support the interim ppc64 file format. Radar bug #3562133 and #3562232. - Added an entry in the ArchInfoTable[] array in arch.c for ppc64 as: {"ppc64", CPU_TYPE_POWERPC64, CPU_SUBTYPE_POWERPC64_ALL, NX_BigEndian, "PowerPC 64-bit"}, - In NXFindBestFatArch() in arch.c added a case statement for CPU_TYPE_POWERPC64 and the code to look for CPU_SUBTYPE_POWERPC64_ALL. Changes for the 5.12 release (the cctools-464 release): - Made changes to build cleanly with gcc3.3 - Removed -Wno-precomp from the Makefile and setting RC_OS = macos - Fixed warnings for "comparison between signed and unsigned" in arch.c, getsecbyname.c and getsegbyname.c. Changes for the 5.12 release (the cctools-490 release): - Fixed NXFindBestFatArch() in arch.c to not select a PowerPC 970 if not on a PowerPC 970. And fixed it when passed the family ALL type and there is not an exact match to select the cpusubtype's from the "top" of the list going all possible subtypes. Radar bug #3387962. Changes for the 5.12 release (the cctools-449 release): - Added the arch flag i686 to be the same as pentpro in arch.c. Radar bug #3111977. Changes for the 5.12 release (the cctools-447 release): - Added the VEO entries in the ArchInfoTable[] in arch.c so NXGetArchInfoFromName() will work for VEO binaries. No changes where made to NXFindBestFatArch() or NXCombineCpuSubtypes(). Radar bug #3096745. Changes for the 5.11 release (the cctools-440 release): - Fixed the warnings about extra tokens at end of #endif directive in getsecbyname.c (Radar bug #3072042). Changes for the 5.10 release (the cctools-414 release): - Changed the calls to mach_host_self() in NXGetLocalArchInfo() in arch.c to call mach_port_deallocate() on the port after the call. Radar bug #2895931. Changes for the 5.10 release (the cctools-403 release): - Changed the macos_lib_ofiles_install target in the Makefile to work when $SYMROOT is not set. So the top level Makefile can do a make install and work by default. Changes for the 5.10 release (the cctools-400 release): - Changed the Makefile back to again use the -dependency-file with gcc. Changes for the 5.10 release (the cctools-396 release): - Changed the Makefile to not use the -dependency-file with gcc as well as mwccppc. - Added an include to i386_swap.c, sparc_swap.c and m88k_swap.c to pick up the prototype for memcpy(). Changes for the 5.10 release (the cctools-386 release): - Added the swap_prebind_cksum_command() to to swap.c. Changes for the 5.9 release (the cctools-367 release): - Added swap_sub_library_command() to swap.c. Radar bug #2697458. - Added swap_twolevel_hint(), swap_twolevel_hints_command() and the missing swap_routines_command() to swap.c. Radar bug #2558069. Changes for the 5.9 release (the cctools-364 release): - Changed NXCombineCpuSubtypes() in arch.c (as well as cpusubtype_combine() in libstuff) for the ppc to select the highest subtype when there is not an exact match and neither is a 601. - Changed NXFindBestFatArch() in arch.c (as well as cpusubtype_findbestarch() in libstuff) which had a problem with selecting the ppc cpusubtype when an exact match could not be found. See Radar bug #2678019 against exec(2). Changes for the 5.9 release (the cctools-359 release): - Added -Wno-long-double to shutup the compiler for . Changes for the 5.8 release (the cctools-357 release): - Added support for the CPU_SUBTYPE_POWERPC_7450 in arch.c . Radar bug #2599869. Changes for the 5.8 release (the cctools-344 release): - Changed NXFindBestFatArch() in arch.c in the loop looking for the lowest_model to save the current lowest_model so it finds the lowest_model. Changes for the the 5.8 release (the cctools-342 release): - Added support for swapping the LC_SUB_CLIENT load command (Radar bug 2533649). Changes for the the 5.8 release (the cctools-341 release): - Added support for swapping the LC_SUB_UMBRELLA load command (Radar bug #2530028). - Added back the building of optimized_ofiles and the installing of libmacho_static.a to the Makefile for RC_OS=macos so that the static KLD can be linked with it. Radar bug #2523649. Changes for the the 5.7 release (the cctools-329 release): - Changed iinit and ninit fields of the struct dylib_module in swap_dylib_module() in swap.c to iinit_iterm and ninit_nterm. Changes for the the 5.7 release (the cctools-328 release): - Changed where the libraries get installed by default. So going forward things get install in /usr/local/lib/system and /Local/Developer/System is only used for RC_OS=macos when RC_RELEASE is Gonzo, Bunsen or Beaker. Radar bug #2469527. Changes for the the 5.7 release (the cctools-327 release): - Changed where the libraries get installed by default. So going forward things get install in /AppleInternal/Developer/System and /Local/Developer/System is only used for RC_OS=macos when RC_RELEASE is Gonzo, Bunsen or Beaker. Changes for the the 5.6 release (the cctools-323 release): - Changed where the libraries get installed for the Space release in preparation of this "Half Plan" becoming the default for DP4 (Gonzo). This directory /Local/Developer/System is changing to /AppleInternal/Developer/System. Changes for the 5.6 release (the cctools-320 release): - Added support for the new LC_SUB_FRAMEWORK load command to support "Guarding against direct linking of non-umbrella frameworks". The file that swaps load commands, swap.c, was updated. The public header file in was also updated and the missing prototypes for other functions were also added. Radar bug 2443212. Changes for the 5.5 release (the cctools-307 release): - Added support for the CPU_SUBTYPE_POWERPC_7400 in arch.c. Radar bug #2397523. Changes for the 5.4 release (the cctools-296 release): - For RC_OS=macos no longer build the _static versions, the libmacho_pg.a version is now copied as libmacho_profile.a and a link to libmacho_debug.a is made from libmacho.a. Changes for the 5.3 release (the cctools-285 release): - Changed the Makefile to build libmacho.a, libmacho_pg.a and libmacho_static.a in $(DSTROOT)/Local/Developer/System for MacOS X, that is when $(RC_OS) is macos. This to allow System framework to be built without using SUBLIBROOTS. Radar bug #2268413. Changes for the 5.3 release, MacOS X bring up (the cctools-282 release): - Changed swap_ppc_thread_state_t() to not use bit fields for srr1, cr and exr to match the ppc_thread_state for Rhapsody/MacOS X. - Changed host_self() to mach_host_self() for MacOS X. Also included "stuff/openstep_mach.h" for macros to allow it to still build on Openstep. Also changed ifdef's __SLICK__ to __OPENSTEP__. - Changed the Makefile to allow for RC_OS=macos for MacOS X builds. - Added a few casts in places to get it to compile with the MetroWerks compiler without -relax_pointers. Changes for the 5.2 release (the cctools-277 release): - Added code in NXGetArchInfoFromCpuType() for i386 and ppc to create an NXArchInfo struct with strings for unknown subtypes. Radar bug #2241690. Changes for the 5.2 release (the cctools-274 release): - Removed uses of CPU_SUBTYPE_586SX from arch.c and added new intel subtypes. Updates NXFindBestFatArch() and NXCombineCpuSubtypes() from libstuff's version. Radar bug #2231830. Changes for the 5.2 release (the cctools-268 release): - Removed getmachhead.o from dylib.ofileList. Changes for the 5.2 release (the cctools-267 release): - Removed the -DDYLD_PROFILING flag from the Makefile which was left over when copying libdyld's Makefile. Radar bug #2227782. - Fixed some warnings from getsectdatafromFramework() code added. Included "mach-o/dyld.h" in all DYNAMIC cases. Also changed getsectbynamefromheader() to use const for segname and sectname. Radar bug #2227839. - Added getsectdatafromFramework() as per Radar 2151720. Changes for the 5.1 release (the cctools-261 release): - Added the PowerPC subtypes 603e, 603ev and 750 to the table of arch types. (Radar 2213821) - Changed NXFindBestFatArch() in arch.c for PowerPC subtypes. If an exact match is not found the subtype will be picked from the following order: 750, 604e, 604, 603ev, 603e, 603, ALL Note the 601 is NOT in the list above. It is only picked via an exact match. (Radar 2213821) - Changed NXCombineCpuSubtypes() in arch.c for for PowerPC subtypes. Combining with the ALL type becomes the other type. Combining anything with the 601 becomes 601. All other non exact matches combine to the ALL type. (Radar 2213821) Changes for the 5.1 release (the cctools-247 release): - Fixed bugs in getsegbyname.c and getsecbyname.c on the ifdef __SLICK__ side where the mach header pointer was not set. The missing line of code was: mhp = (struct mach_header *)(& USE_VAR(_mh_execute_header)); This is the 4.2 Openstep side so these bugs don't really matter. - Added MKDIRS if code to the Makefile to build native on Rhapsody. - Changed the Makefile to use gnutar instead of tar because it works on Rhapsody where tar does not. - Changed the Makefile so profiled objects get built for RC_OS teflon. - Changed the code ifdef __TEFLON__ to ifndef __SLICK__ (where __TEFLON__ will nolonger be defined for Rhapsody builds) so the default builds will be native Rhapsody builds. The changes were to get_end.c, getmachhead.c, getsecbyname.c and getsegbyname.c . Changes for the 5.0 release (the cctools-241 release): - Added ppc604e to the arch table (Radar 1669413). Changes for the 5.0 release (the cctools-226 release): - Added ppc604 to the arch table and to get_arch_from_host(). This is what the kernel on the Power Mac 8500 is returning. Changes for the 5.0 release (the cctools-224 release): - Added a sparc_swap.c and a ppc_swap.c. Added them to the Makefile and dylib.ofileList (but not the shlib.ofileList). - Added i860_swap.c and a m88k_swap.c but did NOT add them to any ofileList. - Pulled in hppa_swap.c, i386_swap.c, and m68k_swap.c from the libc_gen project. Added them to the Makefile and dylib.ofileList (except hppa_swap.c) but not the shlib.ofileList. Updated these files with the code from libstuff's bytesex.c. - Updated swap.c from libstuff's bytesex.c adding the following routines: swap_dysymtab_command() swap_dylib_command() swap_prebound_dylib_command() swap_dylinker_command() swap_indirect_symbols() swap_dylib_reference() swap_dylib_module() swap_dylib_table_of_contents() - Updated arch.c by changing m98k to ppc and removed the never supported architectures (mips,and vax). Also copied in the implementation of cpusubtype_findbestarch() from libstuff's best_arch.c into NXFindBestFatArch() and likewise for cpusubtype_combine() into NXCombineCpuSubtypes(). - Fixed the type of headers in getmachheaders() in getmachhead.c to fix a warning. - Fixed a warning in getsectdatafromlib() in getsecbyname.c. Changes for the 5.0 release (the cctools-223 release): - Put back changes ifndef'ed __TEFLON__ . Changes for the 5.0 release (the cctools-221.6 and cctools-222 releases): - Picked up changes to get_end() in get_end.c to use _NSGetMachExecuteHeader(). - Picked up changes to getmachheaders() in getmachhead.c to use _NSGetMachExecuteHeader(). - Picked up changes to getsectbyname() and getsectdatafromlib() in getsecbyname.c to use _NSGetMachExecuteHeader(). - Picked up changes to getsegbyname() in getsegbyname.c to use _NSGetMachExecuteHeader(). Changes for the 5.0 release (the cctools-221.1 and cctools-222 releases): - Picked up changed to the Makefile to not build profile objects for teflon. This is because the PowerPC compiler core dumps with -pg.