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