]>
Commit | Line | Data |
---|---|---|
d696c285 | 1 | |
a61fdf0a A |
2 | ----- Tagged ld64-77 |
3 | ||
4 | 2007-07-3 Nick Kledzik <kledzik@apple.com> | |
5 | ||
6 | <rdar://problem/5351380> Kernel is linked with some global symbols unsorted | |
7 | * src/MachOWriterExecutable.hpp: Add NListNameSorter to allow global atoms and extra labels to be sorted | |
8 | ||
9 | ||
10 | 2007-07-20 Nick Kledzik <kledzik@apple.com> | |
11 | ||
12 | <rdar://problem/5254468> Can't do objc_msgSendSuper dispatches after loading a Fix&Continue bundle | |
13 | * src/MachOWriterExecutable.hpp: when calculating what kind of reloc to use, never use an | |
14 | external reloc to reference 32-bit ObjC symbols. | |
15 | ||
16 | ||
17 | 2007-07-20 Nick Kledzik <kledzik@apple.com> | |
18 | ||
19 | <rdar://problem/5349847> Runtime crash with ICC math library on Leopard | |
20 | * src/MachOReaderRelocatable.hpp: detect if section starts with a symbol that is not | |
21 | aligned to section and correct it. | |
22 | ||
23 | ||
24 | ----- Tagged ld64-76 | |
25 | ||
26 | 2007-06-29 Nick Kledzik <kledzik@apple.com> | |
27 | ||
28 | <rdar://problem/5303718> export hiding does not work for frameworks | |
29 | * src/MachOReaderDylib.hpp: fix checks in isPublicLocation() | |
30 | * unit-tests/test-cases/symbol-moving: update to test frameworks as well as dylibs | |
31 | ||
32 | ||
33 | 2007-06-27 Nick Kledzik <kledzik@apple.com> | |
34 | ||
35 | <rdar://problem/5299907> linker should use undefines from flat dylibs when linking a main flat | |
36 | * src/ObjectFile.h: added fLinkingMainExecutable | |
37 | * src/Options.cpp: set up fLinkingMainExecutable | |
38 | * src/MachOReaderDylib.hpp: when linking a main executable for flat namespace, the reader for | |
39 | any loaded flat namespace dylib will have a new atoms that has references to all undefined | |
40 | symbols in the dylib | |
41 | * unit-tests/test-cases/flat-indirect-undefines: added test case | |
42 | * doc/man/man1/ld.1: update man page to describe when dylib undefines are used | |
43 | ||
44 | ||
45 | 2007-06-27 Nick Kledzik <kledzik@apple.com> | |
46 | ||
47 | <rdar://problem/5277857> OpenGL.framework and X11 both have a libGL.dylib which can cause ld to segfault if both are found | |
48 | * src/MachOReaderDylib.hpp: add assertNoReExportCycles() method | |
49 | * unit-tests/test-cases/dylib-re-export-cycle: added test case | |
50 | ||
51 | ||
52 | 2007-06-27 Nick Kledzik <kledzik@apple.com> | |
53 | ||
54 | <rdar://problem/5286462> ld64 has slightly different warning message formats than the old ld | |
55 | * src/ld.cpp: standardize all warning messages to start with "ld: warning" | |
56 | * src/MachOWriterExecutable.hpp: ditto | |
57 | * src/MachOReaderRelocatable.hpp: ditto | |
58 | * src/MachOReaderDylib.hpp:ditto | |
59 | ||
60 | ||
61 | 2007-06-26 Nick Kledzik <kledzik@apple.com> | |
62 | ||
63 | <rdar://problem/5297034> -dead_strip can cause duplicate external commons | |
64 | * src/ld.cpp: don't use discarded coalesced global atoms as dead strip roots | |
65 | * src/machochecker.cpp: error if duplicate external symbols | |
66 | * unit-tests/test-cases/commons-coalesced-dead_strip: added test case | |
67 | ||
68 | ||
69 | 2007-06-26 Nick Kledzik <kledzik@apple.com> | |
70 | ||
71 | <rdar://problem/4135857> update man page that linker does not search indirect libraries with two-level namespace | |
72 | * doc/man/man1/ld.1: add new "Indirect dynamic libraries" section to man page | |
73 | ||
74 | ||
75 | 2007-06-26 Nick Kledzik <kledzik@apple.com> | |
76 | ||
77 | <rdar://problem/5285473> Xc9A466: Exports file cannot use Mac line ends | |
78 | * src/Options.cpp: check for \r or \n when parsing .exp files | |
79 | * unit-tests/test-cases/exported_symbols_list-eol: added test case | |
80 | ||
81 | ||
82 | ----- Tagged ld64-75 | |
83 | ||
84 | 2007-05-31 Nick Kledzik <kledzik@apple.com> | |
85 | ||
86 | <rdar://problem/4607755> Simplier, generalized way to re-export dylibs: LC_REEXPORT_DYLIB | |
87 | * src/MachOWriterExecutable.hpp: Use LC_REEXPORT_DYLIB when targetting 10.5 | |
88 | ||
89 | ||
90 | ----- Tagged ld64-74.5 | |
91 | ||
92 | 2007-05-31 Nick Kledzik <kledzik@apple.com> | |
93 | ||
94 | <rdar://problem/5241902> set OSO timestamp to zero for when building in buildit | |
95 | * src/ld.cpp: check for RC_RELEASE and if exists set all OSO timestamps to zero | |
96 | ||
97 | ||
98 | 2007-05-30 Nick Kledzik <kledzik@apple.com> | |
99 | ||
100 | <rdar://problem/5224676> BUILD_STABS now causes ld of xnu to bus error | |
101 | * src/ld.cpp: Change || to && in collectStabs() | |
102 | ||
103 | ||
104 | ----- Tagged ld64-74.4 | |
105 | ||
106 | 2007-05-18 Nick Kledzik <kledzik@apple.com> | |
107 | ||
108 | <rdar://problem/5211667> static probes don't work with libraries in dyld shared cache | |
109 | * src/OpaqueSection.hpp: the __TEXT segment is executable | |
110 | ||
111 | ||
112 | ----- Tagged ld64-74.3 | |
113 | ||
114 | 2007-05-16 Nick Kledzik <kledzik@apple.com> | |
115 | ||
116 | <rdar://problem/5201463> ppc: linker adds stubs to cstring references | |
117 | * src/MachOWriterExecutable.hpp: update ppc stubableReference() to only allow high/low references | |
118 | to be stubed if they reference a symbol in some other dylib. | |
119 | * unit-tests/test-cases/stub-generation: added test case | |
120 | ||
121 | ||
122 | 2007-05-16 Nick Kledzik <kledzik@apple.com> | |
123 | ||
124 | <rdar://problem/5008421> ppc64: need to make LOCAL indirect symbol table entry for now local symbol | |
125 | * src/MachOWriterExecutable.hpp: factored local tests into indirectSymbolIsLocal() | |
126 | * unit-tests/test-cases/non-lazy-r: added test case | |
127 | ||
128 | ||
129 | 2007-05-15 Nick Kledzik <kledzik@apple.com> | |
130 | ||
131 | <rdar://problem/5198807> ld64 drops fix&continue bit in __OBJC, __image_info. | |
132 | * src/MachOReaderRelocatable.hpp: implement objcReplacementClasses() | |
133 | ||
134 | ||
135 | 2007-05-15 Nick Kledzik <kledzik@apple.com> | |
136 | ||
137 | <rdar://problem/5066152> support __image_info in __DATA segment for 64-bits | |
138 | * src/MachOReaderRelocatable.hpp: use strncmp() for __objc_imageinfo since it is 16 bytes long | |
139 | * src/MachOWriterExecutable.hpp: specialize segment/section names for synthesized objc image info section | |
140 | ||
141 | ||
142 | 2007-05-15 Nick Kledzik <kledzik@apple.com> | |
143 | ||
144 | * unit-tests/include/common.makefile: set COMPILER_PATH so harness works with latest compiler | |
145 | ||
146 | ||
147 | ----- Tagged ld64-74.2 | |
148 | ||
149 | 2007-05-11 Nick Kledzik <kledzik@apple.com> | |
150 | ||
151 | <rdar://problem/5195447> ld64-74.1 breaks libstdc++ DejaGnu test (G5 only) | |
152 | * src/MachOWriterExecutable.hpp: don't stub a reference if the target offset is non-zero | |
153 | ||
154 | ||
155 | ----- Tagged ld64-74.1 | |
156 | ||
157 | 2007-05-09 Nick Kledzik <kledzik@apple.com> | |
158 | ||
159 | * src/Options.h: add emitWarnings() | |
160 | * src/Options.cpp: wire up -w to emitWarnings() | |
161 | ||
162 | ||
163 | 2007-05-09 Nick Kledzik <kledzik@apple.com> | |
164 | ||
165 | <rdar://problem/5137285> ld64 won't link wine (regression from Tiger) | |
166 | * src/Architectures.hpp: add x86::kPointerDiff16 and x86::kPCRel16 | |
167 | * src/MachOReaderRelocatable.hpp: add support to parse new relocs | |
168 | * src/MachOWriterExecutable.hpp: add support fo new relocs | |
169 | ||
170 | ||
171 | 2007-05-08 Nick Kledzik <kledzik@apple.com> | |
172 | ||
173 | <rdar://problem/5182537> need way for ld and dyld to see different exported symbols in a dylib | |
174 | * src/MachOReaderDylib.hpp: update parse and use $ld$ symbols | |
175 | * src/Options.h: move VersionMin to ReaderOptions | |
176 | * src/ObjectFile.h: move VersionMin to ReaderOptions | |
177 | * src/Options.cpp: move VersionMin to ReaderOptions | |
178 | * src/MachOWriterExecutable.hpp: move VersionMin to ReaderOptions | |
179 | * unit-tests/test-cases/symbol-moving: added test case | |
180 | ||
181 | ||
182 | 2007-05-03 Nick Kledzik <kledzik@apple.com> | |
183 | ||
184 | <rdar://problem/5181105> typo in error message for linking -pie | |
185 | * src/MachOWriterExecutable.hpp: fix typo in error messages | |
186 | ||
187 | ||
188 | ----- Tagged ld64-74 | |
189 | ||
190 | 2007-05-03 Nick Kledzik <kledzik@apple.com> | |
191 | ||
192 | <rdar://problem/5171880> ld64 can't find @executable _path relative dylibs from our umbrella frameworks | |
193 | <rdar://problem/4019497> ld64 should handle linking against dylibs that have @loader_path based dylib load commands | |
194 | * src/ObjectFile.h: add from parameter to findDylib() | |
195 | * src/MachOReaderDylib.hpp: supply from parameter to findDylib() | |
196 | * src/ld.cpp: use from parameter for @loader_path substitution in findDylib() | |
197 | * unit-tests/test-cases/re-export-relative-paths: added test case | |
198 | ||
199 | ||
200 | 2007-05-02 Nick Kledzik <kledzik@apple.com> | |
201 | ||
202 | * src/ObjectFile.h: add fLogObjectFiles and fLogAllFiles | |
203 | * src/Options.cpp: hook up -t to fLogAllFiles and -whatsloaded to fLogObjectFiles | |
204 | * src/MachOReaderDylib.hpp: log if fLogAllFiles | |
205 | * src/MachOReaderRelocatable.hpp: log if fLogObjectFiles or fLogAllFiles | |
206 | * src/MachOReaderArchive.hpp: log if fLogAllFiles | |
207 | * doc/man/man1/ld.1: update man page | |
208 | ||
209 | ||
210 | 2007-05-02 Nick Kledzik <kledzik@apple.com> | |
211 | ||
212 | <rdar://problem/5177848> typo in message, frameowrk | |
213 | * src/Options.cpp: fix typo | |
214 | ||
215 | ||
216 | 2007-05-01 Nick Kledzik <kledzik@apple.com> | |
217 | ||
218 | <rdar://problem/4977301> "ld" man page is missing the description for many options | |
219 | * doc/man/man1/ld.1: add documentation on all obsolete options | |
220 | ||
221 | ||
222 | 2007-05-01 Nick Kledzik <kledzik@apple.com> | |
223 | ||
224 | <rdar://problem/5113424> ld doesn't handle -mlong-branch .o files that have had local symbols stripped | |
225 | <rdar://problem/4965359> warning about dwarf line info with -mlong-branch | |
226 | * src/MachOReaderRelocatable.hpp: don't lop -mlong-branch stubs off end of functions | |
227 | * src/MachOWriterExecutable.hpp: allow code references besides BR24 to be stubable | |
228 | ||
229 | ||
230 | 2007-04-30 Nick Kledzik <kledzik@apple.com> | |
231 | ||
232 | <rdar://problem/5065659> unable to link VTK because __textcoal_nt too large | |
233 | * src/MachOReaderRelocatable.hpp: when doing a final link map __textcoal_nt to __text | |
234 | ||
235 | ||
236 | 2007-04-30 Nick Kledzik <kledzik@apple.com> | |
237 | ||
238 | <rdar://problem/5062685> ld does not report error when -r is used and exported symbols are not defined. | |
239 | <rdar://problem/4637139> ld leaves global common symbols not in exported symbols list. | |
240 | * src/ld.cpp: stop special casing -r mode in checkUndefines() | |
241 | * src/MachOWriterExecutable.hpp: don't create proxy atom in -r mode if it is supposed to be exported. | |
242 | mark tentative definitions are private extern in -r mode even without -keep_private_externs | |
243 | * unit-tests/test-cases/exported_symbols_list-r: added test case | |
244 | ||
245 | ||
246 | 2007-04-27 Nick Kledzik <kledzik@apple.com> | |
247 | ||
248 | <rdar://problem/5137732> ld should keep looking when it finds a weak definition in a dylib | |
249 | * src/ld.cpp: modified addJustInTimeAtoms() to keep looking when a weak defintion is found | |
250 | * unit-tests/test-cases/weak-def-ordinal: added test case | |
251 | ||
252 | ||
253 | 2007-04-27 Nick Kledzik <kledzik@apple.com> | |
254 | ||
255 | <rdar://problem/5166572> better error message for indirect dylibs missing required architecture | |
256 | * src/ld.cpp: when loading indirect dylib add path to error messages | |
257 | ||
258 | ||
259 | 2007-04-25 Nick Kledzik <kledzik@apple.com> | |
260 | ||
261 | <rdar://problem/5109373> the i386 slice of dyld does not need __IMPORT segment | |
262 | * src/ObjectFile.h: add fForDyld | |
263 | * src/Options.cpp: set up fForDyld | |
264 | * src/MachOReaderRelocatable.hpp: if fForDyld, change __IMPORT segment to __DATA | |
265 | * src/MachOWriterExecutable.hpp: recognize __DATA/__pointers in dyld as a non-lazy section | |
266 | ||
267 | ||
268 | 2007-04-24 Nick Kledzik <kledzik@apple.com> | |
269 | ||
270 | <rdar://problem/5008421> ppc64: need to make LOCAL indirect symbol table entry for now local symbol | |
271 | * src/MachOWriterExecutable.hpp: use INDIRECT_SYMBOL_LOCAL for any non-global symbol | |
272 | * unit-tests/test-cases/strip_local: update test case | |
273 | ||
274 | ||
275 | 2007-04-24 Nick Kledzik <kledzik@apple.com> | |
276 | ||
277 | <rdar://problem/5150407> ld64 -sectorder and -order_file files don't accept white space following the : | |
278 | * src/Options.cpp: prune white space after colon and before symbol name | |
279 | * unit-tests/test-cases/order_file: update test case to have a space after the colon | |
280 | ||
281 | ||
282 | 2007-04-24 Nick Kledzik <kledzik@apple.com> | |
283 | ||
284 | <rdar://problem/5055233> ld64 corrupts debug symbol table entries, nm doesn't print them | |
285 | * src/MachOWriterExecutable.hpp: properly set ilocalsym in module table | |
286 | ||
287 | ||
288 | 2007-04-24 Nick Kledzik <kledzik@apple.com> | |
289 | ||
290 | <rdar://problem/5066152> support __image_info in __DATA segment for 64-bits | |
291 | * src/MachOReaderRelocatable.hpp: look for new objc info section name too | |
292 | ||
293 | ||
294 | 2007-04-24 Nick Kledzik <kledzik@apple.com> | |
295 | ||
296 | * src/MachOWriterExecutable.hpp: fix -non_global_symbols_strip_list to work with -r | |
297 | * unit-tests/test-cases/local-symbol-partial-stripping: update test case | |
298 | ||
299 | ||
300 | ||
301 | ----- Tagged ld64-73.7 | |
302 | ||
303 | 2007-05-10 Nick Kledzik <kledzik@apple.com> | |
304 | ||
305 | <rdar://problem/5194804> can't use dtrace static probes in x86_64 dylib | |
306 | * src/MachOWriterExecutable.hpp: x86_64:kPointerDiff32 is ok in shared region | |
307 | * unit-tests/test-cases/dtrace-static-probes: update to build dylib too | |
308 | ||
309 | ||
310 | 2007-05-09 Nick Kledzik <kledzik@apple.com> | |
311 | ||
312 | <rdar://problem/5191610> 9A430: using -dead_strip with static dtrace probes causes ld to crash | |
313 | * src/ld.cpp: fix markLive() to look at right name in dtrace probe refernce | |
314 | * unit-tests/test-cases/dtrace-static-probes: added -dead_strip case | |
315 | ||
316 | ||
317 | ----- Tagged ld64-73.6 | |
318 | ||
319 | 2007-04-17 Nick Kledzik <kledzik@apple.com> | |
320 | ||
321 | <rdar://problem/5140897> Add options to do partial stripping of local symbols | |
322 | * src/MachOWriterExecutable.hpp: use fOptions.keepLocalSymbol() | |
323 | * src/Options.cpp: implement -non_global_symbols_no_strip_list and -non_global_symbols_strip_list | |
324 | * src/Options.h: replace stripLocalSymbols() with localSymbolHandling() and keepLocalSymbol() | |
325 | * doc/man/man1/ld.1: document -non_global_symbols_no_strip_list and -non_global_symbols_strip_list | |
326 | * unit-tests/test-cases/local-symbol-partial-stripping: added test case | |
327 | ||
328 | ||
329 | ----- Tagged ld64-73.5 | |
330 | ||
331 | 2007-04-17 Nick Kledzik <kledzik@apple.com> | |
332 | ||
333 | <rdar://problem/5129379> ld64-73.3 XBS logging incorrectly reporting "direct" dynamic libraries | |
334 | * src/ld.cpp: restore direct vs indirect library for LD_TRACE_DYLIBS logging | |
335 | ||
336 | ||
337 | 2007-04-16 Nick Kledzik <kledzik@apple.com> | |
338 | ||
339 | <rdar://problem/5067034> data initialized to a weak imported symbol is missing relocation | |
340 | * src/MachOWriterExecutable.hpp: check for A::kPointerWeakImport in buildExecutableFixups() | |
341 | * unit-tests/test-cases/weak_import: updated test case to catch this problem | |
342 | ||
343 | ||
344 | 2007-04-13 Nick Kledzik <kledzik@apple.com> | |
345 | ||
346 | <rdar://problem/5071047> Support -U | |
347 | * src/MachOWriterExecutable.hpp: create proxies for -U symbols | |
348 | * src/Options.cpp: process -U | |
349 | * src/Options.h: add allowedUndefined() and someAllowedUndefines() | |
350 | * src/ld.cpp: create proxies for -U symbols | |
351 | * doc/man/man1/ld.1: document -U and -undefined options | |
352 | * unit-tests/test-cases/undefined-dynamic-lookup: added test case | |
353 | ||
354 | ||
355 | ----- Tagged ld64-73.4 | |
356 | ||
357 | 2007-04-12 Nick Kledzik <kledzik@apple.com> | |
358 | ||
359 | <rdar://problem/5125280> ld changes needed to support read-only DOF | |
360 | * src/Options.cpp: remove -read_only_dof | |
361 | * src/Options.h: remove fReadOnlyDOFs | |
362 | * src/ld.cpp: only generate read-only DOF sections | |
363 | ||
364 | ||
365 | ----- Tagged ld64-73.3.1 | |
366 | ||
367 | 2007-04-13 Nick Kledzik <kledzik@apple.com> | |
368 | ||
369 | <rdar://problem/5130496> -framework vecLib -framework Accelerate causes bad ordinals | |
370 | * src/MachOWriterExecutable.hpp: fix bug optimizeDylibReferences() when there are two readers with same install name | |
371 | ||
372 | ||
373 | ----- Tagged ld64-73.3 | |
374 | ||
375 | 2007-04-03 Nick Kledzik <kledzik@apple.com> | |
376 | ||
377 | * src/ld.cpp: read-only-dofs should use 32-bit offsets for x86_64 | |
378 | * src/MachOReaderDylib.hpp: if "public" re-export is not marked implict, still mark it as re-exported | |
379 | ||
380 | ||
381 | 2007-04-02 Nick Kledzik <kledzik@apple.com> | |
382 | ||
383 | <rdar://problem/5105971> if replacement file for -dylib_file is missing, warn instead of error | |
384 | * src/ld.cpp: a try/catch to turn -dylib_file error into a warning. | |
385 | * unit-tests/test-cases/dylib_file-missing: add test case | |
386 | * doc/man/man1/ld.1: update man page about -dead_strip_dylibs | |
387 | ||
388 | ||
389 | ----- Tagged ld64-73.2 | |
390 | ||
391 | 2007-03-31 Nick Kledzik <kledzik@apple.com> | |
392 | ||
393 | <rdar://problem/5102873> ld64-73: atom sorting error with duplicate zero sized bss symbols | |
394 | * src/MachOReaderRelocatable.hpp: suppress warning on sorting zero size zero fill atoms | |
395 | ||
396 | 2007-03-31 Nick Kledzik <kledzik@apple.com> | |
397 | ||
398 | <rdar://problem/5102845> ld64-73 fails anything linking with -lm | |
399 | * src/ld.cpp: when processing dylbs that are sylinks ensure that fDylibMap contains all paths | |
400 | * src/MachOWriterExecutable.hpp: when dead stripping dylibs and renumbering ordinals make sure | |
401 | aliases dylib get renumbered too | |
402 | * unit-tests/test-cases/dylib-aliases: added | |
403 | ||
404 | ||
405 | ----- Tagged ld64-73.1 | |
406 | ||
407 | 2007-03-30 Nick Kledzik <kledzik@apple.com> | |
408 | ||
409 | * src/MachOWriterExecutable.hpp: back out use of LC_REEXPORT_DYLIB until rdar://problem/5009909 is in build fleet | |
410 | ||
411 | ||
412 | ----- Tagged ld64-73 | |
413 | ||
414 | 2007-03-30 Nick Kledzik <kledzik@apple.com> | |
415 | ||
416 | <rdar://problem/4175790> ER: -dead_strip_dylibs | |
417 | <rdar://problem/3904828> linker should add implicit load commands for indirectly used public dylibs | |
418 | * src/ObjectFile.h: change dylib reader interface to implictly/explicitlyLinked | |
419 | * src/ld.cpp: use new dylib reader interface | |
420 | * src/Options.h: add deadStripDylibs() | |
421 | * src/Options.cpp: support -dead_strip_dylibs | |
422 | * src/MachOReaderDylib.hpp: use new dylib reader interface | |
423 | * src/MachOWriterExecutable.hpp: remove dylib load commands for unused dylibs and alter ordinals | |
424 | * unit-tests/test-cases/re-export-optimizations: added | |
425 | * unit-tests/test-cases/dead_strip_dylibs: added | |
426 | ||
427 | ||
428 | 2007-03-30 Nick Kledzik <kledzik@apple.com> | |
429 | ||
430 | * src/Options.cpp: enable -lfoo to search for libfoo.so as well as libfoo.dylib, | |
431 | remove seg addr table hack for transitioning to new linker | |
432 | ||
433 | 2007-03-30 Nick Kledzik <kledzik@apple.com> | |
434 | ||
435 | <rdar://problem/5073800> ADOBE XCODE3: Linker is slow with large C++ .o files | |
436 | * src/MachOReaderRelocatable.hpp: the compiler generates stubs to weak functions in the | |
437 | same translation unit. Don't treat those like the spurios stubs to static functions. | |
438 | ||
439 | ||
440 | 2007-03-29 Nick Kledzik <kledzik@apple.com> | |
441 | ||
442 | <rdar://problem/4739044> ld64 should link mach_kernel during xnu builds to support dtrace | |
443 | * src/MachOReaderRelocatable.hpp: To handle duplicate labels properly, rework how atoms sizes are set | |
444 | by iterating through sorted fAtoms rather than fAddrToAtom, . Change default alignment of commons | |
445 | to be the natural alignment of the size rounded up to the closest power of two and max it at 12. | |
446 | Build atoms in reverse symbol table order so that global atoms are constructed before locals. | |
447 | This assures that if there is a global and local label at the same location, the global label | |
448 | will become the atom's name and the local will be an alias. Properly handle a label | |
449 | at the end of a section. Handle R_ABS in relocations. Handle sect-diff relocs with addends. | |
450 | Don't auto-strip 'l' symbols in static executables (mach_kernel). | |
451 | * src/OpaqueSection.hpp: opaque_section now has an ordinal | |
452 | * src/ld.cpp: opaque_section now requires an ordinal | |
453 | * src/ObjectFile.h: add ReaderOptions.fForStatic | |
454 | * src/Options.cpp: set fForStatic when building a static executable | |
455 | * src/MachOWriterExecutable.hpp: add from atom to StubAtom<ppc>. Properly write out i386 | |
456 | sect-diff relocs with addends. properly write out ppc PICbase relocs where pic base | |
457 | is not in the atom. | |
458 | ||
459 | ||
460 | 2007-03-27 Nick Kledzik <kledzik@apple.com> | |
461 | ||
462 | <rdar://problem/5085863> Typo in ld man page (-exported_symbols_list) | |
463 | * doc/man/man1/ld.1: fix typo | |
464 | ||
465 | ||
466 | 2007-03-26 Nick Kledzik <kledzik@apple.com> | |
467 | ||
468 | <rdar://problem/4727750> consider generating LC_UUID from a checksum of the file | |
469 | * src/Options.h: change emitUUID() to getUUIDMode() | |
470 | * src/Options.cpp: support -random_uuid | |
471 | * src/MachOWriterExecutable.hpp: set uuid to be md5 hash of entire output file | |
472 | ||
473 | ||
474 | 2007-03-24 Nick Kledzik <kledzik@apple.com> | |
475 | ||
476 | * src/MachOWriterExecutable.hpp: restructure writeAtoms() to copy all atoms in memory if possible | |
477 | ||
478 | ||
479 | 2007-03-24 Nick Kledzik <kledzik@apple.com> | |
480 | ||
481 | <rdar://problem/5082603> ld -r of stripped .o file can incorrectly merge non-lazy pointers | |
482 | * src/MachOWriterExecutable.hpp: when generating a .o file, non-lazy pointer with target offsets should be | |
483 | encoded as LOCAL in the indirect symbol table | |
484 | * unit-tests/test-cases/stripped-indirect-symbol-table: added test case | |
485 | ||
486 | ||
487 | 2007-03-23 Nick Kledzik <kledzik@apple.com> | |
488 | ||
489 | <rdar://problem/5084564> SWB: ld64-72 errors building with gcc-4.2 | |
490 | * src/MachOReaderDylib.hpp: add curly brackets in switch cases | |
491 | * src/MachOWriterExecutable.hpp: rearrange classes so there are no template specialization forward references | |
492 | ||
493 | ||
494 | 2007-03-23 Nick Kledzik <kledzik@apple.com> | |
495 | ||
496 | * src/ld.cpp: fix -print_statistics when using -dead_strip | |
497 | ||
498 | ||
499 | 2007-03-23 Nick Kledzik <kledzik@apple.com> | |
500 | ||
501 | * src/MachOReaderRelocatable.hpp: generate better names for non-lazy pointers to the interior of atoms | |
502 | ||
503 | ||
504 | 2007-03-16 Nick Kledzik <kledzik@apple.com> | |
505 | ||
506 | * src/MachOWriterExecutable.hpp: speed up ld -r a little by reversing relocs en mas | |
507 | ||
508 | ||
509 | 2007-03-16 Nick Kledzik <kledzik@apple.com> | |
510 | ||
511 | <rdar://problem/4975277> ld Bus Error on missing command line arguments | |
512 | * src/Options.cpp: check next argv[] is not NULL | |
513 | ||
514 | ||
515 | 2007-03-16 Nick Kledzik <kledzik@apple.com> | |
516 | ||
517 | <rdar://problem/4832049> need to be able to order symbols in anonymous namespaces | |
518 | * src/ld.cpp: add logic to do fuzzy matching of symbols with anonymous namespace usage | |
519 | * unit-tests/test-cases/order_file-ans: added test case | |
520 | ||
521 | ||
522 | 2007-03-16 Nick Kledzik <kledzik@apple.com> | |
523 | ||
524 | <rdar://problem/5042552> headerpad_max_install_names deprecated for 64-bit | |
525 | * src/ld.cpp: make sure dylib load command order matches command line order | |
526 | * src/Options.h: add maxMminimumHeaderPad() | |
527 | * src/Options.cpp: add maxMminimumHeaderPad() set by -headerpad_max_install_names | |
528 | * src/src/MachOWriterExecutable.hpp: check maxMminimumHeaderPad() | |
529 | * doc/man/man1/ld.1: update man page about -headerpad_max_install_names | |
530 | ||
531 | ||
532 | 2007-03-16 Nick Kledzik <kledzik@apple.com> | |
533 | ||
534 | <rdar://problem/4592484> Linker returns success although exported symbols are undefined. | |
535 | * src/ld.cpp: turn missing symbols back into an error | |
536 | ||
537 | ||
538 | 2007-03-16 Nick Kledzik <kledzik@apple.com> | |
539 | ||
540 | <rdar://problem/4019497> ld64 should handle linking against dylibs that have @loader_path based dylib load commands | |
541 | * unit-tests/test-cases/loader_path: added test case | |
542 | ||
543 | ||
544 | 2007-03-16 Nick Kledzik <kledzik@apple.com> | |
545 | ||
546 | <rdar://problem/3904828> linker should add implicit load commands for indirectly used public dylibs | |
547 | <rdar://problem/4142277> Indirect libraries should be found using -F and -L options | |
548 | <rdar://problem/4607755> Simplier, generalized way to re-export dylibs: LC_REEXPORT_DYLIB | |
549 | * src/ld.cpp: reworked all dylib processing. Readers can now add the dylib list. | |
550 | * src/Options.h: add findFileUsingPaths() | |
551 | * src/MachOReaderDylib.hpp: look in re-exported children instead of requring linker to do that | |
552 | * src/ObjectFile.h: add processIndirectLibraries(), remove getDependentLibraryPaths() | |
553 | * src/machochecker.cpp: support LC_REEXPORT_DYLIB | |
554 | * src/ExecutableFile.h: simplify DyLibUsed | |
555 | * src/Options.cpp: add findFileUsingPaths(). add new re-export options | |
556 | * src/MachOWriterExecutable.hpp: Use LC_REEXPORT_DYLIB when targetting 10.5 | |
557 | * doc/man/man1/ld.1: updated with new re-export options | |
558 | * unit-tests/test-cases/indirect-path-search: added tests that -F and -L work with indirect dylibs | |
559 | * unit-tests/test-cases/re-export-cases: added tests for all combinations of re-exporting | |
560 | ||
561 | ||
562 | 2007-03-14 Nick Kledzik <kledzik@apple.com> | |
563 | ||
564 | <rdar://problem/4982400> sort external relocations to optimize dyld performance | |
565 | * src/MachOWriterExecutable.hpp: added ExternalRelocSorter | |
566 | * src/machochecker.cpp: verify external relocations are grouped by symbol number | |
567 | * unit-tests/test-cases/external-reloc-sorting: added test case | |
568 | ||
569 | ||
570 | ----- Tagged ld64-72 | |
571 | ||
572 | 2007-03-06 Nick Kledzik <kledzik@apple.com> | |
573 | ||
574 | * src/Options.cpp: ignore .objc_category_name_* symbols in .exp files | |
575 | ||
576 | ||
577 | 2007-03-06 Nick Kledzik <kledzik@apple.com> | |
578 | ||
579 | * src/Options.cpp: stop special casing mach_kernel and instead requre kernel to be built with -new_linker | |
580 | ||
581 | ||
582 | 2007-03-06 Nick Kledzik <kledzik@apple.com> | |
583 | ||
584 | <rdar://problem/5044253> ld64-72 (experimental) is causing DejaGnu test failures | |
585 | * src/MachOWriterExecutable.hpp: add optimizableGOTReferenceKind() to track GOT uses that cannot be optimized | |
586 | ||
587 | ||
588 | 2007-03-06 Nick Kledzik <kledzik@apple.com> | |
589 | ||
590 | <rdar://problem/5026135> minimum header padding should be 32 to allow code signing | |
591 | * src/Options.cpp: initialize fMinimumHeaderPad to 32 | |
592 | * src/MachOWriterExecutable.hpp: better calculation of header padding | |
593 | ||
594 | ||
595 | 2007-03-06 Nick Kledzik <kledzik@apple.com> | |
596 | ||
597 | <rdar://problem/5033206> Linker crashes with -flat_namespace against two-level dylibs that might have re-exports | |
598 | * src/ld.cpp: flat namespace should not allow NULL indirect readers | |
599 | ||
600 | ||
601 | 2007-03-06 Nick Kledzik <kledzik@apple.com> | |
602 | ||
603 | * src/MachOReaderRelocatable.hpp: don't error on S_COALESCED sections with anonymous atoms | |
604 | * src/MachOWriterExecutable.hpp: set MH_PIE bit when linking -pie | |
605 | * ld64.xcodeproj/project.pbxproj: don't echo environment when running unit test | |
606 | ||
607 | ||
608 | 2007-03-01 Nick Kledzik <kledzik@apple.com> | |
609 | ||
610 | * doc/man/man1/ld.1: Add descriptions to all "rarely used options" | |
611 | ||
612 | ||
613 | 2007-03-01 Nick Kledzik <kledzik@apple.com> | |
614 | ||
615 | <rdar://problem/4971033> Remove support for Essential Symbols: Warn about use of -Sp option; remove man page entry | |
616 | * src/Options.cpp: make -Sp obsolete | |
617 | * doc/man/man1/ld.1: make -Sp obsolete | |
618 | ||
619 | ||
620 | 2007-03-01 Nick Kledzik <kledzik@apple.com> | |
621 | ||
622 | <rdar://problem/5040314> Support -pie | |
623 | * src/Options.h: Add positionIndependentExecutable() | |
624 | * src/Options.cpp: Support -pie option to set positionIndependentExecutable() | |
625 | * src/MachOWriterExecutable: if -pie is used, add extra local relocations and error if any | |
626 | absolute addressing is used | |
627 | ||
628 | ||
629 | 2007-03-01 Nick Kledzik <kledzik@apple.com> | |
630 | ||
631 | <rdar://problem/4739044> ld64 should link mach_kernel during xnu builds to support dtrace | |
632 | * src/ld.cpp: Ensure segments are laid out in discovery order. Add support for kAbsoluteSymbol. | |
633 | Warn when merging symbols of different visiblity. Warn when a tentative definition | |
634 | is replaced by one a real definition with a smaller size. Lay out __common section | |
635 | so that ones built with -fno-commons come before regular commons. | |
636 | * src/ObjectFile.h: remove SegmentOffset ivar and getter/setters | |
637 | * src/machochecker.cpp: allow images with no r/w segments | |
638 | * src/MachOReaderRelocatable: Add AbsoluteAtom. Sort tentative definitions by name instead of by size | |
639 | Add support for custom commons alignment. | |
640 | * src/Options.cpp: Fix spurious -sectalign warnings. Don't use ld_classic when linking mach_kernel | |
641 | * src/MachOWriterExecutable.hpp: Support kAbsoluteSymbol atoms. In -r mode, set custom alignment | |
642 | for commons if alignment is not its size. Support global __dtrace_probe labels. | |
643 | * src/ObjectDump.cpp: add support for kAbsoluteSymbol atoms. | |
644 | * unit-tests/test-cases/commons-alignment: Added test case for custom commons alignment | |
645 | * unit-tests/test-cases/absolute-symbol: Added test case for basic absolute symbols | |
646 | * unit-tests/test-cases/segment-order: Added test case that segments lay out in discovery order | |
647 | * unit-tests/test-cases/commons-order: Added test case that commons lay out correctly | |
648 | * unit-tests/test-cases/end-label: Added test case that a label used to mark the end of a section does not | |
649 | get associcated with the next section. | |
650 | ||
651 | ||
652 | 2007-02-23 Nick Kledzik <kledzik@apple.com> | |
653 | ||
654 | <rdar://problem/3965017> gcc-5005: DejaGnu failures due to -frepo | |
655 | * src/ld.cpp: Add quotes to referenced from name to make collect2 and -frepo happy | |
656 | ||
657 | ||
658 | 2007-02-22 Nick Kledzik <kledzik@apple.com> | |
659 | ||
660 | * src/MachOWriterExecutable.hpp: rework how padding after load commands is calculated | |
661 | ||
662 | ||
663 | 2007-02-21 Nick Kledzik <kledzik@apple.com> | |
664 | ||
665 | * src/MachOWriterExecutable.hpp: extend special case of __mh_execute_header to static executables too | |
666 | ||
667 | ||
668 | 2007-02-21 Nick Kledzik <kledzik@apple.com> | |
669 | ||
670 | <rdar://problem/3882294> gcc link map option ( "-M" ) should be redirectable to file | |
671 | * doc/man/man1/ld.1: added -map option description | |
672 | * src/Options.h: added generatedMapPath() | |
673 | * src/Options.cpp: set up generatedMapPath() if -map option is used | |
674 | * src/MachOWriterExecutable.hpp: add writeMap() method to generate map file | |
675 | ||
676 | ||
677 | 2007-02-19 Nick Kledzik <kledzik@apple.com> | |
678 | ||
679 | <rdar://problem/4557734> Implement GOT Load elimination optimization | |
680 | * src/ld.cpp: track size of all atoms and if > 2GB sort large zero-fill atoms to end | |
681 | * src/MachOWriterExecutable.hpp: If image size < 2GB, only generate GOT entries if value must be | |
682 | updatable by dyld. If > 2GB, only eliminate GOT entries to non-zero-fill atoms. Any use | |
683 | of an eliminated GOT entry has its code changed from MOVQ _foo@GOT(%rip) to LEAQ _foo(%rip). | |
684 | * unit-tests/test-cases/large-data: added | |
685 | * unit-tests/test-cases/got-elimination: added | |
686 | ||
687 | ||
688 | ----- Tagged ld64-71.2 | |
689 | ||
690 | 2007-02-13 Nick Kledzik <kledzik@apple.com> | |
691 | ||
692 | <rdar://problem/4995303> new ld ignores -segprot option | |
693 | * src/Options.h: expose customSegmentProtections() | |
694 | * src/Options.cpp: parse -segprot option and populate customSegmentProtections() | |
695 | * src/MachOWriterExecutable.hpp: use customSegmentProtections() | |
696 | ||
697 | ||
698 | 2007-02-13 Nick Kledzik <kledzik@apple.com> | |
699 | ||
700 | <rdar://problem/4988068> i386 -stack_addr doesn't work | |
701 | * src/MachOWriterExecutable.hpp: use correct offset into thread state record | |
702 | ||
703 | ||
704 | ----- Tagged ld64-71.1 | |
705 | ||
706 | 2007-02-07 Nick Kledzik <kledzik@apple.com> | |
707 | ||
708 | * src/ld.cpp: sort __OBJC2 segment to be next to __OBJC segment | |
709 | ||
710 | ||
711 | 2007-02-07 Nick Kledzik <kledzik@apple.com> | |
712 | ||
713 | * src/Options.cpp: change missing -seg_addr_table from an error to a warning | |
714 | ||
715 | ||
716 | 2007-02-06 Nick Kledzik <kledzik@apple.com> | |
717 | ||
718 | <rdar://problem/4977311> Leopard 9A357: -dylib_file broken? | |
719 | * src/MachOWriterExecutable.hpp: remove use of fInstallPathOverride | |
720 | * src/Options.cpp: wire up -dylib_file option | |
721 | * src/Options.h: remove fInstallPathOverride. add fDylibOverrides | |
722 | * src/ld.cpp: check dylibOverrides() for indirect libraries | |
723 | * unit-tests/test-cases/dylib_file: add test case | |
724 | ||
725 | ||
726 | 2007-02-05 Nick Kledzik <kledzik@apple.com> | |
727 | ||
728 | * src/MachOReaderDylib.hpp: don't warn about zero size __image_info sections | |
729 | ||
730 | ||
731 | 2007-02-04 Rick Balocca <rbalocca@apple.com> | |
732 | Enable the failing cases for missing command line arguments | |
733 | ||
734 | 2007-02-04 Rick Balocca <rbalocca@apple.com> | |
735 | Make sure that all .o's are checked by ObjectDump | |
736 | and all macho are checked by machochecker | |
737 | ||
738 | 2007-02-04 Rick Balocca <rbalocca@apple.com> | |
739 | Fix an endian problem with machochecker | |
740 | Fix blank-stubs Makefile | |
741 | ||
742 | ----- Tagged ld64-71 | |
743 | ||
744 | 2007-02-02 Rick Balocca <rbalocca@apple.com> | |
745 | blank-stubs test case: handle the case of a native ppc compile--this | |
746 | sets the subtype, which must be passed to lipo | |
747 | ||
748 | 2007-02-01 Rick Balocca <rbalocca@apple.com> | |
749 | make cpu-sub-types test more robust | |
750 | ||
751 | 2007-02-01 Rick Balocca <rbalocca@apple.com> | |
752 | auto-arch tests were resulting in a false FAILs | |
753 | ||
754 | 2007-02-01 Rick Balocca <rbalocca@apple.com> | |
755 | test cpu-sub-types was resulting in a false FAIL | |
756 | ||
757 | 2007-02-01 Nick Kledzik <kledzik@apple.com> | |
758 | ||
759 | <rdar://problem/4969335> STD:VSC: c99 -o writes to file that does not have write permission | |
760 | * src/MachOWriterExecutable.hpp: check file is writable before using it | |
761 | ||
762 | 2007-02-01 Nick Kledzik <kledzik@apple.com> | |
763 | ||
764 | <rdar://problem/4965743> debug map (N_OSO) timestamps for object files in ranlib archive are incorrect | |
765 | * src/MachOReaderArchive.hpp: parse modTime for .o files out of archive header | |
766 | ||
767 | 2007-01-31 Nick Kledzik <kledzik@apple.com> | |
768 | ||
769 | <rdar://problem/4967535> 9A354: ld -all_load does *NOT* produce the same dSYM as *.o or -u | |
770 | * src/ld.cpp: when using -all_load don't assume that all atoms have same reader | |
771 | * unit-tests/test-cases/dwarf-archive-all_load: added | |
772 | ||
773 | ----- Tagged ld64-70.1 | |
774 | ||
775 | 2007-01-31 Nick Kledzik <kledzik@apple.com> | |
776 | ||
777 | * src/MachOWriterExecutable.hpp: in addObjectRelocs_powerpc() mask scattered r_address to 16-bits | |
778 | ||
779 | ----- Tagged ld64-70 | |
780 | ||
781 | ||
782 | 2007-01-30 Nick Kledzik <kledzik@apple.com> | |
783 | ||
784 | <rdar://problem/4810668> linker should verify GC consistency of modules being linked into library | |
785 | <rdar://problem/4474195> Support cpu-sub-types for ppc | |
786 | * src/ObjectFile.h: Add getObjCConstraint() and getCpuConstraint() | |
787 | * src/MachOReaderRelocatable.hpp: don't make atom for __image_info section, instead parse constaints | |
788 | * src/MachOReaderDylib.hpp: look at __image_info content to get constaints | |
789 | * src/ld.cpp: add updateContraints() and checkObjc() | |
790 | * src/MachOWriterExecutable.hpp: add ObjCInfoAtom to sythesize __image_info content | |
791 | ||
792 | ||
793 | 2007-01-28 Nick Kledzik <kledzik@apple.com> | |
794 | ||
795 | src/*: remove ObjectFile::requiresFollowOnAtom() method | |
796 | ||
797 | ||
798 | 2007-01-28 Nick Kledzik <kledzik@apple.com> | |
799 | ||
800 | src/ld.cpp: enable LLVM_SUPPORT by default | |
801 | src/LLVMReader.hpp: don't use absolute paths for llvm headers and libraries | |
802 | ||
803 | ||
804 | 2007-01-26 Rick Balocca <rbalocca@apple.com> | |
805 | * src/ObjectDump.cpp: The usage() message was incorrect. | |
806 | ||
807 | ||
808 | 2007-01-25 Rick Balocca <rbalocca@apple.com> | |
809 | * unit-tests/test-cases/zero-fill3: It was reporting FAIL on ld64 error return. | |
810 | It should have been checking for non-error return. | |
811 | ||
812 | ||
813 | 2007-01-24 Nick Kledzik <kledzik@apple.com> | |
814 | ||
815 | <rdar://problem/4952297> x86 fast stubs should not cross 64-byte boundries | |
816 | * src/MachOWriterExecutable.hpp: for x86, 64-byte align __jump_table section | |
817 | and make 64-btye crossing stubs be empty entries with indirect symbol table | |
818 | entry of INDIRECT_SYMBOL_ABS | |
819 | ||
820 | ||
821 | 2007-01-19 Nick Kledzik <kledzik@apple.com> | |
822 | ||
823 | * src/Options.h: add readOnlyx86Stubs() | |
824 | * src/Options.cpp: support -read_only_stubs | |
825 | * src/MachOWriterExecutable.hpp: make __IMPORT segment not writable if -read_only_stubs is used | |
826 | ||
827 | ||
828 | 2007-01-16 Eric Christopher <echristo@apple.com> | |
829 | ||
830 | <rdar://problem/4856341> ld64 --help isn't recognized | |
831 | * src/Options.cpp (Options::parse): Support --help and -help. | |
832 | ||
833 | ||
834 | 2007-01-15 Nick Kledzik <kledzik@apple.com> | |
835 | ||
836 | * src/MachOFileAbstraction.hpp: add range checking on macho_scattered_relocation_info::set_r_address() | |
837 | ||
838 | ||
839 | 2007-01-14 Nick Kledzik <kledzik@apple.com> | |
840 | ||
841 | <rdar://problem/4514409> Support wildcards in contents of -exported_symbols_list | |
842 | * src/Options.h: add SetWithWildcards class | |
843 | * src/Options.cpp: add -exported_symbol and -unexported_symbol and use SetWithWildcards | |
844 | * doc/man/man1/ld.1: add -exported_symbol and wildcard explanation | |
845 | * unit-tests/test-cases/exported-symbols-wildcards: added test case | |
846 | ||
847 | ||
848 | 2007-01-10 Nick Kledzik <kledzik@apple.com> | |
849 | ||
850 | <rdar://problem/4868270> [U]SDT probes should use C calling convention | |
851 | * src/Options.cpp: Add -read_only_dof | |
852 | * src/ld.cpp: create __dof section(s) based on probe and isenabled sites | |
853 | * src/MachOReaderRelocatable.hpp: parse new sdt 2.0 probes encoded in .o files | |
854 | * src/MachOWriterExecutable.hpp: handle regenerating dtrace probes into .o files | |
855 | * unit-tests/test-cases/dtrace-static-probes: added test case | |
856 | ||
857 | ||
858 | ----- Tagged ld64-69.8 | |
859 | ||
860 | 2007-01-30 Nick Kledzik <kledzik@apple.com> | |
861 | ||
862 | <rdar://problem/4964508> Support LD_FORCE_NO_SEG_ADDR_TABLE | |
863 | * src/Options.cpp: Support LD_FORCE_NO_SEG_ADDR_TABLE | |
864 | ||
865 | ||
866 | ----- Tagged ld64-69.7 | |
867 | ||
868 | 2007-01-25 Nick Kledzik <kledzik@apple.com> | |
869 | ||
870 | <rdar://problem/4949507> Leopard9A351: CFM Apps Are Broken because CFM glue is missing | |
871 | * src/MachOReaderRelocatable.hpp: check S_ATTR_NO_DEAD_STRIP in dontDeadStrip() | |
872 | ||
873 | ||
874 | ----- Tagged ld64-69.6 | |
875 | ||
876 | 2007-01-24 Nick Kledzik <kledzik@apple.com> | |
877 | ||
878 | <rdar://problem/4947347> LD_TRACE_ARCHIVES should only print out when a .o is actually used from an archive | |
879 | * src/ld.cpp: create and use logArchive() | |
880 | ||
881 | ||
882 | ----- Tagged ld64-69.5 | |
883 | ||
884 | 2007-01-22 Nick Kledzik <kledzik@apple.com> | |
885 | ||
886 | <rdar://problem/4946075> 9A350: can't link ppc programs with ld_classic | |
887 | * src/Options.cpp: Remove support for LD_NO_CLASSIC_LINKER. Add support for -classic_linker | |
888 | ||
889 | ||
890 | ----- Tagged ld64-69.4 | |
891 | ||
892 | 2007-01-17 Nick Kledzik <kledzik@apple.com> | |
893 | ||
894 | <rdar://problem/4925645> QTComponents does not link with ld64 | |
895 | * src/MachOReaderRelocatable.hpp: handle N_RSYM and N_PSYM stabs | |
896 | ||
897 | ||
898 | ----- Tagged ld64-69.3 | |
899 | ||
900 | 2007-01-03 Nick Kledzik <kledzik@apple.com> | |
901 | ||
902 | * src/Options.cpp: If the same dylib is specified twice and the second is specified weak, make it weak | |
903 | ||
904 | ||
905 | ----- Tagged ld64-69.2 | |
906 | ||
907 | 2006-12-18 Nick Kledzik <kledzik@apple.com> | |
908 | ||
909 | <rdar://problem/4889729> -dead_strip without -exported_symbols_list should not strip global functions from archives | |
910 | * src/ld.cpp: when adding a .o file from an archive, add all its global symbols to live roots | |
911 | * unit-tests/test-cases/dead_strip-archive: added | |
912 | ||
913 | ||
914 | 2006-12-18 Nick Kledzik <kledzik@apple.com> | |
915 | ||
916 | <rdar://problem/4889409> flat_namespace main executables do not need to indirect interior references | |
917 | * src/MachOWriterExecutable.hpp: don't indirect references to global symbols in main executables | |
918 | * unit-tests/test-cases/flat-main: updated to test for indirection | |
919 | * unit-tests/test-cases/flat-dylib: added | |
920 | ||
921 | ||
922 | ----- Tagged ld64-69.1 | |
923 | ||
924 | 2006-12-15 Nick Kledzik <kledzik@apple.com> | |
925 | ||
926 | <rdar://problem/4886721> -flat_namespace does not work with -mdynamic-no-pic | |
927 | * src/MachOWriterExecutable.hpp: rework checking for use of ppc absolute addressing to allow them as long as | |
928 | the target is within the same linkage unit. | |
929 | ||
930 | ||
931 | 2006-12-15 Nick Kledzik <kledzik@apple.com> | |
932 | ||
933 | <rdar://problem/4886652> -ObjC should only load .o with .objc_ symbols | |
934 | * src/Options.cpp: remove warning from -ObjC and have it instead set fLoadAllObjcObjectsFromArchives | |
935 | * src/MachOReaderArchive.hpp: when -ObjC is used, preload all .o files from archives that contain .objc_ symbols | |
936 | ||
937 | ||
938 | ----- Tagged ld64-69 | |
939 | ||
940 | 2006-12-13 Nick Kledzik <kledzik@apple.com> | |
941 | ||
942 | <rdar://problem/4879913> prebound interior pointers must be non-zero | |
943 | * src/MachOWriterExecutable.hpp: in fixUpReference_powerpc() set lazy pointers bound to with the dylib to | |
944 | their target value. Properly set REFERENCE_FLAG_UNDEFINED_* flags in reference table and n_desc | |
945 | ||
946 | ||
947 | 2006-12-09 Nick Kledzik <kledzik@apple.com> | |
948 | ||
949 | <rdar://problem/4868738> ld64 fails to detect error that ld_classic does | |
950 | * src/MachOWriterExecutable.hpp: check for absolute reloc to an external symbol | |
951 | * src/MachOReaderRelocatable.hpp: ignore -mlong-branch stubs in .o files | |
952 | ||
953 | ||
954 | 2006-12-09 Nick Kledzik <kledzik@apple.com> | |
955 | ||
956 | <rdar://problem/4874209> symbols with REFERENCED_DYNAMICALLY should never be stripped | |
957 | * src/MachOWriterExecutable.hpp: update Writer<A>::shouldExport() to check for kSymbolTableInAndNeverStrip | |
958 | * unit-tests/test-cases/main-stripped: add test that dynamically referenced symbol cannot be stripped | |
959 | ||
960 | ||
961 | 2006-12-08 Nick Kledzik <kledzik@apple.com> | |
962 | ||
963 | * unit-tests/test-cases/allowable-client: add variant test cases (e.g. CoreServices_profile) | |
964 | * src/ld.cpp: allow frameworks with variant install names (e.g. CoreServices_profile) to be private clients | |
965 | ||
966 | ||
967 | 2006-12-08 Nick Kledzik <kledzik@apple.com> | |
968 | ||
969 | * doc/man/man1/ld.1: rewrite man page | |
970 | * src/Options.h: add warnObsolete() | |
971 | * src/Options.cpp: use warnObsolete() on many options. Make nonWeak the weak-mis-match default. | |
972 | Make -ObjC mean -all_load. | |
973 | ||
974 | ----- Tagged ld64-68.3 | |
975 | ||
976 | 2006-12-05 Nick Kledzik <kledzik@apple.com> | |
977 | ||
978 | * src/ld.cpp: allow umbrella frameworks to have variant install names (e.g. CoreServices_profile) and still link | |
979 | ||
980 | ||
981 | ----- Tagged ld64-68.2 | |
982 | ||
983 | 2006-12-05 Nick Kledzik <kledzik@apple.com> | |
984 | ||
985 | * src/MachOWriterExecutable.cpp: Use N_PBUD in the symbol table for undefined symbols in prebound dylibs | |
986 | ||
987 | ||
988 | ----- Tagged ld64-68.1 | |
989 | ||
990 | 2006-12-01 Nick Kledzik <kledzik@apple.com> | |
991 | ||
992 | * src/Options.cpp: always generate module tables for 32-bit architectures so that ld_classic | |
993 | can link against them | |
994 | ||
995 | ||
996 | ----- Tagged ld64-68 | |
997 | ||
998 | 2006-12-01 Nick Kledzik <kledzik@apple.com> | |
999 | ||
1000 | <rdar://problem/4858299> seg_addr_table needs matching fuzziness | |
1001 | * src/Options.cpp: special case a how a dozen dylib are looked up in the seg_addr_table | |
1002 | ||
1003 | ||
1004 | 2006-12-01 Nick Kledzik <kledzik@apple.com> | |
1005 | ||
1006 | * src/Options.cpp: have all -static links for 32-bit archs roll over to ld_classic unless | |
1007 | LD_NO_CLASSIC_LINKER_STATIC is set. | |
1008 | * unit-tests/bin/make-recursive.pl: set LD_NO_CLASSIC_LINKER_STATIC for unit tests | |
1009 | ||
1010 | ||
1011 | 2006-11-29 Nick Kledzik <kledzik@apple.com> | |
1012 | ||
1013 | <rdar://problem/4855542> ld64-67: QTComponents fails to build | |
1014 | * src/MachOReaderRelocatable.hpp: don't error out when a local non-lazy pointer does not point to a symbol | |
1015 | * unit-tests/test-cases/strip_local: added test case | |
1016 | ||
1017 | ||
1018 | 2006-11-28 Nick Kledzik <kledzik@apple.com> | |
1019 | ||
1020 | <rdar://problem/4433496> Need a way to mark libraries usable by dynamic linker but unusable by static linker | |
1021 | * src/Options.cpp: allow -client_name to be used with main executables | |
1022 | * src/ld.cpp: generalize -allowable_client. Any dylib can now restrict who can link against it. As a convention | |
1023 | linking with -allowable_client '!' will mean no one can statically link with the dylib. It can still be loaded | |
1024 | dynamically, or by any existing clients, but no new clients can link with it. | |
1025 | * unit-tests/test-cases/allowable-client/Makefile: enable previously commented out test cases. Add test cases | |
1026 | of a dylib that allows no clients and just one client | |
1027 | ||
1028 | 2006-11-27 Nick Kledzik <kledzik@apple.com> | |
1029 | ||
1030 | <rdar://problem/4795615> -final_output should be used if -install_name not used | |
1031 | * src/Options.cpp: fall back to using -final_output for install name | |
1032 | ||
1033 | ||
1034 | ----- Tagged ld64-67 | |
1035 | ||
1036 | 2006-11-17 Nick Kledzik <kledzik@apple.com> | |
1037 | ||
1038 | * src/MachOWriterExecutable.hpp: support __IMPORT segment being slide independently of __DATA segment in shared cache | |
1039 | ||
1040 | ||
1041 | 2006-11-16 Nick Kledzik <kledzik@apple.com> | |
1042 | ||
1043 | <rdar://problem/4838262> 9a303: ld -filelist Bus Error | |
1044 | * src/Options.cpp: add check that -filelist is followed by an argument | |
1045 | ||
1046 | ||
1047 | 2006-11-16 Nick Kledzik <kledzik@apple.com> | |
1048 | ||
1049 | * src/MachOWriterExecutable.hpp: when building split-seg dylibs, LINKEDIT goes in read-only side | |
1050 | ||
1051 | ||
1052 | 2006-11-15 Nick Kledzik <kledzik@apple.com> | |
1053 | ||
1054 | * src/MachOWriterExecutable.hpp: set proper attributes for __eh_frame in ld -r mode | |
1055 | * unit-tests/test-cases/eh_frame: added test case | |
1056 | ||
1057 | ||
1058 | 2006-11-10 Nick Kledzik <kledzik@apple.com> | |
1059 | ||
1060 | * src/MachOReaderRelocatable.hpp: redirect references to static weak stubs to the real target | |
1061 | ||
1062 | ||
1063 | 2006-11-09 Nick Kledzik <kledzik@apple.com> | |
1064 | ||
1065 | * src/MachOWriterExecutable.hpp: r_address is offset from first LC_SEGMENT vmaddr - not from segment with lowest address | |
1066 | ||
1067 | ||
1068 | ----- Tagged ld64-66.1 | |
1069 | ||
1070 | 2006-11-09 Nick Kledzik <kledzik@apple.com> | |
1071 | ||
1072 | * src/MachOWriterExecutable.hpp: initialize fModuleInfoAtom to zero | |
1073 | ||
1074 | ||
1075 | 2006-11-08 Nick Kledzik <kledzik@apple.com> | |
1076 | ||
1077 | <rdar://problem/4821985> FSF GCC's libjava doesn't link with Ochre ld64 | |
1078 | * src/MachOReaderRelocatable.hpp: ignore debug_line section if debug_info section is missing or empty | |
1079 | ||
1080 | ----- Tagged ld64-66 | |
1081 | ||
1082 | 2006-11-07 Nick Kledzik <kledzik@apple.com> | |
1083 | ||
1084 | <rdar://problem/4824368> SWB: d64-65 does not built usage split-seg dylibs | |
1085 | * src/MachOWriterExecutable.hpp: when prebinding split-seg correctly set r_address fields and on | |
1086 | disk values for external relocations | |
1087 | * unit-tests/test-cases/prebound-split-seg: added test case | |
1088 | ||
1089 | ||
1090 | 2006-11-03 Nick Kledzik <kledzik@apple.com> | |
1091 | ||
1092 | * src/MachOReaderDylib.hpp: don't report dependent libraries if MH_NO_REEXPORTED_DYLIBS bit is set | |
1093 | * src/MachOWriterExecutable.hpp: set MH_NO_REEXPORTED_DYLIBS bit if dylib does not logically re-export any other dylibs | |
1094 | * unit-tests/test-cases/re-export-flag: added test case | |
1095 | * src/machochecker.cpp: validate use of MH_NO_REEXPORTED_DYLIBS | |
1096 | ||
1097 | ||
1098 | 2006-11-02 Nick Kledzik <kledzik@apple.com> | |
1099 | ||
1100 | <rdar://problem/4814565> Mysterious messages from ld64 with MACOSX_DEPLOYMENT_TARGET = 10.5 | |
1101 | * src/MachOWriterExecutable.hpp: kPointerWeakImport is a valid reference type to cross segments | |
1102 | ||
1103 | ||
1104 | 2006-11-02 Nick Kledzik <kledzik@apple.com> | |
1105 | ||
1106 | * src/Options.cpp,h: Add support for -rpath | |
1107 | * src/MachOFileAbstraction.hpp: add macho_rpath_command | |
1108 | * src/MachOWriterExecutable.hpp: add RPathLoadCommandsAtom to create LC_RPATH for each -rpath | |
1109 | ||
1110 | ||
1111 | ----- Tagged ld64-65 | |
1112 | ||
1113 | 2006-10-30 Nick Kledzik <kledzik@apple.com> | |
1114 | ||
1115 | <rdar://problem/4729162> x86_64 default stack_addr is wrong | |
1116 | * src/Options.cpp: change default 64-bit stack location when using -stack_size | |
1117 | ||
1118 | ||
1119 | 2006-10-30 Nick Kledzik <kledzik@apple.com> | |
1120 | ||
1121 | <rdar://problem/4474316> dylibs need modules for 10.3 and for ld_classic in Salt | |
1122 | * src/MachOWriterExecutable.hpp: add ModuleInfoLinkEditAtom to create module table stuff | |
1123 | * src/Options.cpp,h: Add needsModuleTable() | |
1124 | * src/MachOFileAbstraction.hpp: Add macho_dylib_module, macho_dylib_reference, and macho_dylib_table_of_contents | |
1125 | ||
1126 | ||
1127 | 2006-10-27 Nick Kledzik <kledzik@apple.com> | |
1128 | ||
1129 | * unit-tests/test-cases/no-uuid/Makefile: add -gstabs+ to be compatible with latest compiler | |
1130 | * unit-tests/test-cases/stabs-coalesce/Makefile: add -gstabs+ to be compatible with latest compiler | |
1131 | ||
1132 | ||
1133 | 2006-10-26 Nick Kledzik <kledzik@apple.com> | |
1134 | ||
1135 | <rdar://problem/4585230> i386 -mdynamic-no-pic switch statement jump table is out of line | |
1136 | * src/MachOWriterExecutable.hpp: for i386 don't check for direct references to weak symbols | |
1137 | ||
1138 | ||
1139 | 2006-10-26 Devang Patel <dpatel@apple.com> | |
1140 | ||
1141 | * src/LLVMReader.hpp: Supply final output file path to optimizer. | |
1142 | ||
1143 | 2006-10-26 Devang Patel <dpatel@apple.com> | |
1144 | ||
1145 | * src/ObjectFile.h: Make setSection* methods virtual. | |
1146 | * src/LLVMReader.hpp: Override setSection* methods. | |
1147 | ||
1148 | 2006-10-26 Devang Patel <dpatel@apple.com> | |
1149 | ||
1150 | * unit-tests/test-case/llvm-integration/a13.h: New. | |
1151 | * unit-tests/test-case/llvm-integration/a13.cc: New. | |
1152 | * unit-tests/test-case/llvm-integration/main13.cc: New. | |
1153 | ||
1154 | 2006-10-26 Devang Patel <dpatel@apple.com> | |
1155 | ||
1156 | * src/options.h, src/options.cpp: Add -save-temps command line option. | |
1157 | * src/LLVMReader.hpp: Use saveTemps option. | |
1158 | ||
1159 | ||
1160 | 2006-10-26 Devang Patel <dpatel@apple.com> | |
1161 | ||
1162 | * src/LLVMReader.hpp: Remove invalid module from memory. | |
1163 | ||
1164 | 2006-10-26 Devang Patel <dpatel@apple.com> | |
1165 | ||
1166 | * src/LLVMReader.hpp: Collect symbol alignment info from LLVM optimizer. | |
1167 | ||
1168 | 2006-10-21 Eric Christopher <echristo@apple.com> | |
1169 | ||
1170 | * src/ld.cpp (Linker::Linker): Check for LD_NO_CLASSIC_LINKER before | |
1171 | invoking ld_classic. | |
1172 | * unit-tests/test-cases/relocs-literals/Makefile: Run for -mdynamic-no-pic | |
1173 | and pic. | |
1174 | * unit-tests/test-cases/static-executable/Makefile: Skip for 64-bit. Add | |
1175 | -dead_strip to command line. | |
1176 | ||
1177 | ----- Tagged ld64-64.2 | |
1178 | ||
1179 | 2006-10-19 Nick Kledzik <kledzik@apple.com> | |
1180 | ||
1181 | * ld64.xcodeproj/project.pbxproj: stop copying LLVMReader.hpp into man1 directory | |
1182 | ||
1183 | ----- Tagged ld64-64.1 | |
1184 | ||
1185 | 2006-10-19 Nick Kledzik <kledzik@apple.com> | |
1186 | ||
1187 | <rdar://problem/4791643> ld64-63.1 erroneously coalesces an empty string with a non-empty string | |
1188 | * src/MachOReaderRelocatable.hpp: rework cstring parsing to not assume all strings are start | |
1189 | at section alignment boundaries, and when coalescing empty strings always use one with greatest | |
1190 | alignment requirement | |
1191 | * src/MachOWriterExecutable.hpp: in -r mode, don't pad end of cstring section | |
1192 | * src/ObjectFile.h: correctly name leadingZeros() as trailingZeros() | |
1193 | * src/ld.cpp: leadingZeros() --> trailingZeros() | |
1194 | ||
1195 | ||
1196 | 2006-10-18 Eric Christopher <echristo@apple.com> | |
1197 | ||
1198 | * unit-tests/test-cases/read-only-relocs/Makefile: Skip for x86_64. | |
1199 | * unit-tests/test-cases/llvm-integration/Makefile: Skip if llvm isn't | |
1200 | present. | |
1201 | ||
1202 | 2006-10-18 Nick Kledzik <kledzik@apple.com> | |
1203 | ||
1204 | <rdar://problem/4783853> ld64 change required to go with assembler cstring change | |
1205 | <rdar://problem/4732996> ld64 should error when a local relocation references an address outside its section | |
1206 | * src/MachOReaderRelocatable.hpp: for x86_64 in order to work with local or external relocations to cstrings | |
1207 | change parser to allow atoms with a pending name that is resolved after references are instantiated. | |
1208 | Make direct references to kRegularDefinition atoms. | |
1209 | * src/MachOWriterExecutable.hpp: in -r mode for x86_64 generate L* labels for cstrings and use external relocations | |
1210 | * unit-tests/test-cases/relocs-literals/test.c: add two cases of cstring literal plus addend | |
1211 | ||
1212 | ||
1213 | 2006-10-06 Nick Kledzik <kledzik@apple.com> | |
1214 | ||
1215 | <rdar://problem/4786250> check MACOSX_DEPLOYMENT_TARGET if -macosx_version_min is not used | |
1216 | * src/Options.cpp: if -macosx_version_min is not used, check MACOSX_DEPLOYMENT_TARGET, if | |
1217 | that is unused, default to 10.5 | |
1218 | ||
1219 | ----- Tagged ld64-64 | |
1220 | ||
1221 | 2006-10-06 Nick Kledzik <kledzik@apple.com> | |
1222 | ||
1223 | <rdar://problem/4756806> crash in ppc64 program - bl to saveFP, but saveFP is too far away? | |
1224 | * src/MachOWriterExecutable.hpp: in addPPCBranchIslands(), properly account for growth of __text | |
1225 | ||
1226 | ||
1227 | 2006-10-06 Nick Kledzik <kledzik@apple.com> | |
1228 | ||
1229 | <rdar://problem/4769120> Linker-defined alias converts reference into definition and generates error. | |
1230 | * src/MachOReaderRelocatable.hpp: only alias symbols actually in the symbol table | |
1231 | ||
1232 | ||
1233 | 2006-10-06 Nick Kledzik <kledzik@apple.com> | |
1234 | ||
1235 | * unit-tests/test-cases/dwarf-debug-notes/Makefile: crt1.o no longer has stabs, so don't need to strip it | |
1236 | * unit-tests/test-cases/dwarf-debug-notes-r/Makefile: crt1.o no longer has stabs, so don't need to strip it | |
1237 | ||
1238 | ||
1239 | 2006-10-06 Nick Kledzik <kledzik@apple.com> | |
1240 | ||
1241 | * src/MachOReaderRelocatable.hpp: rework dwarf line parsing to fix warnings that starting | |
1242 | showing up with gcc-5421 | |
1243 | ||
1244 | ||
1245 | 2006-10-05 Eric Christopher <echristo@apple.com> | |
1246 | ||
1247 | <rdar://problem/4760935> ld64 needs to support libtool options | |
1248 | * src/Options.cpp (Options::parse): Add -noall_load, -install_name, | |
1249 | -current_version and -compatibility_version. | |
1250 | ||
1251 | 2006-10-03 Eric Christopher <echristo@apple.com> | |
1252 | ||
1253 | * src/Options.cpp (Options::gotoClassicLinker): Use execvp | |
1254 | to call ld_classic. | |
1255 | ||
1256 | 2006-10-03 Eric Christopher <echristo@apple.com> | |
1257 | ||
1258 | * unit-tests/test-cases/tentative-to-real/Makefile: Clean up after tests. | |
1259 | ||
1260 | 2006-10-03 Eric Christopher <echristo@apple.com> | |
1261 | ||
1262 | * unit-tests/include/common.makefile (VALID_ARCHS): Add x86_64. | |
1263 | (OTOOL): Remove munging based on ARCH. | |
1264 | ||
1265 | 2006-09-29 Nick Kledzik <kledzik@apple.com> | |
1266 | ||
1267 | <rdar://problem/4743925> problem merging .o files built with and without -fno-common | |
1268 | src/Options.*: make MakeTentativeDefinitionsReal a reader option | |
1269 | src/ObjectFile.h: make MakeTentativeDefinitionsReal a reader option | |
1270 | src/MachOWriterExecutable.hpp: make MakeTentativeDefinitionsReal a reader option | |
1271 | src/MachOReaderRelocatable.hpp: only assign a section name of __common to | |
1272 | tentative defintions when making a final linked image | |
1273 | ||
1274 | ||
1275 | 2006-09-28 Nick Kledzik <kledzik@apple.com> | |
1276 | ||
1277 | src/Options.h/.cpp: add support for -segaddr option | |
1278 | src/MachOWriterExecutable.hpp: In Writer::assignFileOffsets(), use -segaddr info | |
1279 | ||
1280 | ||
1281 | 2006-09-28 Nick Kledzik <kledzik@apple.com> | |
1282 | ||
1283 | <rdar://problem/4587349> Emit new CPU subtypes for ppc64 and x86-64 when targeting 10.5 or later | |
1284 | src/MachOWriterExecutable.hpp: set high bit of cpusubtype of 64-bit main executables when targeting 10.5 or later | |
1285 | ||
1286 | ||
1287 | 2006-09-28 Devang Patel <dpatel@apple.com> | |
1288 | ||
1289 | Add LLVM LTO support | |
1290 | src/LLVMReader.hpp: New file. | |
1291 | src/ld.cpp: Add optimization phase. Use LLVM LTO. | |
1292 | unit-tests/test-cases/llvm-integration: New tests. | |
1293 | ||
1294 | 2006-09-27 Nick Kledzik <kledzik@apple.com> | |
1295 | ||
1296 | ld64.xcodeproj/project.pbxproj: remove accidental install of source file into man1 | |
1297 | ||
1298 | ||
1299 | 2006-09-25 Nick Kledzik <kledzik@apple.com> | |
1300 | ||
1301 | src/Architectures.hpp: add kPointerDiff16 for ppc and ppc64 | |
1302 | src/MachOReaderRelocatable.hpp: support kPointerDiff16 | |
1303 | src/MachOWriterExecutable.hpp: support kPointerDiff16 | |
1304 | ||
1305 | ----- Tagged ld64-63.1 | |
1306 | ||
74cfe461 A |
1307 | 2006-09-22 Nick Kledzik <kledzik@apple.com> |
1308 | ||
a61fdf0a A |
1309 | src/MachOWriterExecutable.hpp: include stubs in LC_SEGMENT_SPLIT_INFO |
1310 | ||
1311 | ||
1312 | 2006-09-21 Nick Kledzik <kledzik@apple.com> | |
1313 | ||
1314 | src/Options.cpp: disable split-seg dylibs for 64-bit architectures | |
1315 | ||
1316 | ||
1317 | 2006-09-19 Nick Kledzik <kledzik@apple.com> | |
1318 | ||
1319 | src/MachOReaderRelocatable.hpp: rework __cstring parsing to better handle mixed alignment cstrings | |
1320 | src/MachOWriterExecutable.hpp: in -r mode, make all __cstrings aligned to section alignment | |
1321 | ||
1322 | ||
1323 | 2006-09-19 Nick Kledzik <kledzik@apple.com> | |
1324 | ||
1325 | src/MachOWriterExecutable.hpp: rework encoding of LC_SEGMENT_SPLIT_INFO | |
1326 | ||
1327 | ||
1328 | 2006-09-19 Nick Kledzik <kledzik@apple.com> | |
1329 | ||
1330 | src/Options.cpp: check for -search_paths_first in first pass | |
1331 | ||
1332 | ||
1333 | ----- Tagged ld64-63 | |
1334 | ||
1335 | 2006-09-15 Nick Kledzik <kledzik@apple.com> | |
1336 | ||
1337 | src/Options.cpp: since the ld64 will repeatedly search an archive, and some project list archives | |
1338 | multiple times on command line to work with traditional linkers, automatically ignore duplicate libraries | |
1339 | unit-tests/test-cases/archive-duplicate: added test case | |
1340 | ||
1341 | ||
1342 | 2006-09-15 Nick Kledzik <kledzik@apple.com> | |
1343 | ||
1344 | src/Options.cpp: support -r -static | |
1345 | src/MachOWriterExecutable.hpp: support -r -static an don't generate LC_DYSYMTAB | |
1346 | ||
1347 | ||
1348 | 2006-09-14 Nick Kledzik <kledzik@apple.com> | |
1349 | ||
1350 | src/MachOWriterExecutable.hpp: in -r mode references to weak symbols should not create external relocations | |
1351 | as that can cause nmedit to errror later. | |
1352 | ||
1353 | ||
1354 | 2006-09-13 Nick Kledzik <kledzik@apple.com> | |
1355 | ||
1356 | <rdar://problem/4718189> ld64: Handle .objc_class_name exports specially | |
1357 | src/Options.cpp: add hack so that .objc_class_name_XXX in -exported_symbols_list imples _OBJC_CLASS_$_XXX | |
1358 | src/ld.cpp: add hack to supporess errors about .objc_class_name_XXX or _OBJC_CLASS_$_XXX being undefined | |
1359 | ||
1360 | ||
1361 | 2006-09-12 Nick Kledzik <kledzik@apple.com> | |
1362 | ||
1363 | <rdar://problem/4474172> Support -prebind when targeting ppc and OS < 10.4 | |
1364 | src/Options.h: add splitSeg() and baseWritableAddress() | |
1365 | src/Options.cpp: Add support for -seg_addr_table and LD_SEG_ADDR_TABLE, and -prebind and LD_PREBIND. | |
1366 | src/src/MachOWriterExecutable.hpp: support split-seg and canonical prebound files to be generated | |
1367 | ||
1368 | ||
1369 | 2006-09-11 Nick Kledzik <kledzik@apple.com> | |
1370 | ||
1371 | <rdar://problem/4464904> Linking a dylib or binary from identical binaries should produce the same output | |
1372 | src/MachOWriterExecutable.hpp: set the timestamps to be constant | |
1373 | ||
1374 | ||
1375 | 2006-09-11 Nick Kledzik <kledzik@apple.com> | |
1376 | ||
1377 | <rdar://problem/4070025> Linker support for ordering all sections and symbols | |
1378 | src/Options.cpp: Add -order_file_statistics. Allow architecture prefixes in order files | |
1379 | src/ld.cpp: Use fOptions.printOrderFileStatistics() | |
1380 | ||
74cfe461 | 1381 | |
a61fdf0a A |
1382 | 2006-09-11 Nick Kledzik <kledzik@apple.com> |
1383 | ||
1384 | <rdar://problem/3894079> Support -sectorder | |
1385 | unit-tests/test-cases/order_file: added test case | |
1386 | src/ld.cpp: Implement order file support in Linker::sortAtoms() | |
1387 | src/Options.h: add Options.orderedSymbols() | |
1388 | src/Options.cpp: add parseOrderFile(), implement -order_file | |
1389 | ||
1390 | ||
1391 | 2006-09-07 Nick Kledzik <kledzik@apple.com> | |
1392 | ||
1393 | <rdar://problem/4637023> need -i for 64-bit (or equivalent) | |
1394 | <rdar://problem/4014529> Support -i for aliasing exported symbols | |
1395 | unit-tests/test-cases/alias-objects: added | |
1396 | unit-tests/test-cases/alias-command-line: added | |
1397 | src/ObjectFile.h: Added Atom::getOrdinal() as new way to sort atoms. Added ReaderOptions.fAliases | |
1398 | src/MachOReaderRelocatable.hpp: Added SymbolAliasAtom to handle multiple symbols to same address | |
1399 | src/MachOReaderArchive.hpp: implement Atom::getOrdinal() to space out atom ordinals across member objects | |
1400 | src/Options.cpp: support -i, -alias, -alias_list. Move search of /Network/Library/Frameworks to after /System/Library/Frameworks | |
1401 | src/MachOWriterExecutable.hpp: pad out seg_info data. Implement getOrdinal(). | |
1402 | src/ObjectDump.cpp: call constructors directly instead of using make() wrapper | |
1403 | ||
1404 | ||
1405 | 2006-09-01 Nick Kledzik <kledzik@apple.com> | |
1406 | ||
1407 | <rdar://problem/4458878> Need the ability to tag libraries/plug-ins with security attributes | |
1408 | src/MachOReaderDylib.hpp: add warning if using -root_safe or -setuid_safe and link against dylib that is not | |
1409 | src/ObjectFile.h: add ReaderOption fRootSafe and fSetuidSafe | |
1410 | src/Options.cpp: handle -root_safe or -setuid_safe command line options | |
1411 | src/MachOWriterExecutable.hpp: set MH_ROOT_SAFE and MH_SETUID_SAFE flags | |
1412 | ||
1413 | ||
1414 | 2006-08-31 Nick Kledzik <kledzik@apple.com> | |
1415 | ||
1416 | src/ld.cpp: Add Linker::processDTrace() for processing dtrace static probes | |
1417 | src/OpaqueSection.hpp: renamed, add symbol name, add ability to add references | |
1418 | ld64.xcodeproj/project.pbxproj: remove SectCreate.cpp, add OpaqueSection.hpp | |
1419 | ||
1420 | ||
1421 | 2006-08-28 Nick Kledzik <kledzik@apple.com> | |
1422 | ||
1423 | <rdar://problem/4571042> Add convention for removing symbols at link time | |
1424 | <rdar://problem/3962731> Assembler -L option causes ld64 to split stubs | |
1425 | unit-tests/test-cases/special-labels: added test case | |
1426 | src/MachOReaderRelocatable.hpp: ignore L* labels, make l* labels as kSymbolTableNotIn | |
1427 | ||
1428 | ||
1429 | 2006-08-28 Nick Kledzik <kledzik@apple.com> | |
1430 | ||
1431 | src/lObjectFile.h: refactor isTargetUnbound() into getTargetBinding() | |
1432 | src/ld.cpp: create __dof section in final linked images from dtrace static probes | |
1433 | src/Architectures.hpp: add kDtraceProbe | |
1434 | src/Options.h/cpp: Add support for -dtrace | |
1435 | src/machochecker.cpp: support LC_SEGMENT_SPLIT_INFO | |
1436 | src/MachOWriterExecutable.hpp: support kDtraceProbe | |
1437 | src/MachOReaderRelocatable.hpp: suppport kDtraceProbe | |
1438 | ||
1439 | ||
1440 | 2006-08-25 Nick Kledzik <kledzik@apple.com> | |
1441 | ||
1442 | <rdar://problem/4701529> generate LC_SEGMENT_SPLIT_INFO for 10.5 or later dylibs | |
1443 | src/Options.h&.cpp: implement sharedRegionEligible() to control when LC_SEGMENT_SPLIT_INFO is added | |
1444 | src/MachOFileAbstraction.hpp: add macho_linkedit_data_command | |
1445 | src/MachOWriterExecutable.hpp: generate LC_SEGMENT_SPLIT_INFO load command and linkedit content | |
74cfe461 A |
1446 | |
1447 | ----- Tagged ld64-62 | |
1448 | ||
1449 | 2006-08-15 Nick Kledzik <kledzik@apple.com> | |
1450 | ||
1451 | <rdar://problem/4681062> wrong error message when symbol is found in unused indirect library | |
1452 | src/ld.cpp: remove indirect libraries if they are not re-exported | |
1453 | unit-tests/test-cases/indirect-dylib: added test case | |
1454 | ||
1455 | ||
1456 | 2006-08-15 Nick Kledzik <kledzik@apple.com> | |
1457 | ||
1458 | <rdar://problem/3930461> alignment needs to be richer | |
1459 | src/ObjectFile.h: define ObjectFile::Alignment class for tracking rich alignment info | |
1460 | src/ld.cpp: modify SymbolTable::add() to work with new Alignment type | |
1461 | src/MachOReaderRelocatable.hpp: use new Alignment type. Remove alignAtLeast() and handleAnonymousNonLazyPointers() | |
1462 | src/MachOWriterExecutable.hpp: update for new Alignment type, use modulus when calculating layout address | |
1463 | src/ObjectDump.cpp: print richer Alignment info | |
1464 | unit-tests/test-cases/align-modulus: added test case | |
a61fdf0a | 1465 | |
74cfe461 A |
1466 | |
1467 | 2006-08-11 Nick Kledzik <kledzik@apple.com> | |
1468 | ||
1469 | remove OPEN_SOURCE conditionals around x86_64 support | |
1470 | ||
1471 | ||
1472 | 2006-07-31 Nick Kledzik <kledzik@apple.com> | |
1473 | ||
1474 | <rdar://problem/4654131> ld64 while linking cc1 [ when dead_strip is ON] | |
1475 | src/ld.cpp: Add ivar fAtomsWithUnresolvedReferences to track atoms not initially resolvable | |
1476 | unit-tests/test-cases/dead_strip-archive: added test case | |
a61fdf0a | 1477 | |
74cfe461 A |
1478 | |
1479 | 2006-07-31 Nick Kledzik <kledzik@apple.com> | |
1480 | ||
1481 | <rdar://problem/4656617> x86_64: instructions with immediate and rip-relative operands need to use new relocation types | |
a61fdf0a | 1482 | src/MachOWriterExecutable.hpp: generate new reloc types in -r mode |
74cfe461 A |
1483 | src/MachOReaderRelocatable.hpp: parse new reloc types |
1484 | unit-tests/test-cases/relocs-asm/relocs-asm.s: add test cases for new reloc type | |
a61fdf0a | 1485 | |
74cfe461 A |
1486 | |
1487 | 2006-07-18 Nick Kledzik <kledzik@apple.com> | |
1488 | ||
1489 | src/MachOReaderRelocatable.hpp: suppress warning about dwarf info parsing for one benign no-op case | |
1490 | the compiler emits when there are not functions in the __text section | |
a61fdf0a | 1491 | |
74cfe461 A |
1492 | |
1493 | 2006-07-17 Nick Kledzik <kledzik@apple.com> | |
1494 | ||
a61fdf0a A |
1495 | <rdar://problem/4634840> faster debug note generation |
1496 | src/ld.cpp: rework collectDebugInfo() to produce all debug notes in one pass, intead of a | |
74cfe461 | 1497 | pass per .o file. Added timing info for collectDebugInfo() to -print_statistics |
a61fdf0a | 1498 | unit-tests/test-cases/dwarf-debug-notes-r/Makefile: add expliced -arch to ld -r |
74cfe461 | 1499 | unit-tests/test-cases/dwarf-debug-notes-r/expected-stabs: alter for new debug notes order |
a61fdf0a | 1500 | |
74cfe461 A |
1501 | |
1502 | 2006-07-17 Nick Kledzik <kledzik@apple.com> | |
1503 | ||
1504 | <rdar://problem/4623994> ld64 VSIZE is 1.18GB when building Finder ppc64 | |
1505 | src/ld.cpp: fixed typo in createReader() that prevented dylibs from being unmapped | |
1506 | ||
1507 | ----- Tagged ld64-61.1 | |
86b84c30 A |
1508 | |
1509 | 2006-07-11 Nick Kledzik <kledzik@apple.com> | |
a61fdf0a | 1510 | |
74cfe461 A |
1511 | <rdar://problem/4622049> ld64-61: gcc DejaGnu tests failing due to -arch followed by unknown architecture name |
1512 | src/Options.cpp: map ppc750, ppc7400, ppc7450, and ppc970 to ppc. Improve error message | |
86b84c30 | 1513 | |
74cfe461 | 1514 | 2006-07-11 Nick Kledzik <kledzik@apple.com> |
86b84c30 | 1515 | |
74cfe461 A |
1516 | <rdar://problem/4622769> If -arch is missing, rollover to ld_classic does not happen |
1517 | src/Options.h: make gotoClassicLinker() public | |
1518 | src/ld.cpp: call gotoClassicLinker() if the inferred architecture is ppc or i386 | |
86b84c30 | 1519 | |
74cfe461 | 1520 | ----- Tagged ld64-61 |
86b84c30 | 1521 | |
74cfe461 | 1522 | 2006-06-29 Nick Kledzik <kledzik@apple.com> |
86b84c30 | 1523 | |
74cfe461 A |
1524 | <rdar://problem/4606628> ld64 should be renamed to ld |
1525 | src/Options.cpp: exec() ld_classic if -arch ppc or -arch i386 is seen | |
1526 | src/ld.cpp: alter version string | |
1527 | ld64.xcodeproj/project.pbxproj: change install location to /usr/bin/ld, add symlink from /usr/bin/ld64 | |
1528 | doc/man/man1/ld.1: added | |
a61fdf0a | 1529 | |
74cfe461 A |
1530 | ----- Tagged ld64-60 |
1531 | ||
1532 | 2006-06-28 Nick Kledzik <kledzik@apple.com> | |
a61fdf0a | 1533 | |
74cfe461 A |
1534 | <rdar://problem/4604539> Can't link large ppc64 program: ld64 says "bl out of range" |
1535 | MachOWriterExecutable.hpp: fix branch island generation to work for weak_import functions | |
1536 | and properly chain together branch islands | |
1537 | MachOReaderRelocatable.hpp: improve performance of huge .o file reading by sorted references | |
1538 | only when done | |
86b84c30 A |
1539 | |
1540 | 2006-06-28 Nick Kledzik <kledzik@apple.com> | |
1541 | ||
1542 | <rdar://problem/4603454> MySQL-36 fails to build with ld64-59 | |
74cfe461 A |
1543 | src/MachOReaderRelocatable.hpp: back out fix for 4585335 |
1544 | src/MachOWriterExecutable.hpp: back out fix for 4585335 | |
1545 | ||
1546 | 2006-06-27 Nick Kledzik <kledzik@apple.com> | |
1547 | ||
a61fdf0a A |
1548 | src/MachOReaderRelocatable.hpp: handle N_GSYM without ending :G() since that is how |
1549 | dwarf debug notes are formed. | |
74cfe461 A |
1550 | |
1551 | 2006-06-23 Nick Kledzik <kledzik@apple.com> | |
1552 | ||
1553 | <rdar://problem/4599239 objc class with no superclass causes bad undefined symbol | |
1554 | src/MachOReaderRelocatable.hpp: handle NULL superclass in objc_class | |
1555 | unit-tests/test-cases/relocs-objc/test.m: add case with no super class | |
a61fdf0a | 1556 | |
74cfe461 A |
1557 | |
1558 | 2006-06-23 Nick Kledzik <kledzik@apple.com> | |
1559 | ||
1560 | <rdar://problem/4313369> ld64 doesn't support variant linking -framework fw,_debug | |
1561 | src/Options.cpp: enhance findFramework() to support suffixes | |
86b84c30 | 1562 | |
69a49097 | 1563 | ----- Tagged ld64-59 |
d696c285 | 1564 | |
69a49097 | 1565 | 2006-06-22 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1566 | |
69a49097 | 1567 | <rdar://problem/4596726> ld64 lost DWARF debug notes |
74cfe461 | 1568 | src/MachOReaderRelocatable.hpp: add fHasUUID so kDebugInfoStabsUUID can be set later |
69a49097 | 1569 | unit-tests/test-cases/dwarf-debug-notes-r: added test case |
a61fdf0a | 1570 | |
69a49097 | 1571 | 2006-06-21 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1572 | |
69a49097 A |
1573 | <rdar://problem/4567995> python 64-bit address miscalculation |
1574 | src/MachOReaderRelocatable.hpp: change getTargetOffset() to sign extend the 32-bit value to 64-bits | |
a61fdf0a | 1575 | |
69a49097 | 1576 | 2006-06-21 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1577 | |
69a49097 | 1578 | <rdar://problem/4535036> ld64 seems to offset things incorrectly when using -r |
74cfe461 | 1579 | src/MachOWriterExecutable.hpp: in -r mode, virtual sections should not increment address |
d696c285 | 1580 | |
d696c285 | 1581 | |
69a49097 | 1582 | ----- Tagged ld64-58 |
d696c285 | 1583 | |
69a49097 | 1584 | 2006-06-16 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1585 | |
69a49097 A |
1586 | src/rebase.cpp: fix page alignment problem |
1587 | src/rebase.cpp: fix endianess problem with local non-lazy pointers | |
d696c285 | 1588 | |
69a49097 | 1589 | 2006-06-15 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1590 | |
69a49097 | 1591 | src/rebase.cpp: fix to build in CurryWeed |
a61fdf0a | 1592 | ld64.xcodeproj/project.pbxproj: fix to build properly in CurryWeed |
d696c285 | 1593 | |
69a49097 | 1594 | 2006-06-15 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1595 | |
a61fdf0a | 1596 | <rdar://problem/4495309> Support .objc_class_name_* symbols |
69a49097 A |
1597 | src/ObjectFile.h: Add kSymbolTableInAsAbsolute |
1598 | src/MachOReaderRelocatable.hpp: synthesize references to required objc classes | |
1599 | src/MachOWriterExecutable.hpp: write objc_class_name as absolute symbol | |
1600 | unit-tests/test-cases/objc-references: added | |
d696c285 | 1601 | |
69a49097 | 1602 | 2006-06-15 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1603 | |
69a49097 A |
1604 | <rdar://problem/4484369> SECTION_ATTRIBUTES unset in ppc64 mach-o header |
1605 | src/MachOWriterExecutable.hpp: add section attribute for sections with code | |
d696c285 | 1606 | |
69a49097 | 1607 | 2006-06-15 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1608 | |
69a49097 | 1609 | <rdar://problem/4569407> ld64 bogus duplicate symbol name linking GNU libobjc |
74cfe461 | 1610 | src/MachOReaderRelocatable.hpp: only special case Apple objc runtime objc classes |
d696c285 | 1611 | |
69a49097 | 1612 | 2006-06-15 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1613 | |
69a49097 A |
1614 | <rdar://problem/4582999> x86_64: ".align" directive not honored |
1615 | src/MachOReaderRelocatable.hpp: change code alignment to not depend on atom size | |
d696c285 | 1616 | |
69a49097 | 1617 | 2006-06-14 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1618 | |
69a49097 A |
1619 | <rdar://problem/4585335> jump table into middle of weak symbol causes error |
1620 | src/MachOReaderRelocatable.hpp: create direct references to the interior of weak symbols | |
74cfe461 | 1621 | src/MachOWriterExecutable.hpp: do not error on absolute references to interior of weak symbols |
d696c285 | 1622 | |
69a49097 | 1623 | 2006-06-13 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1624 | |
69a49097 | 1625 | src/Options.cpp: allow -image_base as an alias for -seg1addr |
d696c285 | 1626 | |
69a49097 | 1627 | 2006-06-13 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1628 | |
69a49097 A |
1629 | <rdar://problem/4585115> implement -d |
1630 | src/Options.h: add fMakeTentativeDefinitionsReal | |
1631 | src/Options.cpp: set fMakeTentativeDefinitionsReal if -d option is found | |
1632 | src/MachOWriterExecutable.hpp: turn tentative into real definition if makeTentativeDefinitionsReal | |
1633 | unit-tests/test-cases/btentative-to-real: added test case | |
d696c285 | 1634 | |
69a49097 | 1635 | 2006-06-13 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1636 | |
69a49097 A |
1637 | <rdar://problem/4584355> implement -bundle_loader |
1638 | src/Options.h: add fBundleLoader bit to DynamicLibraryOptions | |
1639 | src/Options.cpp: handle -bundle_loader | |
1640 | src/ld.cpp: pass fBundleLoader bit to MachOReaderDylib | |
1641 | src/MachOReaderDylib.hpp: support reading MH_EXECUTE files if fBundleLoader is set | |
1642 | src/MachOWriterExecutable.hpp: set bundle loader ordinal as EXECUTABLE_ORDINAL | |
1643 | unit-tests/test-cases/bundle_loader: added test case | |
d696c285 | 1644 | |
69a49097 | 1645 | 2006-06-12 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1646 | |
69a49097 A |
1647 | <rdar://problem/4583347> -syslibroot can cause "can't find ordinal for imported" error |
1648 | src/MachOReaderDylib.hpp: in Reader::reExports() compare install path in addition to load path | |
d696c285 | 1649 | |
d696c285 | 1650 | |
69a49097 | 1651 | 2006-06-10 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1652 | |
69a49097 A |
1653 | <rdar://problem/4548935> Need rebasing tool |
1654 | src/rebase.cpp: added | |
1655 | unit-tests/test-cases/rebase-basic: added | |
1656 | doc/man/man1/rebase.1: added | |
1657 | ld64.xcodeproj/project.pbxproj: added rebase target. changed all targets to build with dwarf | |
a61fdf0a | 1658 | |
d696c285 | 1659 | |
69a49097 | 1660 | 2006-06-10 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1661 | |
69a49097 | 1662 | src/machochecker.cpp: add some ppc reloc sanity checking |
d696c285 | 1663 | |
69a49097 | 1664 | ----- Tagged ld64-57 |
d696c285 | 1665 | |
69a49097 | 1666 | 2006-06-06 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1667 | |
69a49097 A |
1668 | <rdar://problem/4565088> ld64 is not adding a final '/' char on the initial directory-name SO stab debug map entry |
1669 | ld.cpp: Change Linker::synthesizeStabs() to assure directory SO always has a trailing slash | |
1670 | unit-tests/test-cases/dwarf-debug-notes/expected-stabs: update with trailing / | |
a61fdf0a | 1671 | |
69a49097 | 1672 | 2006-06-06 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1673 | |
a61fdf0a | 1674 | <rdar://problem/4572702> -sectcreate of a 0-byte section fails |
69a49097 A |
1675 | MachOWriterExecutable.cpp: Don't error out on zero length segments |
1676 | MachOWriterExecutable.cpp: For ppc64 reloc base address is the first writable segment iff | |
1677 | there is a writable segment >4GB from base address | |
d696c285 | 1678 | |
69a49097 | 1679 | 2006-06-04 Eric Christopher <echristo@apple.com> |
d696c285 | 1680 | |
69a49097 A |
1681 | Radar 4560240 |
1682 | Radar 3964999 | |
1683 | * src/ld.cpp (createReader): Fixed error message. | |
1684 | (resolve): Ditto. | |
1685 | (resolveFrom): Ditto. | |
1686 | (checkUndefines): Ditto. | |
d696c285 | 1687 | |
69a49097 | 1688 | ----- Tagged ld64-56 |
d696c285 | 1689 | |
69a49097 | 1690 | 2006-05-23 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1691 | |
69a49097 A |
1692 | <rdar://problem/4558079> No debug notes for ObjC methods when linking with ld64 |
1693 | ld.cpp: don't limit debug notes to functions starting with underscore | |
d696c285 | 1694 | |
69a49097 | 1695 | 2006-05-22 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1696 | |
69a49097 A |
1697 | <rdar://problem/4556982> ld64 spends much time in mach_o::relocatable::Reader<x86_64>::findAtomByName |
1698 | * src/MachOReaderRelocatable.hpp: add makeReferenceToSymbol() so that x86_64 does not need to do by-name lookups | |
d696c285 | 1699 | |
69a49097 | 1700 | 2006-05-22 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1701 | |
69a49097 A |
1702 | <rdar://problem/4535044> remove inferring warning |
1703 | * ld.cpp: Remove "inferring" warning. If a link failed and now arch was specifed add which arch was | |
1704 | inferred to error message | |
d696c285 | 1705 | |
69a49097 | 1706 | 2006-05-19 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1707 | |
69a49097 A |
1708 | <rdar://problem/4544001> ld64 does not honor -arch_multiple |
1709 | * ld.cpp: If fOptions.printArchPrefix(), add architecture name to error message | |
d696c285 | 1710 | |
69a49097 | 1711 | 2006-05-19 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1712 | |
69a49097 A |
1713 | <rdar://problem/4555973> Support S_16BYTE_LITERALS section types |
1714 | * src/MachOReaderRelocatable.hpp: support S_16BYTE_LITERALS | |
1715 | * src/MachOWriterExecutable.hpp: support S_16BYTE_LITERALS | |
d696c285 | 1716 | |
69a49097 | 1717 | 2006-05-19 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1718 | |
69a49097 A |
1719 | <rdar://problem/4548803> "warning can't parse dwarf compilation unit info" warnings building debug |
1720 | * src/MachOReaderRelocatable.hpp: fix bugs in dwarf line table parsing | |
d696c285 | 1721 | |
69a49097 | 1722 | ----- Tagged ld64-55 |
d696c285 | 1723 | |
69a49097 | 1724 | 2006-05-18 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1725 | |
69a49097 A |
1726 | <rdar://problem/4534339> Default the pagezero size to 4GB for x86-64 |
1727 | * src/Options.cpp: Chnage default the pagezero size to 4GB for x86-64 | |
d696c285 | 1728 | |
69a49097 | 1729 | 2006-05-18 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1730 | |
69a49097 A |
1731 | <rdar://problem/4552825> x86_64 CarbonCore fails to link with "atom not found in symbolIndex" |
1732 | * src/MachOWriterExecutable.hpp: in buildObjectFileFixups() don't call addObjectRelocs() on kNoFixUp references | |
d696c285 | 1733 | |
69a49097 | 1734 | 2006-05-18 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1735 | |
69a49097 A |
1736 | <rdar://problem/4553555> ld64: .section defaults to read-only |
1737 | * src/MachOReaderRelocatable.hpp: default unknown segments to r/w | |
d696c285 | 1738 | |
69a49097 | 1739 | 2006-05-18 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1740 | |
69a49097 A |
1741 | <rdar://problem/4551990> -fvisibility=hidden causes crashes for x86_64 |
1742 | * src/MachOWriterExecutable.hpp: properly handle RIP relative tentative definitions | |
d696c285 | 1743 | |
69a49097 | 1744 | 2006-05-12 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1745 | |
69a49097 A |
1746 | * src/Architectures.hpp: add x86::kAbsolute32 |
1747 | * src/MachOReaderRelocatable.hpp: generate x86::kAbsolute32 for mdynamic-no-pic instructions | |
1748 | * src/MachOWriterExecutable.hpp: process x86::kAbsolute32 reference kind | |
d696c285 | 1749 | |
69a49097 | 1750 | ----- Tagged ld64-54 |
d696c285 | 1751 | |
69a49097 | 1752 | 2006-05-11 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1753 | |
69a49097 A |
1754 | <rdar://problem/4545108> CF-393 failes to link for x86_64 |
1755 | * src/MachOWriterExecutable.cpp: fix sign extension for Rel32 relocs in Writer<x86_64>::fixUpReferenceRelocatable | |
d696c285 | 1756 | |
69a49097 | 1757 | 2006-05-11 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1758 | |
69a49097 A |
1759 | <rdar://problem/4501434> warning arch x86_64 not found using i386 |
1760 | * src/ld.cpp: remove hack to allow x86_64 to link against i386 dylibs | |
d696c285 | 1761 | |
d696c285 | 1762 | |
69a49097 | 1763 | 2006-05-10 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1764 | |
69a49097 A |
1765 | <rdar://problem/4543754> x86_64: .objc_class_name symbol names scrambled |
1766 | * src/MachOReaderRelocatable.hpp: properly compute alignment of __OBJC __class sections | |
d696c285 | 1767 | |
d696c285 | 1768 | |
69a49097 | 1769 | 2006-05-08 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1770 | |
69a49097 A |
1771 | <rdar://problem/3894083> Support -dead_strip |
1772 | * src/Options.h/cpp: implement -why_load and -why_live. Enable -dead_strip. | |
1773 | * src/MachOReaderArchive.hpp: implement -why_load | |
1774 | * src/MachOReaderRelocatable.hpp: suppress GCC_except_table* symbols in final output | |
1775 | * src/ld.cpp: implement dead code stripping | |
1776 | * unit-tests/test-cases/dead_strip: added | |
d696c285 | 1777 | |
69a49097 | 1778 | ----- Tagged ld64-53 |
d696c285 | 1779 | |
69a49097 | 1780 | 2006-05-05 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1781 | |
69a49097 | 1782 | * src/Options.cpp: make 10.4 be minimum OS version for newer architectures |
d696c285 | 1783 | |
69a49097 | 1784 | 2006-05-05 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1785 | |
69a49097 A |
1786 | <rdar://problem/4147604> N_SO symbols in 64-bit builds have a zero address for n.n_value |
1787 | * src/ld.cpp: for SO stabs, associate first and last atom in the SO range | |
1788 | * src/MachOWriterExecutable.hpp: use atom associated with SO stab to set ins n_value | |
d696c285 | 1789 | |
69a49097 | 1790 | 2006-05-05 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1791 | |
69a49097 | 1792 | * MachOWriterExecutable.hpp: fix end FUN stab to have length of function |
d696c285 | 1793 | |
d696c285 | 1794 | |
69a49097 | 1795 | 2006-05-02 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1796 | |
69a49097 A |
1797 | <rdar://problem/4496250> 64-bit main executables should have 4GB zero page by default |
1798 | * src/Opptions.cpp: change default pagezero_size to 4GB for ppc64 | |
1799 | <rdar://problem/4492850> 64 bit: apps with -mdynamic-no-pic seg fault when page zero > 4GB | |
1800 | * src/MachOWriterExecutable.cpp: rework pagezero for ppc64 so that if any mdynamic-no-pic code | |
1801 | is found, the code is kept in the low 2GB, and a new segment is create to map away up to 4GB. | |
d696c285 | 1802 | |
69a49097 | 1803 | 2006-05-02 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1804 | |
69a49097 A |
1805 | * src/Opptions.cpp: remove warning about -stack_addr not specified. Add warning if 32-bit stack |
1806 | overlaps shared region | |
d696c285 | 1807 | |
69a49097 | 1808 | ----- Tagged ld64-52.1 |
d696c285 | 1809 | |
69a49097 | 1810 | 2006-05-01 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1811 | |
69a49097 A |
1812 | * src/MachOReaderRelocatable.cpp: rework handleAnonymousNonLazyPointers() to handle anl's in the middle |
1813 | the __data section too. | |
d696c285 | 1814 | |
69a49097 | 1815 | ----- Tagged ld64-52 |
d696c285 | 1816 | |
69a49097 | 1817 | 2006-04-28 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1818 | |
69a49097 A |
1819 | <rdar://problem/4513304> 64-bit: 9A152 TextEdit crashes in dlopen on bring-up |
1820 | * src/MachOReaderRelocatable.cpp: rework anonymous non-lazy-pointer detection | |
d696c285 | 1821 | |
69a49097 | 1822 | 2006-04-28 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1823 | |
69a49097 A |
1824 | <rdar://problem/4528054> 64 Bit: Development build of ppc64 TextEdit gets confused about static variables |
1825 | * src/MachOReaderRelocatable.cpp: mark non-lazy-pointer atoms as scopeTranslationUnit if targetting a static symbol | |
d696c285 | 1826 | |
d696c285 | 1827 | |
a61fdf0a A |
1828 | #ifndef __OPEN_SOURCE__ |
1829 | 2006-04-27 Nick Kledzik <kledzik@apple.com> | |
1830 | ||
1831 | <rdar://problem/4498971> dyld crashes ungracefully on x86_64 when there is an internal exception | |
1832 | * src/MachOWriterExecutable.cpp: allow non-zero PCRELGOT addends (used by C++ eh frames) | |
1833 | #endif | |
d696c285 | 1834 | |
69a49097 | 1835 | 2006-04-21 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1836 | |
69a49097 A |
1837 | * src/Options.cpp: fix default address for ppc64 custom stack |
1838 | * src/MachOWriterExecutable.cpp: fix set up of ppc64 custom stack | |
d696c285 | 1839 | |
d696c285 | 1840 | |
69a49097 | 1841 | 2006-04-14 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1842 | |
69a49097 | 1843 | * src/Options.cpp: fix -sub_library processing to work it dylib is specifed with leaf name |
d696c285 | 1844 | |
69a49097 | 1845 | ----- Tagged ld64-51.1 |
d696c285 | 1846 | |
69a49097 | 1847 | 2006-04-13 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1848 | |
69a49097 A |
1849 | <rdar://problem/4513304> 64-bit: 9A152 TextEdit crashes in dlopen on bring-up |
1850 | * src/MachOReaderRelocatable.hpp: when detecting anonymous non-lazy-pointers disqualify data | |
1851 | that points to static or global symbols | |
1852 | * src/ld.cpp: print version of ld64 in error messages | |
d696c285 | 1853 | |
d696c285 | 1854 | |
69a49097 | 1855 | ----- Tagged ld64-51 |
d696c285 | 1856 | |
69a49097 | 1857 | 2006-04-11 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1858 | |
69a49097 A |
1859 | <rdar://problem/4499168> exported symbols not properly stripped |
1860 | * src/MachOReaderRelocatable.hpp: enable AnonymousAtom::setScope() | |
d696c285 | 1861 | |
69a49097 | 1862 | 2006-03-31 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1863 | |
69a49097 A |
1864 | <rdar://problem/4498391> ld64 fails when linking debug ppc64 HIToolbox |
1865 | * src/MachOReaderRelocatable.hpp: handle anonymous non-lazy pointers encoded with local relocations | |
1866 | * src/MachOWriterExecutable.hpp: in -r mode, only generated INDIRECT_SYMBOL_LOCAL for non-lazy targets that | |
d696c285 | 1867 | |
d696c285 | 1868 | |
69a49097 | 1869 | 2006-03-31 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1870 | |
69a49097 A |
1871 | <rdar://problem/4496499> ld64 should remove generated file if link errors out |
1872 | * src/MachOWriterExecutable.hpp: catch exceptions in Writer<A>::write(), delete output file, and rethrow | |
d696c285 | 1873 | |
d696c285 | 1874 | |
69a49097 | 1875 | ----- Tagged ld64-50 |
d696c285 | 1876 | |
a61fdf0a A |
1877 | #ifndef __OPEN_SOURCE__ |
1878 | 2006-03-29 Nick Kledzik <kledzik@apple.com> | |
1879 | ||
1880 | * src/MachOWriterExecutable.hpp: fix x86_64 addends when -multi_module forces an external relocation | |
1881 | #endif | |
d696c285 | 1882 | |
69a49097 | 1883 | 2006-03-29 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1884 | |
69a49097 A |
1885 | * src/MachOReaderRelocatable.hpp: synthesize .objc_class_name symbols |
1886 | * src/MachOFileAbstraction.hpp: use strncpy for sect/seg names to zero fill trailing space | |
d696c285 | 1887 | |
69a49097 | 1888 | 2006-03-28 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1889 | |
69a49097 | 1890 | * src/MachOReaderRelocatable.hpp: fix spurious warning about dwarf line info |
d696c285 | 1891 | |
69a49097 | 1892 | ----- Tagged ld64-49.1 |
d696c285 | 1893 | |
69a49097 | 1894 | 2006-03-25 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1895 | |
69a49097 | 1896 | * MachOWriterExecutable.hpp : don't complain about ppc64 dyld being based > 4GB |
d696c285 | 1897 | |
69a49097 | 1898 | ----- Tagged ld64-49 |
d696c285 | 1899 | |
69a49097 | 1900 | 2006-03-24 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1901 | |
69a49097 A |
1902 | * src/MachOWriterExecutable.hpp: dyld is allowed to have synthesized non-lazy pointers |
1903 | <rdar://problem/4488113> ld64 is after processing bad GSYM stabs | |
1904 | * src/MachOReaderRelocatable.hpp: if a GSYM is found that does not match any data symbol, suppress it | |
d696c285 | 1905 | |
69a49097 | 1906 | 2006-03-23 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1907 | |
69a49097 A |
1908 | * src/MachOWriterExecutable.hpp: in Writer<x86>::fixUpReferenceFinal() fix when x86::kPointer is for an |
1909 | external relocation | |
d696c285 | 1910 | |
69a49097 | 1911 | 2006-03-23 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1912 | |
69a49097 A |
1913 | * src/Options.cpp: change macosx-min-version to default to a per-architecture setting |
1914 | add warning if -pagezero_size is not page aligned | |
1915 | * src/MachOWriterExecutable.hpp: properly handle external relocations for ppc64 with 4GB pagezero | |
1916 | * src/machochecker.cpp: sanity check relocation records | |
d696c285 | 1917 | |
69a49097 | 1918 | ----- Tagged ld64-48 |
d696c285 | 1919 | |
69a49097 | 1920 | 2006-03-21 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1921 | |
69a49097 A |
1922 | <rdar://problem/4481406> 64bit: passing function pointer to another function passes the wrong function address |
1923 | * src/MachOReaderRelocatable.hpp: when processing a non-lazy pointer to a static function, don't accidentally | |
1924 | match it to a STAB symbol. | |
d696c285 | 1925 | |
69a49097 | 1926 | 2006-03-21 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1927 | |
69a49097 A |
1928 | <rdar://problem/4180168> .eh symbols make up 13% of libstdc++'s stripped binary size |
1929 | * src/ObjectFile.h: add ReaderOptions.fForFinalLinkedImage | |
1930 | * src/Options.cpp: setup ReaderOptions.fForFinalLinkedImage | |
1931 | * src/MachOReaderRelocatable.hpp: mark .eh symbols kSymbolTableNotIn when building final linked image | |
d696c285 | 1932 | |
a61fdf0a A |
1933 | #ifndef __OPEN_SOURCE__ |
1934 | 2006-03-21 Nick Kledzik <kledzik@apple.com> | |
1935 | ||
1936 | <rdar://problem/4475928> Inca ld64-45 fatal error with C++ and asm() renaming | |
1937 | * src/MachOReaderRelocatable.hpp: fix Reader<x86_64>::makeReferenceToEH(() to walk relocations to find | |
1938 | target of eh symbol, rather assume target name is eh symbol name less .eh | |
1939 | ||
1940 | #endif | |
69a49097 | 1941 | 2006-03-21 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1942 | |
69a49097 A |
1943 | <rdar://problem/4473742> ld64 does not parse optional second argument to -filelist |
1944 | * unit-tests/test-cases/filelist: added | |
1945 | * src/Options.cpp: in Options::loadFileList() handle comma option | |
d696c285 | 1946 | |
a61fdf0a A |
1947 | #ifndef __OPEN_SOURCE__ |
1948 | 2006-03-21 Nick Kledzik <kledzik@apple.com> | |
1949 | ||
1950 | <rdar://problem/4483625> 32-bit pointer difference out of range for cxx eh frame | |
1951 | * src/MachOReaderRelocatable.hpp: x86_64 doesn't have anonymous non-lazy-pointers | |
1952 | * src/machochecker.cpp: fix validFile() for x86_64 | |
1953 | * unit-tests/run-all-unit-tests: add x86_64 | |
1954 | * unit-tests/include/common.makefile: don't add -g to all compilers | |
1955 | * unit-tests/test-cases/relocs-asm/relocs-asm.s: add x86_64 test cases | |
1956 | * unit-tests/test-cases/relocs-c/Makefile: fix to work with x86_64 | |
1957 | * src/ld.cpp: add hack to use i386 dylibs if x86_64 don't exist | |
1958 | ||
1959 | 2006-03-19 Nick Kledzik <kledzik@apple.com> | |
1960 | ||
1961 | <rdar://problem/4483330> ld64 crashes whenever I try to link with dylib1.o | |
1962 | * src/MachOReaderRelocatable.hpp: in Reader<x86_64>::addRelocReference() fix local relocations | |
1963 | #endif | |
86b84c30 A |
1964 | |
1965 | ----- Tagged ld64-47.1 | |
1966 | ||
a61fdf0a A |
1967 | #ifndef __OPEN_SOURCE__ |
1968 | 2006-03-16 Nick Kledzik <kledzik@apple.com> | |
1969 | ||
1970 | <rdar://problem/4459633> ld64-41 in Leopard doesn't have x86_64 support | |
1971 | * ld64.xcodeproj/project.pbxproj: enable x86_64 for Leopard | |
1972 | #endif | |
d696c285 | 1973 | |
69a49097 | 1974 | ----- Tagged ld64-47 |
d696c285 | 1975 | |
a61fdf0a A |
1976 | #ifndef __OPEN_SOURCE__ |
1977 | 2006-03-14 Nick Kledzik <kledzik@apple.com> | |
1978 | ||
1979 | * src/Architectures.hpp: redo x86_64 relocation types | |
1980 | * src/MachOReaderRelocatable.hpp: redo x86_64 relocation types, make some section type illegal for x86_64 | |
1981 | * src/MachOWriterExecutable.hpp: redo x86_64 relocation types | |
1982 | ||
1983 | 2006-03-13 Nick Kledzik <kledzik@apple.com> | |
1984 | ||
1985 | <rdar://problem/4467122> ld64 -r does not handle internal relocations for x86_64 | |
1986 | * src/MachOWriterExecutable.hpp: handle internal relocations in Writer<x86_64>::fixUpReferenceRelocatable() | |
1987 | and Writer<x86_64>::addObjectRelocs(). | |
1988 | #endif | |
d696c285 | 1989 | |
69a49097 | 1990 | ----- Tagged ld64-46 |
d696c285 | 1991 | |
69a49097 | 1992 | 2006-03-10 Nick Kledzik <kledzik@apple.com> |
d696c285 | 1993 | |
69a49097 A |
1994 | <rdar://problem/4419505> ld64 should figure out architecture from .o files |
1995 | * unit-tests/test-cases/auto-arch: added | |
1996 | * src/ld.cpp: added Linker::inferArchitecture() to scan .o files are infer architecture to link | |
1997 | * src/MachOReaderArchive.hpp: enhanced validFile() to look deeper into archive and really valdate | |
1998 | * src/MachOWriterExecutable.hpp: stop using fOptions.architecture() | |
1999 | * src/Options.cpp: stop defaulting to ppc64 | |
d696c285 | 2000 | |
d696c285 | 2001 | |
69a49097 | 2002 | 2006-03-09 Nick Kledzik <kledzik@apple.com> |
d696c285 | 2003 | |
69a49097 A |
2004 | <rdar://problem/4465004> Need "intentionally left blank" dylib stubs |
2005 | * unit-tests/include/common.makefile: add VALID_ARCHS | |
2006 | * unit-tests/run-all-unit-tests: set up VALID_ARCHS | |
2007 | * unit-tests/test-cases/blank-stubs: add test case | |
2008 | * src/ld.cpp: in addDylib(), detect and ignore blank stubs | |
2009 | * src/MachOReaderDylib.hpp: in constructor, handle blank stubs | |
d696c285 | 2010 | |
69a49097 | 2011 | 2006-03-09 Nick Kledzik <kledzik@apple.com> |
d696c285 | 2012 | |
69a49097 A |
2013 | <rdar://problem/4471424> crash in stub with 2GB pagezero |
2014 | * src/MachOWriterExecutable.hpp: StubAtom<ppc64> can't be no-pic if a large zero-page is used | |
d696c285 | 2015 | |
69a49097 | 2016 | 2006-03-06 Nick Kledzik <kledzik@apple.com> |
d696c285 | 2017 | |
69a49097 | 2018 | * src/Options.cpp: addSectionAlignment, warn if -sectalign alignment is not a power of two |
d696c285 | 2019 | |
69a49097 | 2020 | ----- Tagged ld64-45 |
d696c285 | 2021 | |
a61fdf0a A |
2022 | #ifndef __OPEN_SOURCE__ |
2023 | 2006-03-06 Nick Kledzik <kledzik@apple.com> | |
2024 | ||
2025 | <rdar://problem/4466930> <rdar://problem/4467982> ld64 failed: rel32 out of range when linking a dylib | |
2026 | * src/MachOWriterExecutable.cpp: in Writer<x86_64>::fixUpReferenceFinal add (int32_t) cast | |
2027 | #endif | |
d696c285 | 2028 | |
69a49097 | 2029 | 2006-03-06 Nick Kledzik <kledzik@apple.com> |
d696c285 | 2030 | |
69a49097 A |
2031 | <rdar://problem/4466930> LP64/9A122: ld64: hang when trying to link DiscRecording framework |
2032 | * src/Options.cpp: addSectionAlignment, warn on zero. Use log2() for alignment conversion | |
d696c285 | 2033 | |
a61fdf0a A |
2034 | #ifndef __OPEN_SOURCE__ |
2035 | 2006-03-06 Nick Kledzik <kledzik@apple.com> | |
2036 | ||
2037 | <rdar://problem/4457818> x86_THREAD_STATE64_COUNT will change, ld64 must adapt | |
2038 | * src/MachOWriterExecutable.hpp: update ThreadsLoadCommandsAtom<x86_64> for new thread status layout | |
2039 | #endif | |
d696c285 | 2040 | |
69a49097 | 2041 | ----- Tagged ld64-44 |
d696c285 | 2042 | |
69a49097 | 2043 | 2006-03-04 Nick Kledzik <kledzik@apple.com> |
d696c285 | 2044 | |
69a49097 A |
2045 | * src/MachOReaderRelocatable.hpp: fix again test for detection of anonymous non-lazy-pointer. |
2046 | Error out if .o file contains old __DWARFA style dwarf. | |
d696c285 | 2047 | |
69a49097 | 2048 | 2006-03-02 Nick Kledzik <kledzik@apple.com> |
d696c285 | 2049 | |
69a49097 | 2050 | * src/ld.cpp: only re-map page aligned sub-parts of a fat file. A conformat mmap() requires alignment. |
d696c285 | 2051 | |
69a49097 | 2052 | ----- Tagged ld64-43 |
d696c285 | 2053 | |
a61fdf0a A |
2054 | #ifndef __OPEN_SOURCE__ |
2055 | 2006-03-03 Nick Kledzik <kledzik@apple.com> | |
2056 | ||
2057 | <rdar://problem/4465443> RIP-relative offsets aren't handled properly when the instruction has immediate operands | |
2058 | * src/Architectures.hpp: add x86_64::kPCRel32_* | |
2059 | * src/MachOReaderRelocatable.hpp: generate x86_64::kPCRel32_* | |
2060 | * src/MachOWriterExecutable.hpp: process x86_64::kPCRel32_* | |
2061 | #endif | |
86b84c30 A |
2062 | |
2063 | 2006-03-02 Nick Kledzik <kledzik@apple.com> | |
2064 | ||
2065 | * src/MachOReaderRelocatable.hpp: <rdar://problem/4464370> tighten detection of anonymous non-lazy-pointer | |
2066 | ||
2067 | ----- Tagged ld64-42 | |
2068 | ||
2069 | 2006-02-28 Nick Kledzik <kledzik@apple.com> | |
2070 | ||
2071 | * src/MachOReaderRelocatable.hpp: fix x86 __IMPORT permissions for class Segment | |
2072 | ||
2073 | 2006-02-28 Nick Kledzik <kledzik@apple.com> | |
2074 | ||
2075 | <rdar://problem/4461240> SWB: ld64-37 (can't resolve symbol ___dso_handle) | |
2076 | * src/MachOWriterExecutable.hpp: add class DsoHandleAtom | |
2077 | ||
2078 | 2006-02-28 Nick Kledzik <kledzik@apple.com> | |
2079 | ||
2080 | * unit-tests/test-cases/literals-coalesce-alignment: added test case | |
2081 | * src/ld.cpp: when coalescing strings pick one with greater alignment | |
2082 | <rdar://problem/4458660> ld64: CG link failed because lo14 reference to anonymous non-lazy-pointer not aligned | |
2083 | * unit-tests/test-cases/relocs-c/test.c: tweak to fail like 4458660 | |
2084 | * src/MachOReaderRelocatable.hpp: detect anonymous non-lazy-pointer and transform into real non-lazy-pointers | |
2085 | ||
2086 | ----- Tagged ld64-41 | |
2087 | ||
2088 | 2006-02-24 Nick Kledzik <kledzik@apple.com> | |
2089 | ||
2090 | * src/Options.cpp: Warning about -no_dead_strip_inits_and_terms and -i options. | |
2091 | Fix -weak-l option. | |
2092 | ||
2093 | ----- Tagged ld64-40 | |
2094 | ||
2095 | 2006-02-24 Nick Kledzik <kledzik@apple.com> | |
2096 | ||
2097 | <rdar://problem/4454698> Leopard9A113: ppc64 libstdc++.dylib initializer crashes in pthread_once | |
2098 | * unit-tests/test-cases/multiple-entry-points: added | |
2099 | * src/MachOReaderRelocatable.hpp: make sure that if there are multiple symbols with the same | |
2100 | address, that we properly make zero length atoms for all but last symbol | |
2101 | ||
2102 | 2006-02-24 Nick Kledzik <kledzik@apple.com> | |
2103 | ||
2104 | * src/Options.cpp: <rdar://problem/4456093> ld64 doesn't realpath(3) B&I tracing paths | |
2105 | ||
2106 | 2006-02-24 Nick Kledzik <kledzik@apple.com> | |
2107 | ||
2108 | * src/Options.cpp: <rdar://problem/4457078> 9A110: ld64 can't deal with section names >16 chars | |
2109 | ||
2110 | 2006-02-23 Nick Kledzik <kledzik@apple.com> | |
2111 | ||
2112 | * src/MachOWriterExecutable.hpp: use vector.reserve() to minimize re-allocations | |
2113 | * src/Options.cpp: use vector.reserve() to minimize re-allocations | |
2114 | * src/MachOReaderRelocatable.hpp: use vector.reserve() to minimize re-allocations | |
2115 | * src/MachOReaderDylib.hpp: use vector.reserve() to minimize re-allocations | |
2116 | * src/ld.cpp: use vector.reserve() to minimize re-allocations | |
2117 | ||
2118 | 2006-02-23 Nick Kledzik <kledzik@apple.com> | |
2119 | ||
2120 | <rdar://problem/4455927> ld64 creates corrupt executables (and has malloc errors) with -headerpad option | |
2121 | * src/MachOWriterExecutable.hpp: Change LoadCommandsPaddingAtom<A>::setSize() to update fLargestAtomSize | |
2122 | * unit-tests/test-cases/header-pad: added | |
2123 | ||
2124 | 2006-02-23 Nick Kledzik <kledzik@apple.com> | |
2125 | ||
2126 | <rdar://problem/4455192> ld64 creates invalid static executables | |
2127 | * src/MachOWriterExecutable.hpp: Change MachHeaderAtom<A>::copyRawContent() to create correct header | |
2128 | for static executables. Change SymbolTableLoadCommandsAtom to skip LC_DYSYMTAB for static executables | |
2129 | * src/machochecker.cpp: Add tests that static executables are well formed | |
2130 | * unit-tests/test-cases/static-executable: added | |
2131 | ||
2132 | 2006-02-22 Nick Kledzik <kledzik@apple.com> | |
2133 | ||
2134 | * src/Options.cpp: <rdar://problem/4453468> chnage printf on unknown arg to a throw | |
2135 | ||
2136 | ----- Tagged ld64-39 | |
2137 | ||
2138 | 2006-02-20 Nick Kledzik <kledzik@apple.com> | |
2139 | ||
2140 | * unit-tests/test-cases/read-only-relocs: added new test case | |
2141 | * src/MachOWriterExecutable.hpp: <rdar://problem/4448922> detect and error on relocs in read-only sections | |
2142 | * src/MachOReaderRelocatable.hpp: fix parsing of i386 absolute addressing relocs | |
2143 | ||
2144 | 2006-02-20 Nick Kledzik <kledzik@apple.com> | |
2145 | ||
2146 | * unit-tests/test-cases/stabs-coalesce: added new test case | |
2147 | * src/ld.cpp.hpp: <rdar://problem/4449226> in collectStabs removed unused stabs | |
2148 | ||
2149 | ----- Tagged ld64-38 | |
2150 | ||
2151 | 2006-02-17 Nick Kledzik <kledzik@apple.com> | |
2152 | ||
2153 | * src/MachOWriterExecutable.hpp: <rdar://problem/4434578> set correct n_sect field of stabs | |
2154 | ||
2155 | 2006-02-15 Nick Kledzik <kledzik@apple.com> | |
2156 | ||
2157 | * src/MachOReaderArchive.hpp: <rdar://problem/4441920> with -all_load skip over both kinds of SYMDEFs | |
2158 | * unit-tests/test-cases/archive-basic/Makefile: add -all_load test case | |
2159 | ||
2160 | ----- Tagged ld64-37 | |
2161 | ||
2162 | 2006-02-13 Eric Christopher <echristo@apple.com> | |
2163 | ||
2164 | * src/MachOWriterExecutable.hpp (assignFileOffsets): Simplify. Add comments. | |
2165 | Adjust whitespace. | |
2166 | ||
2167 | 2006-02-13 Nick Kledzik <kledzik@apple.com> | |
2168 | ||
2169 | * src/MachOWriterExecutable.hpp: in Writer<x86>::fixUpReferenceRelocatable() fix kPCRel32 for external case | |
2170 | ||
2171 | 2006-02-13 Nick Kledzik <kledzik@apple.com> | |
2172 | ||
2173 | * unit-tests/test-cases/zero-fill: added | |
2174 | * src/machochecker.cpp: check that S_ZEROFILL have no file offset | |
2175 | * src/MachOWriterExecutable.hpp: rework assignFileOffsets() to fix rdar://problem/4441145 | |
2176 | ||
2177 | 2006-02-12 Nick Kledzik <kledzik@apple.com> | |
2178 | ||
2179 | * src/MachOReaderRelocatable.hpp: <rdar://problem/4440880> fix use of first zero-length c-string in .o file | |
2180 | ||
2181 | 2006-02-12 Nick Kledzik <kledzik@apple.com> | |
2182 | ||
2183 | * src/MachOReaderRelocatable.hpp: <rdar://problem/4440905> fix uninitialized fAlignment | |
2184 | ||
2185 | 2006-02-12 Nick Kledzik <kledzik@apple.com> | |
2186 | ||
2187 | * unit-tests/test-cases/relocs-asm/relocs-asm.s: add pointer-diff cases | |
2188 | * src/Architectures.hpp: make size explicit in ppc/ppc64 kPointerDiff | |
2189 | * src/MachOReaderRelocatable.hpp: don't allow kPointerDiff64 for ppc (just ppc64) | |
2190 | * src/MachOWriterExecutable.cpp: set proper r_length for ld -r of kPointerDiff | |
2191 | ||
2192 | ----- Tagged ld64-36 | |
2193 | ||
2194 | 2006-02-08 Nick Kledzik <kledzik@apple.com> | |
2195 | ||
2196 | * src/MachOReaderRelocatable.cpp: rdar://problem/4438677 Handle when a .o file dwarf line info entries but no functions | |
2197 | ||
2198 | 2006-02-08 Nick Kledzik <kledzik@apple.com> | |
2199 | ||
2200 | * src/MachOWriterExecutable.cpp: Properly set address of first TEXT section | |
2201 | Keep S_COALESCED attribute for __eh_frame | |
2202 | ||
2203 | 2006-02-08 Nick Kledzik <kledzik@apple.com> | |
2204 | ||
2205 | * src/ld.cpp: Temporarily turn allowable client errors into warnings | |
2206 | * unit-tests/test-cases/allowable-clientMakefile: Temporarily let warnings be ok for above | |
2207 | * src/MachOWriterExecutable.hpp: fix ld -r to not use external relocations for symbols make static | |
2208 | ||
2209 | 2006-02-08 Nick Kledzik <kledzik@apple.com> | |
2210 | ||
2211 | * src/ld.cpp: A sibling in an umbrella can always link with its other siblings | |
2212 | * unit-tests/test-cases/allowable-client: add test case for above | |
2213 | ||
2214 | 2006-02-08 Nick Kledzik <kledzik@apple.com> | |
2215 | ||
2216 | * src/MachOReaderRelocatable.hpp: support LOCAL non-lazy pointers to hidden symbols | |
2217 | * src/machochecker.cpp: verify indirect symbol table | |
2218 | * unit-tests/test-cases/private-non-lazy: added test case | |
2219 | ||
2220 | 2006-02-07 Nick Kledzik <kledzik@apple.com> | |
2221 | ||
2222 | * src/MachOWriterExecutable.hpp: fix calculation of file offsets in ld -r mode | |
2223 | * src/machochecker.cpp: verify segment file offsets are within file | |
2224 | ||
2225 | ----- Tagged ld64-35 | |
2226 | ||
2227 | 2006-02-06 Nick Kledzik <kledzik@apple.com> | |
2228 | ||
2229 | * ld.cpp: allow parent of sub-framework to link | |
2230 | * unit-tests/test-cases/allowable-client/Makefile: added cases for parent and clients of parent | |
2231 | ||
2232 | 2006-02-04 Nick Kledzik <kledzik@apple.com> | |
2233 | ||
2234 | * unit-tests/test-cases/relocs-c/test.c: added some array cases | |
2235 | * src/MachOReaderRelocatable.hpp: factor out makeReferenceToEH() | |
2236 | * src/MachOWriterExecutable.hpp: add initial support for non-lazy pointer synthesis | |
2237 | ||
2238 | ----- Tagged ld64-34 | |
2239 | ||
2240 | 2006-02-04 Nick Kledzik <kledzik@apple.com> | |
2241 | ||
2242 | * src/ld.cpp: <rdar://problem/4432917> fix -no_arch_warnings | |
2243 | <rdar://problem/4432932> fix -undefined warning | |
2244 | Do BINCL/EINCL optimization for gfull stabs | |
2245 | Implement "essential symbols" for stabs (-Sp) | |
2246 | Fix allowable clients to only test on direct libraries | |
2247 | * src/MachOReaderRelocatable.hpp: support BINCL/EINCL stabs | |
2248 | ||
2249 | 2006-02-03 Nick Kledzik <kledzik@apple.com> | |
2250 | ||
2251 | * src/machochecker.cpp: add code to check load command alignment | |
2252 | * src/MachOWriterExecutable.hpp: make load command alignment depend on architecture | |
2253 | ||
2254 | 2006-02-03 Nick Kledzik <kledzik@apple.com> | |
2255 | ||
2256 | * unit-tests/test-cases/literals-coalesce: added | |
2257 | * src/MachOReaderRelocatable.hpp: assure all targets of low14 ppc relocs are at least 4-byte alignmented | |
2258 | ||
2259 | ----- Tagged ld64-33 | |
2260 | ||
2261 | 2006-02-02 Nick Kledzik <kledzik@apple.com> | |
2262 | ||
2263 | * src/MachOReaderRelocatable.hpp: properly coalesce 8-byte literals | |
2264 | * src/MachOWriterExecutable.hpp: support ppc64::kPointerDiff32 | |
2265 | ||
2266 | ----- Tagged ld64-32 | |
2267 | ||
2268 | 2006-02-02 Nick Kledzik <kledzik@apple.com> | |
2269 | ||
2270 | * src/MachOReaderRelocatable.hpp: support anonymous zero fill atoms | |
2271 | ||
2272 | 2006-02-02 Nick Kledzik <kledzik@apple.com> | |
2273 | ||
2274 | * src/ld.cpp: A weak definition is good enough, do not search archives for a non-weak one | |
2275 | * unit-tests/test-cases/archive-weak: add test case for above | |
2276 | * src/MachOReaderRelocatable.hpp: an atom should never have a by-name reference to itself | |
2277 | * src/Options.cpp: prevent .eh symbols from being exported via a -exported_symbols_list | |
2278 | ||
2279 | 2006-02-01 Nick Kledzik <kledzik@apple.com> | |
2280 | ||
2281 | * src/MachOReaderRelocatable.hpp: Support -macosx_version_min 10.5 | |
2282 | ||
2283 | 2006-02-01 Nick Kledzik <kledzik@apple.com> | |
2284 | ||
2285 | * src/MachOReaderRelocatable.hpp: don't try to parse debug_line dwarf if no symboled atoms | |
2286 | ||
2287 | ----- Tagged ld64-31 | |
2288 | ||
2289 | 2006-02-01 Eric Christopher <echristo@apple.com> | |
2290 | ||
2291 | * unit-tests/test-cases/allow-stack-execute/Makefile: Move otool handling... | |
2292 | * unit-tests/include/common.makefile: ... here. | |
2293 | * unit-tests/bin/fail-if-stdin.pl: New. | |
2294 | * unit-tests/test-cases/no-uuid: Ditto. | |
2295 | * src/ld.cpp (Linker::) Add fCreateUUID. | |
2296 | (::Linker): Initialize. | |
2297 | (::collectStabs): Use. Set if dwarf or we have a UUID already. | |
2298 | (::writeOutput): Pass as argument to Writer::write along with option. | |
2299 | * src/Options.h (Option::emitUUID): Declare. | |
2300 | (Option::fEmitUUID): Ditto. | |
2301 | * src/Options.cpp (Option::emitUUID): New. | |
2302 | (parse): Handle -no_uuid. | |
2303 | * src/MachOReaderRelocatable (Reader::Reader): Handle LC_UUID. | |
2304 | * src/ExecutableFile.h (Writer::Write): Add createUUID boolean. | |
2305 | * src/MachOWriterExecutable: Add UUID forward declaration. | |
2306 | (fUUIDAtom): New. | |
2307 | (UUIDLoadCommandAtom): Emit LC_UUID if fEmit. New function emit. Size | |
2308 | to zero at start. | |
2309 | (Writer::writer): Add handle for LC_UUID. If createUUID emit LC_UUID. | |
2310 | (MachHeaderAtom::copyRawContent): Don't count a load command if its size is | |
2311 | 0. | |
2312 | (UUIDLoadCommandAtom::copyRawContent): Depend on fEmit. | |
2313 | ||
2314 | ||
2315 | 2006-01-31 Nick Kledzik <kledzik@apple.com> | |
2316 | ||
2317 | * unit-tests/test-cases/dwarf-debug-notes : Added | |
2318 | * src/ld.cpp: don't generate debug note for .eh symbols | |
2319 | * src/MachOReaderRelocatable.hpp: make dwarf line info to atom matching faster and better | |
2320 | ||
2321 | 2006-01-31 Nick Kledzik <kledzik@apple.com> | |
2322 | ||
2323 | * ld64.xcodeproj/project.pbxproj : Make buildable on Leopard | |
2324 | * src/MachOFileAbstraction.hpp: make buildable without latest cctools headers | |
2325 | ||
2326 | 2006-01-31 Nick Kledzik <kledzik@apple.com> | |
2327 | ||
2328 | * src/MachOReaderRelocatable.hpp: better error message for bad relocs | |
2329 | * src/ObjectDump.cpp: add emacs tab settings | |
2330 | * src/SectCreate.h: ditto | |
2331 | * src/SectCreate.cpp: ditto | |
2332 | * src/machochecker.cpp: ditto | |
2333 | * src/ExecutableFile.h: ditto | |
2334 | ||
2335 | 2006-01-30 Eric Christopher <echristo@apple.com> | |
2336 | ||
2337 | * src/ExecutableFile.h: Indent. | |
2338 | ||
2339 | 2006-01-30 Nick Kledzik <kledzik@apple.com> | |
2340 | ||
2341 | * src/MachOReaderRelocatable.hpp: performance improvements | |
2342 | * src/ld.cpp: now that stubs are synthesized in write, don't need to special case anymore | |
2343 | ||
2344 | 2006-01-30 Nick Kledzik <kledzik@apple.com> | |
2345 | ||
2346 | * src/MachOReaderRelocatable.hpp: fix parsing of pcc relocs | |
2347 | * unit-tests/test-cases/relocs-asm/relocs-asm.s: add test case for above | |
2348 | ||
2349 | 2006-01-29 Nick Kledzik <kledzik@apple.com> | |
2350 | ||
2351 | * unit-tests/test-cases/weak_import: added test case | |
2352 | * src/ld.cpp: move code for weak_import mismatch to writer | |
2353 | * src/ObjectFile.h: remove ImportWeakness methods | |
2354 | * src/MachOReaderDylib.hpp: ditto | |
2355 | * src/SectCreate.cpp: ditto | |
2356 | * src/Architectures.hpp: add new ReferenceKinds for weak_imports | |
2357 | * src/MachOReaderRelocatable.hpp: implement new ReferenceKinds | |
2358 | * src/MachOWriterExecutable.hpp: handle new ReferenceKinds and weak_import mismatches | |
2359 | ||
2360 | 2006-01-29 Nick Kledzik <kledzik@apple.com> | |
2361 | ||
2362 | * src/Options.cpp: verify -allow_stack_execute is only used on main executables | |
2363 | ||
2364 | 2006-01-29 Nick Kledzik <kledzik@apple.com> | |
2365 | ||
2366 | * src/MachOReaderRelocatable.hpp: sync with latest dwarf reader from Geoff | |
2367 | * src/debugline.c: sync with latest dwarf reader from Geoff | |
2368 | ||
2369 | 2006-01-27 Eric Christopher <echristo@apple.com> | |
2370 | ||
2371 | * src/ld.cpp (Linker::syntesizeStabs): Correct spelling. Update all uses. | |
2372 | ||
2373 | 2006-01-27 Eric Christopher <echristo@apple.com> | |
2374 | ||
2375 | * src/Options.h (Options): Add hasExecutableStack, fExecutableStack. | |
2376 | * src/Options.cpp (Options::hasExecutableStack): New. | |
2377 | (Options::parse): Parse -allow_stack_execute. | |
2378 | * src/MachOWriterExecutable.hpp (MachHeaderAtom::copyRawContent): | |
2379 | Implement MH_ALLOW_STACK_EXECUTION. | |
2380 | * unit-tests/include/common.makefile (FAIL_IF_EMPTY): New. | |
2381 | * unit-tests/bin/fail-if-no-stdin.pl: New file. | |
2382 | * unit-tests/test-cases/allow-stack-execute: New directory. | |
2383 | ||
2384 | 2006-01-27 Nick Kledzik <kledzik@apple.com> | |
2385 | ||
2386 | * src/MachOFileAbstraction.hpp: rely on latest system headers | |
2387 | * src/MachOWriterExecutable.hpp: fix ppc stubs. | |
2388 | wrote new relocationNeededInFinalLinkedImage() to replace common code | |
2389 | ||
2390 | 2006-01-27 Eric Christopher <echristo@apple.com> | |
2391 | ||
2392 | * src/ld.cpp (logTraceInfo): New. | |
2393 | (Linker::addArchive): Use. | |
2394 | (Linker::addDylib): Ditto. | |
2395 | * src/ObjectFile (ReaderOptions::fTraceOutputFile): New. | |
2396 | * src/MachOReaderArchive.hpp (Reader::Reader): Move trace | |
2397 | logging to Linker::addArchive. | |
2398 | * src/Options.cpp (parsePreCommandLineEnvironment): Check | |
2399 | LD_PRINT_FILE if tracing dylibs or archives. | |
2400 | ||
2401 | 2006-01-26 Nick Kledzik <kledzik@apple.com> | |
2402 | ||
2403 | * src/MachOWriterExecutable.hpp: handle NULL strings in SO debug notes | |
2404 | ||
2405 | 2006-01-26 Nick Kledzik <kledzik@apple.com> | |
2406 | ||
2407 | * src/MachOWriterExecutable.hpp: fix header padding calculation and thread state | |
2408 | ||
2409 | 2006-01-26 Nick Kledzik <kledzik@apple.com> | |
2410 | ||
2411 | Rewrite all stabs processing. | |
2412 | Move sythesize of debug notes into ld.cpp | |
2413 | ||
2414 | 2006-01-26 Nick Kledzik <kledzik@apple.com> | |
2415 | ||
2416 | * src/MachOWriterExecutable.hpp: fix ppc and ppc64 stub relocs | |
2417 | ||
2418 | 2006-01-25 Nick Kledzik <kledzik@apple.com> | |
2419 | ||
2420 | * ld64.xcodeproj/project.pbxproj: special case building in Curry | |
2421 | ||
2422 | 2006-01-25 Nick Kledzik <kledzik@apple.com> | |
2423 | ||
2424 | * src/MachOWriterExecutable.hpp: fix bugs in stub/lazy-pointer synthesis | |
2425 | ||
2426 | 2006-01-24 Eric Christopher <echristo@apple.com> | |
2427 | ||
2428 | * src/ld.cpp (Linker::createReaders): Change logging title to XBS. | |
2429 | (Linker::addDylib): Ditto. | |
2430 | * src/MachOReaderArchive.hpp (Reader::Reader): Ditto. | |
2431 | * src/Options.h (fPrintOptions): New. | |
2432 | * src/Options.cpp (Options::Options): Initialize above. | |
2433 | (Options::checkForFile): Change logging title to XBS. | |
2434 | (Options::findFramework): Ditto. | |
2435 | (Options::parse): Add log for options. | |
2436 | (Options::parsePreCommandLineEnvironmentSettings): Add LD_TRACE_ARCHIVES, | |
2437 | LD_TRACE_DYLIBS, and LD_PRINT_OPTIONS. | |
2438 | ||
2439 | 2006-01-24 Nick Kledzik <kledzik@apple.com> | |
2440 | ||
2441 | * src/MachOReaderRelocatable.hpp: better C++ eh parsing | |
2442 | ||
2443 | 2006-01-23 Eric Christopher <echristo@apple.com> | |
2444 | ||
2445 | * unit-tests/bin/fail-if-exit-zero.pl: New. | |
2446 | * unit-tests/include/common.makefile (FAIL_IF_SUCCESS): Use. | |
2447 | * unit-tests/allowable-client: New test. | |
2448 | * src/ld.cpp (Linker::addDylib): Check allowable clients before adding dylib. | |
2449 | * src/Options.h (allowableClients): New. | |
2450 | (clientName): Ditto. | |
2451 | (fAllowableClients): Ditto. | |
2452 | (fClientName): Ditto. | |
2453 | * src/Options.cpp: Implement above. | |
2454 | (parse): Handle -allowable_client and -client_name. | |
2455 | * src/MachOReaderDylib.hpp (getAllowableClients): New. | |
2456 | (fAllowableClients): Ditto. | |
2457 | (Reader): Process LC_SUB_CLIENT load command. | |
2458 | * src/ObjectFile.h (parentUmbrella): New. | |
2459 | (getAllowableClients): New. | |
2460 | * src/MachOWriterExecutable.hpp (AllowableClientLoadCommandsAtom): New. | |
2461 | ||
2462 | 2006-01-23 Nick Kledzik <kledzik@apple.com> | |
2463 | ||
2464 | * unit-tests/test-cases/archive-basic: added | |
2465 | * src/ld.cpp: fix shadowed local variable | |
2466 | * src/FileAbstraction.hpp: <rdar://problem/4417372> ld64 shouldn't inline when building debug | |
2467 | ||
2468 | 2006-01-23 Nick Kledzik <kledzik@apple.com> | |
2469 | ||
2470 | * src/ld.cpp: fix symbol not found error message | |
2471 | * src/MachOReaderDylib.hpp: add logging to hash table | |
2472 | * src/MachOReaderRelocatable.hpp: enable stabs processing. Handle static functions with stubs | |
2473 | handle labeled cstrings. | |
2474 | * src/MachOWriterExecutable.hpp: properly suppress atoms not in symbol table. fix low14 error check. | |
2475 | add StubAtomHelper. | |
2476 | * unit-tests/test-cases/relocs-literals/test.c: add more interesting edge cases | |
2477 | ||
2478 | 2006-01-17 Nick Kledzik <kledzik@apple.com> | |
2479 | ||
2480 | * src/MachOReaderRelocatable.hpp: tweaks to synthesizing debug notes | |
2481 | ||
2482 | 2006-01-16 Nick Kledzik <kledzik@apple.com> | |
2483 | ||
2484 | * src/debugline.{sh}: added | |
2485 | * src/MachOReaderRelocatable.hpp: synthesize debug notes SOL from dwarf | |
2486 | * src/MachOWriterExecutable.hpp: fix lazy pointer section | |
2487 | * src/ObjectDump.hpp: Fix conditionalization | |
2488 | * unit-tests/test-cases/dwarf-strip: added | |
2489 | ||
2490 | 2006-01-11 Nick Kledzik <kledzik@apple.com> | |
2491 | ||
2492 | * src/MachOReaderRelocatable.hpp: support Tiger crt1.o build with old ld64 | |
2493 | * src/ObjectDump.hpp: Support -arch option | |
2494 | ||
2495 | 2006-01-10 Nick Kledzik <kledzik@apple.com> | |
2496 | ||
2497 | * src/MachOWriterExecutable.hpp: fix stubs for ppc64 | |
2498 | * src/MachOFileAbstraction.hpp: fix typo for macho_routines | |
2499 | * ld64.xcodeproj/project.pbxproj: add machochecker target | |
2500 | * src/machochecker.cpp: new skeleton for checking mach-o file bit | |
2501 | * unit-tests/: Add support for running machochecker | |
2502 | ||
2503 | 2006-01-10 Nick Kledzik <kledzik@apple.com> | |
2504 | ||
2505 | * src/MachOReaderRelocatable.hpp: warn if dwarf can't be parsed | |
2506 | * src/MachOReaderArchive.hpp: modTime for OSO stabs from archives is .a modTime | |
2507 | ||
2508 | 2006-01-09 Nick Kledzik <kledzik@apple.com> | |
2509 | ||
2510 | * track modification time of .o files so that sythesized OSO stab will have it | |
2511 | ||
2512 | 2006-01-09 Nick Kledzik <kledzik@apple.com> | |
2513 | ||
2514 | * src/MachOFileAbstraction.hpp: add macho_uuid_command | |
2515 | * src/MachOWriterExecutable.cpp: add UUID load command to generated files | |
2516 | ||
2517 | 2006-01-09 Nick Kledzik <kledzik@apple.com> | |
2518 | ||
2519 | * src/MachOReaderDylib.hpp: no longer keep dylib memory mapped | |
2520 | * src/ld.cpp: don't track dylib sizes because they are not longer memory mapped | |
2521 | ||
2522 | 2006-01-05 Nick Kledzik <kledzik@apple.com> | |
2523 | ||
2524 | * src/MachOReaderRelocatable.hpp: support new relocations | |
2525 | ||
2526 | 2006-01-05 Nick Kledzik <kledzik@apple.com> | |
2527 | ||
2528 | * src/MachOReaderDylib.hpp: support MH_DYLIB_STUB | |
2529 | * src/MachOReaderRelocatable.hpp: Add Geoff's comp unit extractor | |
2530 | ||
2531 | 2006-01-05 Nick Kledzik <kledzik@apple.com> | |
2532 | ||
2533 | refactor: transform Atom::dontStripName() to getSymbolTableInclusion() | |
2534 | * src/ld.cpp: pass dyld_stub_binding_helper to writer | |
2535 | * src/MachOReaderRelocatable.hpp: update synthesized stabs | |
2536 | Ignore stubs and lazy pointers in .o files | |
2537 | Support initializers and terminators | |
2538 | * src/MachOWriterExecutable.hpp: synthesize stubs and lazy pointers as needed | |
2539 | * ld64.xcodeproj/project.pbxproj: change Release target to build with dwarf | |
2540 | ||
2541 | 2006-01-03 Eric Christopher <echristo@apple.com> | |
2542 | ||
2543 | * src/Options.h (multipleDefinitionsInDylibs): Declare. | |
2544 | (overridingDefinitionInDependentDylib): Ditto. | |
2545 | (warnOnMultipleDefinitionsInObjectFiles): Ditto. | |
2546 | (multiplyDefined): Remove. | |
2547 | (multiplyDefinedUnused): Ditto. | |
2548 | (fMultiplyDefined): Ditto. | |
2549 | (fWarnOnMultiplyDefined): New. | |
2550 | (fMultiplyDefinedDynamic): Ditto. | |
2551 | * src/Options.cpp (Options::Options): Initialize above. | |
2552 | (overridingDefinitionInDependentDylib): New. | |
2553 | (multipleDefinitionsInDylibs): Ditto. | |
2554 | (warnOnMultipleDefinitionsInObjectFiles): Ditto. | |
2555 | (parse): Update comments. Fix parsing of -y option. | |
2556 | Update error message for -dead_strip. Parse above | |
2557 | options. | |
2558 | ||
2559 | 2006-01-02 Nick Kledzik <kledzik@apple.com> | |
2560 | ||
2561 | * Refactor: move Atom::writeContent() to Writer | |
2562 | ||
2563 | 2005-12-23 Nick Kledzik <kledzik@apple.com> | |
2564 | ||
2565 | * Reworked, simplify, and document test harness | |
2566 | * unit-tests/README: Added | |
2567 | ||
2568 | 2005-12-23 Nick Kledzik <kledzik@apple.com> | |
2569 | ||
2570 | * src/MachOReaderRelocatable.hpp: fixes for Objective-C | |
2571 | * unit-tests/test-cases/relocs-objc: Added | |
2572 | ||
2573 | 2005-12-22 Nick Kledzik <kledzik@apple.com> | |
2574 | ||
2575 | * src/MachOReaderRelocatable.hpp: fix check that next reloc is pair | |
2576 | * src/MachOReaderRelocatable.hpp: Add code to synthesize essential stabs from dwarf | |
2577 | ||
2578 | 2005-12-21 Nick Kledzik <kledzik@apple.com> | |
2579 | ||
2580 | * src/MachOReaderRelocatable.hpp: Fix parsing of literal sections | |
2581 | * src/MachOWriterExecutable.hpp: Fix writing of literal sections | |
2582 | * unit-tests/test-cases/relocs-literals: Added | |
2583 | ||
2584 | 2005-12-15 Eric Christopher <echristo@apple.com> | |
2585 | ||
2586 | * src/Options.h (enum Treatment): New. | |
2587 | (enum PICTreatment): Delete. | |
2588 | (enum VersionMin): New. | |
2589 | (prebind): Declare. | |
2590 | (macosxVersionMin): Ditto. | |
2591 | (multiplyDefined): Ditto. | |
2592 | (multiplyDefinedUnused): Ditto. | |
2593 | (setVersionMin): Ditto. | |
2594 | (setPICTreatment): Delete. | |
2595 | (setReadOnlyRelocTreatment): Ditto. | |
2596 | (picTreatment): Adjust return type. | |
2597 | (parseTreatment): New. | |
2598 | (fPrebind): Ditto. | |
2599 | (fVersionMin): Ditto. | |
2600 | (fPICTreatment): Change type. | |
2601 | (fMultiplyDefined): New. | |
2602 | (fMultiplyDefinedUnused): Ditto. | |
2603 | (fLimitUndefinedSymbols): Ditto. | |
2604 | ||
2605 | * src/Options.cpp: Fix whitespace. Add comments on options. | |
2606 | (Options::Options): Add initializers for new variables. | |
2607 | (Options::prebind): New. | |
2608 | (Options::macosxVersionMin): Ditto. | |
2609 | (Options::parseTreatment): Ditto. | |
2610 | (Options::setVersionMin): Ditto. | |
2611 | (Options::setReadOnlyRelocTreatment): Delete. | |
2612 | (Options::setPICTreatment): Ditto. | |
2613 | (Options::Parse): Update for above. Add comments. | |
2614 | ||
2615 | 2005-12-15 Nick Kledzik <kledzik@apple.com> | |
2616 | ||
2617 | * src/MachOReaderRelocatable.hpp: Add comments about dwarf | |
2618 | ||
2619 | 2005-12-14 Nick Kledzik <kledzik@apple.com> | |
2620 | ||
2621 | * src/ELFFileAbstraction.hpp: Added | |
2622 | * src/ELFReaderRelocatable.hpp: Added | |
2623 | * Lot of fixes for new architecture | |
2624 | * Added __OPEN_SOURCE__ to "Preprocessor Macros" to disable new architecture support by default | |
2625 | ||
2626 | 2005-12-13 Nick Kledzik <kledzik@apple.com> | |
2627 | ||
2628 | * src/MachOReaderRelocatable.hpp: check for S_ATTR_DEBUG and ignore those sections | |
2629 | * unit-tests/test-cases/dwarf-ignore: added | |
2630 | ||
2631 | 2005-12-12 Nick Kledzik <kledzik@apple.com> | |
2632 | ||
2633 | * Added test harness and three initial tests: | |
2634 | relocs-asm, relocs-c, and hello-world | |
2635 | ||
2636 | 2005-12-12 Nick Kledzik <kledzik@apple.com> | |
2637 | ||
2638 | * src/MachOReaderRelocatable.hpp: Massive refactoring: | |
2639 | Now there are three Atom classes, Chopping into Atoms | |
2640 | is done on label boundaries or by knowledge of special | |
2641 | sections, Share lots of ppc/ppc64 code. | |
2642 | Stabs process code is temporarily disabled. | |
2643 | ||
2644 | 2005-12-12 Nick Kledzik <kledzik@apple.com> | |
2645 | ||
2646 | * src/ObjectDump.cpp: Add command line options: -no_content, -stabs, -no_sort | |
2647 | ||
2648 | 2005-12-11 Eric Christopher <echristo@apple.com> | |
2649 | ||
2650 | * src/Options.cpp: Reformat. | |
2651 | * src/Options.h: Ditto. | |
2652 | ||
2653 | 2005-12-07 Eric Christopher <echristo@apple.com> | |
2654 | ||
2655 | * src/MachOReaderRelocatable.hpp (Atom::getAlignment): | |
2656 | When calculating alignment of an Atom, take into account | |
2657 | the alignment from which we pulled the Atom. | |
2658 | ||
2659 | 2005-12-06 Nick Kledzik <kledzik@apple.com> | |
2660 | ||
2661 | * src/Options.cpp src/Options.h: Add design comments | |
2662 | ||
2663 | 2005-12-05 Eric Christopher <echristo@apple.com> | |
2664 | ||
2665 | * src/ld.cpp (Linker::createWriter): Uncomment ppc64 and | |
2666 | i386 linkers. | |
2667 | ||
2668 | 2005-12-05 Eric Christopher <echristo@apple.com> | |
2669 | ||
2670 | * ChangeLog: New file. | |
2671 | ||
2672 | 2005-12-02 Nick Kledzik <kledzik@apple.com> | |
2673 | ||
2674 | * src/ObjectFile.h: Add design comments | |
2675 | ||
2676 | 2005-11-30 Nick Kledzik <kledzik@apple.com> | |
2677 | ||
2678 | * Fix uses of __OPEN_SOURCE__ | |
2679 | ||
2680 | 2005-11-28 Nick Kledzik <kledzik@apple.com> | |
2681 | ||
2682 | * Refactor Atom to use getDefinitionKind() | |
2683 | ||
2684 | 2005-11-21 Nick Kledzik <kledzik@apple.com> | |
2685 | ||
2686 | * src/MachOWriterExecutable.hpp: don't generate section for commons in -r mode | |
2687 | ||
2688 | 2005-11-18 Nick Kledzik <kledzik@apple.com> | |
2689 | ||
2690 | * x86 tweaks | |
2691 | ||
2692 | 2005-11-18 Nick Kledzik <kledzik@apple.com> | |
2693 | ||
2694 | * src/ObjectDump.cpp: make work with command line arguments | |
2695 | ||
2696 | 2005-11-18 Nick Kledzik <kledzik@apple.com> | |
2697 | ||
2698 | * Massive rework to remove preprocessor conditionals and use templates | |
2699 | ||
2700 | 2005-11-14 Nick Kledzik <kledzik@apple.com> | |
2701 | ||
2702 | * Created new Subversion repository for ld64 from cvs tag ld64-27.2 |