836
[darwin-xtools.git] / cctools / efitools / notes
blobf898c38caafeacfb6eb2ea80c4dbe4db8c92e906
1 TODO:
2 Add flags for:
3   -debug
4   -no_dos_header
5 Add support for:
6 - Remove empty __IMPORT segment
8 Changes for the 5.32 release (the cctools-831 release):
9 - Also put mtoc(1) in /usr/local/bin .  Radar bug #10715889.
11 Changes for the 5.30 release (the cctools-820 release):
12 - Removed the use of vers_string(1) from the Makefile. Radar bug #10596469.
13   - Added a reference to apple_version[] in makerelocs.c and mtoc.c .
15 Changes for the 5.29 release (the cctools-800 release):
16 - Added support for rewriting UUID of generated file with command line flag -u.
17   Radar bug #8946107.
19 Changes for the 5.28 release (the cctools-795 release):
20 - Added added more subsystem types to mtoc(1).  Radar bug #8492168.
22 Changes for the 5.28 release (the cctools-792 release):
23 - Picked up changes to generate correct x86_64 relocations and to correctly
24   calculate SizeOfImage in mtoc.c. Radar bug #8211617.
26 Changes for the 5.28 release (the cctools-787 release):
27 - Changed mtoc(1) to zero pad PE/COFF sections to support XIP PE/COFF images.
28   Radar bug #8199851.
29 - Changed mtoc(1) support building XIP PEI/COFF images in all cases. Radar bug
30   #8197128.
32 Changes for the 5.28 release (the cctools-777 release):
33 - Changed round() to rnd() and stuff/round.h to stuff/rnd.h in all files and
34   removed -fno-builtin-round from the Makefile.  Radar bug #7475139.
35 - Changed the Makefile to use -Os for OFLAG.  Radar bug #7475093.
37 Changes for the 5.27 release (the cctools-765 release):
38 - Moved the install location of motc(1) back to /usr/local/efi/bin . Radar bug
39   #7117645.
41 Changes for the 5.27 release (the cctools-762 release):
42 - Changed the Makefile to set CC when when SDKROOT is set.  Radar bug #7078805.
44 Changes for the 5.27 release (the cctools-761 release):
45 - Moved the install location of motc(1) into /usr/bin .  Radar bug #7038602.
46 - Fixed a problem in mtoc(1) with the -p option that caused it to crash.  The
47   First problem was process_64bit_arch() needed to account for the debug
48   section when the -d option was used just like process_32bit_arch() did.
49   Second problem was if there happen to be no relocation entries then both
50   routines needed to set the debug_addr when reloc_size was zero and not use
51   reloc_scnhdr as it may be NULL.  Radar bug #6904701.
53 Changes for the 5.27 release (the cctools-759 release):
54 - Changed the Makefile to add -isysroot $(SDKROOT) to compile and link lines
55   when SDKROOT is set.  Radar bug #6965029.
57 Changes for the 5.27 release (the cctools-754 release):
58 - Changed mtoc(1) to not create a .reloc section if it would have a zero size.
59   Also changed mtoc(1) to include the SizeOfHeaders in SizeOfImage.
60   Radar bug #6795386
62 Changes for the 5.27 release (the cctools-752 release):
63 - Ported to build with clang.
64   - Changed Makefile to work around bugs 6761248 and 6756912.
65   - Added a cast to int for a switch statement in process_32bit_arch() in mtoc.c
66   - Commented out the if statement with an empty body with a TODO comment in
67     create_base_reloc() in mtoc.c .
69 Changes for the 4.26 release (the cctools-717 release):
70 - Added the -d filename option to mtoc(1) which adds a debug directory entry
71   in the .debug section with the file name.  Radar bug #6211642.
73 Changes for the 4.26 release (the cctools-716 release):
74 - Fixed bugs in mtoc(1) in create_32bit_symbol_table() and
75   create_64bit_symbol_table() that was not ignoring stabs with the N_STAB bits
76   set when checking for undefined symbols.  Radar bug #6194828.
78 Changes for the 4.26 release (the cctools-715 release):
79 - Changed mtoc(1) to remove the HACK_ARM_F_MAGIC_TO_BE_I386 define and code so
80   now the f_magic field for arm gets set to IMAGE_FILE_MACHINE_ARM (0x01c0).
81   Radar bug #6163015.
83 Changes for the 4.26 release (the cctools-705 release):
84 - Ported mtoc.c to run on 64-bit hosts by changing unsigned long to uint32_t and
85   SWAP_LONG to SWAP_INT.  Radar bug #6022298.
87 Changes for the 5.26 release (the cctools-701 release):
88 - Added the -align option to mtoc(1) to set the file and segment alignment.
90 Changes for the 5.26 release (the cctools-699 release):
91 - Fixed a problem with the SizeOfImage field in the aouthdr not including the
92   "zerofill" part of the sections.  This is also include in the bsize which
93   causes it to be included in the SizeOfImage.  Also removed the check to
94   require the section alignment to be greater or equal to the file alignment.
96 Changes for the 5.25 release (the cctools-688 release):
97 - Fixed a problem in mtoc(1) selection of the address for the .reloc PECOFF
98   section.  To work around the unified linker incorrectly producing a LINKEDIT
99   segment the code in process_32bit_arch() and process_64bit_arch() needed to
100   ingore this segment when selecting the address.
102 Changes for the 5.25 release (the cctools-687 release):
103 - Added 64-bit checking for undefined symbols. 
105 Changes for the 5.25 release (the cctools-686 release):
106 - Added the "-section_alignment <hex_value>" option.  This should be passed the
107   same value as passed to the linker in the -segalign value when creating the
108   Mach-O file. This value is used to layout the added .reloc section and set
109   into the PECOFF aouthdr.
110 - Added a check to make sure the headers are not mapped on top of its sections. 
111   If it does you get an error message saying the Mach-O needed to be relinked
112   and the -seg1addr value to use.
113 - Added alternate names for the subsystem arguments.
114 - Added checking for undefined symbols (32-bit only).
116 Changes for the 5.25 release (the cctools-685 release):
117 - Updated mtoc(1) to deal with MH_EXECUTE file types and MH_PIE flag.
119 Changes for the 5.25 release (the cctools-681 release):
120 - Added the new mtoc(1) program to the cctools project.  Radar bug #5536661.
121   - The -e entry_point is a temporary hack until 64-bit files are produced
122     with MH_PRELOAD and have an entry point in the thread command.
123 - The makerelocs(1) program in here is not installed as it would overwrite the
124   existing one in the efitools project.  But this one could replace it but the
125   new mtoc(1) program includes that and makes it obsolete.  But is useful to
126   test with.