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