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 <mach-o/i386/thread_status.h> . 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 <stdint.h> 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 <string.h> 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
<architecture/m88k/fp_regs.h>.
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 <mach-o/swap.h>
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.