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