notes   [plain text]


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 <crt_externs.h>.
  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 <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.