]> git.saurik.com Git - apple/ld64.git/blob - ChangeLog
ld64-84.1.2.tar.gz
[apple/ld64.git] / ChangeLog
1
2 ----- Tagged ld64-84.1.2
3
4 2008-04-09 Nick Kledzik <kledzik@apple.com>
5
6 <rdar://problem/5852023> -undefined dynamic_lookup busted
7 * src/ld.cpp: don't create proxy atom when scanning for dylib duplicates
8 * unit-tests/test-cases/tentative-and-archive: use -undefined dynamic_lookup
9
10 ----- Tagged ld64-84.1
11
12 2008-03-28 Nick Kledzik <kledzik@apple.com>
13
14 <rdar://problem/5720961> ld should prefer architecture-specific variant over generic in fat object file
15 * src/Options.cpp: fully process -arch arguments into fArchitecture and fSubArchitecture
16 * src/ld.cpp: when -arch with a subtype is used, try to find the exact subtype from fat files
17 * unit-tests/test-cases/cpu-sub-types-preference: added test cases for arm and ppc
18
19
20 ----- Tagged ld64-84
21
22 2008-03-28 Nick Kledzik <kledzik@apple.com>
23
24 * src/LTOReader.hpp: don't print lto version, if lto is unavailable
25
26
27 2008-03-26 Nick Kledzik <kledzik@apple.com>
28
29 <rdar://problem/5575399> Add LD_WARN_COMMONS to BigBear builds
30 * src/Options.cpp: Add support for LD_WARN_FILE which copies all warnings to a side file
31
32
33 2008-03-26 Nick Kledzik <kledzik@apple.com>
34
35 <rdar://problem/5797713> Need encryption tag in mach-o file
36 <rdar://problem/5811920> linker should adjust arm final linked images so __text is never on the same page as the load commands
37 * src/MachOFileAbstraction.hpp: add support for encryption_info_command
38 * src/Options.cpp: add support for LD_NO_ENCRYPT and -no_encryption
39 * src/MachOWriterExecutable.hpp: add EncryptionLoadCommandsAtom
40 * src/machochecker.cpp: validate LC_ENCRYPTION_INFO
41
42
43 2008-03-25 Nick Kledzik <kledzik@apple.com>
44
45 <rdar://problem/5712533> ld64 does not recognize LLVM bitcode archive files
46 * src/MachOReaderArchive.hpp: renamed to src/ArchiveReader.hpp
47 * src/ArchiveReader.hpp: sniff each member and instantiate correct reader
48 * src/ld.cpp: rename mach_o::archive::Reader to archive::Reader
49 * ld64.xcodeproj/project.pbxproj: rename MachOReaderArchive.hpp to ArchiveReader.hpp
50 * unit-tests/test-cases/llvm-integration: added test case
51
52
53 2008-03-25 Nick Kledzik <kledzik@apple.com>
54
55 <rdar://problem/5771658> ld64 should switch to new libLTO.dylib interface
56 <rdar://problem/5675690> Produce llvm bc file in 'ld -r' mode if all .o files are llvm bc
57 * src/LTOReader.hpp: rewrite from LLVMReader.hpp to use new lto_* C interface
58 * unit-tests/test-cases/llvm-integration: update and comment
59 * ld64.xcodeproj/project.pbxproj: update to lazy load libLTO.dylib
60 * src/ld.cpp: rework and simplify Linker::optimize()
61 * src/ObjectDump.cpp: Add -nm option
62
63
64 2008-03-25 Nick Kledzik <kledzik@apple.com>
65
66 * src/MachOReaderRelocatable.cpp: Fix some .objc_class_name_ off by one problem
67 * src/MachOWriterExecutable.cpp: Fix some .objc_class_name_ off by one problem
68
69
70 2008-03-24 Nick Kledzik <kledzik@apple.com>
71
72 <rdar://problem/5814613> Xcode 3.1 breaks linkage of libgcj.9.dylib from gcc 4.3.0
73 * src/MachOWriterExecutable.cpp: Make sure all ivars in Writer are initialized.
74
75
76 2008-03-21 Nick Kledzik <kledzik@apple.com>
77
78 * src/Options.cpp: warn if -seg1addr value is not page aligned
79
80
81 2008-03-21 Nick Kledzik <kledzik@apple.com>
82
83 <rdar://problem/5806437> Move ARM support outside of __OPEN_SOURCE__
84 * src/ld.cpp: remove __OPEN_SOURCE__ around arm support
85 * src/LLVMReader.hpp: remove __OPEN_SOURCE__ around arm support
86 * src/MachOReaderDylib.hpp: remove __OPEN_SOURCE__ around arm support
87 * src/ObjectFile.h: remove __OPEN_SOURCE__ around arm support
88 * src/MachOReaderRelocatable.hpp: remove __OPEN_SOURCE__ around arm support
89 * src/OpaqueSection.hpp: Cover arm support inside __OPEN_SOURCE__ macro check
90 * src/MachOWriterExecutable.hpp: remove __OPEN_SOURCE__ around arm support
91 * src/ObjectDump.cpp: remove __OPEN_SOURCE__ around arm support
92 * ld64.xcodeproj/project.pbxproj: remove ARM_SUPPORT from config.h
93
94
95 ----- Tagged ld64-83.2
96
97 2008-03-15 Nick Kledzik <kledzik@apple.com>
98
99 <rdar://problem/5801620> ld64-83 removes OBJC_CLASS_$ symbols from projects, causes catastrophic results
100 * src/Options.cpp: restore "case CPU_TYPE_ARM" in switch statement for .objc_class symbols in .exp files
101 * unit-tests/test-cases/objc-exported_symbols_list: added test case
102
103
104 ----- Tagged ld64-83.1
105
106 2008-03-14 Nick Kledzik <kledzik@apple.com>
107
108 <rdar://problem/5800466> -iphone_version_min ==> -iphoneos_version_min
109 * src/Options.cpp: support -iphoneos_version_min as well
110
111
112 ----- Tagged ld64-83
113
114 2008-03-10 Nick Kledzik <kledzik@apple.com>
115
116 <rdar://problem/5791543> ld needs to strip iphone_version_min option if invoking ld_classic
117 * src/Options.cpp: suppress -iphone_version_min from being passed to ld_classic
118
119
120 2008-03-04 Nick Kledzik <kledzik@apple.com>
121
122 <rdar://problem/4171253> ADOBE XCODE: Linker option to lazy load frameworks (cause dyld is too slow)
123 * src/MachOWriterExecutable.hpp: create lazy stubs and LC_LAZY_LOAD_DYLIB for lazy load dylibs
124 * src/Options.cpp: support -lazy-l, -lazy_library, and -lazy_framework
125 * src/MachOFileAbstraction.hpp: add LC_LAZY_LOAD_DYLIB and S_LAZY_DYLIB_SYMBOL_POINTERS until in cctools
126 * src/MachOReaderDylib.hpp: add isLazyLoadedDylib()
127 * src/ld.cpp: pass lazy helper atom to writer
128 * doc/man/man1/ld.1: document new options
129 * unit-tests/test-cases/lazy-dylib-objc: add test case
130 * unit-tests/test-cases/lazy-dylib: add test case
131
132
133 ----- Tagged ld64-82.7
134
135 2008-03-07 Nick Kledzik <kledzik@apple.com>
136
137 <rdar://problem/5787149> duplicate symbol literal-pointer@__OBJC@__message_refs@...
138 * src/MachOReaderRelocatable.hpp: AnonymousAtom from S_LITERAL_POINTERS section should be weak
139 * unit-tests/test-cases/objc-selector-coalescing: added test case
140
141
142 ----- Tagged ld64-82.6
143
144 2008-03-04 Nick Kledzik <kledzik@apple.com>
145
146 <rdar://problem/5779681> ld crashes building XsanFS for Snow Leopard Builds
147 * src/ld.cpp: add bool dylibsOnly parameter to addJustInTimeAtoms()
148 * unit-tests/test-cases/tentative-and-archive: added test case
149
150 2008-03-04 Nick Kledzik <kledzik@apple.com>
151
152 <rdar://problem/5775822> ld64 should not force building with gcc 4.0
153 * ld64.xcodeproj/project.pbxproj: change rules to use "system" compiler instead of 4.0
154
155
156 2008-02-29 Nick Kledzik <kledzik@apple.com>
157
158 <rdar://problem/5774730> Simulator frameworks are being build split-seg and not prebound
159 * src/Options.cpp: only splitseg if prebound
160
161
162 2008-02-29 Nick Kledzik <kledzik@apple.com>
163
164 <rdar://problem/5774231> Linker should not make GSYM debug note for .objc_category_* symbols
165 * src/ld.cpp: suppress GSYM debug notes for absolute symbols
166 * unit-tests/test-cases/objc-category-debug-notes: added test case
167
168
169 2008-02-29 Nick Kledzik <kledzik@apple.com>
170
171 <rdar://problem/5768970> non-ASCII CFString support is broken
172 * src/MachOReaderRelocatable.hpp: only name and coalesce cfstring constants if they use a __cstring
173 * unit-tests/test-cases/cfstring-utf16: add test case
174
175
176 2008-02-25 Nick Kledzik <kledzik@apple.com>
177
178 <rdar://problem/5366363> ld -r -x
179 * doc/man/man1/ld.1: update man page to explain -r -x produces auto-stripped labels
180
181
182 ----- Tagged ld64-82.5
183
184 2008-02-12 Nick Kledzik <kledzik@apple.com>
185
186 <rdar://problem/5738023> x86_64: -stack_size failure when large __bss is used
187 * src/ld.cpp: only move section already in __DATA segment to new __huge section
188 * unit-tests/test-cases/stack_size_no_addr: updated test case to add large bss section
189
190
191 ----- Tagged ld64-82.4
192
193 2008-02-06 Nick Kledzik <kledzik@apple.com>
194
195 <rdar://problem/5726215> comdat warnings with ld -r of C++ .o files
196 * unit-tests/test-cases/eh-coalescing-r: added test case
197 * src/ld.cpp: in ld -r mode don't warn about if .eh symbols are not static
198
199
200 2008-02-06 Devang Patel <dpatel@apple.com>
201
202 <rdar://problem/5724990> LTO of Bom framework with -dead_strip causes ld(1) crash
203 * src/LLVMReader.hpp: Check fAtom while determining LLVMReference target binding.
204 * unit-tests/test-cases/llvm-integration/Makefile: Add new test case.
205 * unit-tests/test-cases/llvm-integration/a15.c: New.
206 * unit-tests/test-cases/llvm-integration/b15.c: New.
207 * unit-tests/test-cases/llvm-integration/c15.c: New.
208
209 2008-02-05 Nick Kledzik <kledzik@apple.com>
210
211 * src/ld.cpp: fix for -arch ppc -mdynamic-no-pic -pie so PPC_RELOC_HA16 reloc is used
212
213 ----- Tagged ld64-82.3
214
215 2008-02-04 Nick Kledzik <kledzik@apple.com>
216
217 <rdar://problem/5721186> ld doesn't seem to understand $ld$add$os... and $ld$hide$os... for 10.6 moves
218 * src/ObjectFile.h: add 10.6
219 * src/Options.cpp: add 10.6 support
220 * src/MachOReaderDylib.hpp: recognize $os10.6$
221
222
223 ----- Tagged ld64-82.2
224
225 2008-01-30 Devang Patel <dpatel@apple.com>
226
227 <rdar://problem/5714833> Can't build 64-bit Intel binaries with LTO
228 <rdar://problem/5714787> ld64 fails to build with llvm-gcc-4.2
229 * src/LLVMReader.hpp: Fix character count typo in strncmp call.
230 Use const char * to initialize temp. string.
231 * ld64.xcodeproj/project.pbxproj: use $(DEVELOPER_DIR) in header search construction
232 instead of hard coding /Developer.
233
234 ----- Tagged ld64-82.1
235
236 2008-01-23 Nick Kledzik <kledzik@apple.com>
237
238 * src/MachOReaderRelocatable.hpp: don't bus error if S_LITERAL_POINTERS is missing relocs
239
240
241 2008-01-22 Nick Kledzik <kledzik@apple.com>
242
243 <rdar://problem/5695496> ld uses 32-bits in some places to hold addresses when parsing 64-bit mach-o files
244 * src/MachOReaderRelocatable.hpp: use AddrToAtomMap type that switch address to 64-bits for 64-bit archs
245 * src/MachOWriterExecutable.hpp: verify BR14 does not overflow for external relocs
246 * unit-tests/test-cases/relocs-c: update test case to slide addresses to verify x86_64 .o files
247
248
249 ----- Tagged ld64-82
250
251 2008-01-18 Nick Kledzik <kledzik@apple.com>
252
253 <rdar://problem/5694612> Bad grammar used in ld warning: cannot exported hidden symbol
254 * src/ld.cpp: fix typo in warning string
255
256
257 2008-01-16 Nick Kledzik <kledzik@apple.com>
258
259 <rdar://problem/5565074> Bundle Loader does not work anymore when loader is a bundle
260 <rdar://problem/5590203> ld warns of incorrect architecture when linking a bundle to a bundle
261 * src/MachOReaderDylib.hpp: support linking against bundles via -bundle_loader. Clean up error messages
262 * unit-tests/test-cases/bundle_loader: update test case
263
264
265 2008-01-16 Nick Kledzik <kledzik@apple.com>
266
267 <rdar://problem/5366363> ld -r -x creates debug notes (stabs) when it should not with -x (keep only global symbols)
268 * src/Options.cpp: in reconfigureDefaults() if -r and -x then -S
269
270
271 2008-01-16 Nick Kledzik <kledzik@apple.com>
272
273 <rdar://problem/5566068> if ld crashes while writing output file, it should delete the half written file
274 * src/MachOWriterExecutable.hpp: wrap open/write/close in try block and add signal handlers all to delete
275 output file on failure.
276
277
278 2008-01-16 Devang Patel <dpatel@apple.com>
279
280 * src/LLVMReader.hpp: Use __gnu_cxx::hash_map instead of hash supported by LLVM.
281
282
283 2008-01-16 Nick Kledzik <kledzik@apple.com>
284
285 <rdar://problem/5593537> GC-supported library can't be linked into GC-required executable
286 * src/ld.cpp: loosen constraint that all objc code must be compiled with same GC settings and
287 allow gc-compatible code to be linked into anything.
288 * unit-tests/test-cases/objc-gc-checks: update test case
289
290
291 2008-01-15 Nick Kledzik <kledzik@apple.com>
292
293 <rdar://problem/5687976> no debug notes for custom named data
294 * src/ld.cpp: in synthesizeDebugNotes() check getSymbolTableInclusion() instead of for leading underscore
295 * unit-tests/test-cases/dwarf-debug-notes: update test case
296
297 ----- Tagged ld64-81.5
298
299 2008-01-14 Devang Patel <dpatel@apple.com>
300
301 <rdar://problem/5683813> llvm-gcc-4.2 fails to build Sqlite 3.5.4 with -O4
302 * src/LLVMReader.hpp: Resolve proxy references. Collect new unbounded references
303 after optimization.
304 * src/ld.cpp: Resolve additional unbounded references after optimization.
305
306
307 2008-01-14 Nick Kledzik <kledzik@apple.com>
308
309 <rdar://problem/5655246> PPC Leopard (Xcode 3.0) linker ld gets "Bus error" sometimes
310 * src/MachOReaderRelocatable.hpp: use same code as x86 to parse ppc and arm sect-diff relocs
311 * src/MachOWriterExecutable.hpp: use same code as x86 to write ppc and arm sect-diff relocs
312
313
314 2008-01-11 Nick Kledzik <kledzik@apple.com>
315
316 <rdar://problem/5637618> PPC Leopard (Xcode 3.0) linker ld reports "unknown scattered relocation type 4"
317 * src/MachOReaderRelocatable.hpp: add PPC_RELOC_HI16 to scattered reloc parsing
318 * unit-tests/test-cases/relocs-asm/relocs-asm.s: added tests for scattered hi/lo instructions
319
320
321 2008-01-11 Nick Kledzik <kledzik@apple.com>
322
323 * doc/man/man1/ld.1: add doc for -no_implicit_dylibs, -read_only_stubs, -slow_stubs, -interposable_list
324
325
326 2008-01-11 Nick Kledzik <kledzik@apple.com>
327
328 <rdar://problem/4800212> ld64(1) man page uses ambiguous term "suffix"
329 * doc/man/man1/ld.1: make meaning of "suffix" more explicit
330
331
332 2008-01-11 Nick Kledzik <kledzik@apple.com>
333
334 <rdar://problem/5633081> Obj-C Symbols in Leopard Can't Be Weak Linked
335 * src/MachOWriterExecutable.hpp: set weak and lazy attributes on dummy .objc_class_name undefines
336 to dylibs to support Mac OS X 10.3.x dyld
337
338
339 2008-01-11 Nick Kledzik <kledzik@apple.com>
340
341 <rdar://problem/5669751> Unknown error with linker (dyld: unknown external relocation type)
342 * src/ld.cpp: fix crash when SO stabs are not balanced
343
344
345 2008-01-11 Devang Patel <dpatel@apple.com>
346
347 <rdar://problem/5667433> LTO does not work if expected output is a dynamic library
348 * src/LLVMReader.hpp: Supply arguments describing output kind to optimizer. Communicate
349 visibility info.
350
351 2000-01-10 Nick Kledzik <kledzik@apple.com>
352
353 <rdar://problem/5680988> __cls_refs section is losing S_LITERAL_POINTERS section type
354 * src/MachOWriterExecutable.hpp: special case __cls_refs section
355 * unit-tests/test-cases/objc-literal-pointers: add test case
356
357
358 2008-01-03 Nick Kledzik <kledzik@apple.com>
359
360 <rdar://problem/5667688> wrong EH information might be used
361 Created new kGroupSubordinate reference kind to model group comdat. The "signature" atom
362 has kGroupSubordinate references to the other atoms in the group. If the signature atom
363 is coalesced away, the linker follows kGroupSubordinate references and throws away the
364 other members of the group.
365 * unit-tests/test-cases/eh-coalescing: added test case
366 * src/ld.cpp: added markDead() and use propagate to subordinates
367 * src/Architectures.hpp: added kGroupSubordinate
368 * src/MachOReaderRelocatable.hpp: add kGroupSubordinate reference from a function to its .eh atom
369 and if used, from .eh atom to its LSDA atom.
370 * src/MachOWriterExecutable.hpp: handle kGroupSubordinate like kNoFixUp
371
372 ----- Tagged ld64-81.4.1
373
374 2007-12-19 Devang Patel <dpatel@apple.com>
375
376 * src/LLVMReader.hpp: Add LLVM_LTO_VERSION #ifdef check.
377
378 2007-12-19 Devang Patel <dpatel@apple.com>
379
380 * src/LLVMReader.hpp: Add fOptimizer NULL check before calling printVersion().
381
382 2007-12-19 Devang Patel <dpatel@apple.com>
383
384 <rdar://problem/5655956> print LLVM LTO version number in verbose mode
385 * src/LLVMReader.hpp: Add printLLVMVersion() to print llvm version string in verbose mode.
386 * src/Options.cpp: Use printLLVMVersion() in verbose mode.
387
388 2007-12-19 Devang Patel <dpatel@apple.com>
389
390 <rdar://problem/5655956> print LLVM LTO version number in verbose mode
391 * src/Options.h: Add verbose() method to check fVerbose flag.
392 * src/LLVMReader.hpp: Print LLVM version string in verbose mode.
393
394 ----- Tagged ld64-81.4
395
396 2007-12-18 Devang Patel <dpatel@apple.com>
397
398 * src/LLVMReader.hpp: Invalidate input architecture when optimizer is not available.
399
400 ----- Tagged ld64-81.3
401
402 2007-12-17 Nick Kledzik <kledzik@apple.com>
403
404 * ld64.xcodeproj/project.pbxproj: remove extraneous header search paths
405
406
407 2007-12-17 Devang Patel <dpatel@apple.com>
408
409 * src/LLVMReader.hpp: Do not throw exception if LLVMReader is not able to
410 dlopen LTO library. Instead just flag input file as an invalid LLVM bitcode file.
411
412
413 2007-12-14 Nick Kledzik <kledzik@apple.com>
414
415 <rdar://problem/5645908> gcc DejaGnu failure: gcc.dg/20020312-2.c (test for excess errors) (-fstack-protector-all)
416 * src/MachOWriterExecutable.hpp: fix Writer<x86>::generatesExternalTextReloc() to allow text relocs
417 * unit-tests/test-cases/read-only-relocs: updated test case to link a dynamic main executable compiled with -static
418
419
420 2007-12-14 Devang Patel <dpatel@apple.com>
421
422 <rdar://problem/5648438> Enable Link Time Optimization in Opal
423 * src/LLVMReader.hpp: Locate LLVMlto.dylib relative to ld location in Developer folder.
424 * ld64.xcodeproj/project.pbxproj: Add {DEVELOPER_DIR}/usr/include in header search path.
425 * unit-tests/run-all-unit-tests: Set DYLD_FALLBACK_LIBRARY_PATH to find LLVMlto.dylib during unit testing.
426 * unit-tests/testcases/llvm-integration/Makefile: Point LLVMGCC and LLVMGXX to llvm-gcc-4.2 in Developer folder during unit testing.
427
428
429 2007-12-13 Nick Kledzik <kledzik@apple.com>
430
431 <rdar://problem/5645446> SWB: failures due to ld: pointer in read-only segment not allowed in slidable image, used in ...
432 * src/MachOReaderRelocatable.hpp: in Reader<x86>::addRelocReference() handle weak pc-rel 32-bit vanilla relocs properly
433
434 ----- Tagged ld64-81.2
435