-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChangeLog
5177 lines (3013 loc) · 189 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
----- Tagged ld64-97.17
2010-09-07 Nick Kledzik <kledzik@apple.com>
<rdar://problem/7989734> ld mis-handling std::tr1::anonymous symbols
Remove support for ordering gcc-4.0 compiled anonymous namespace symbols
2010-09-07 Nick Kledzik <kledzik@apple.com>
<rdar://problem/8388362> RedGarnet's linker does not honor $ld$hide for umbrella libraries
----- Tagged ld64-97.16
2010-08-10 Nick Kledzik <kledzik@apple.com>
<rdar://problem/8303976> add -demangle noop to ld64-97
----- Tagged ld64-97.15
2010-08-10 Nick Kledzik <kledzik@apple.com>
<rdar://problem/8212744> linker crash when using LTO in lto::Atom::getSymbolTableInclusion()
----- Tagged ld64-97.14
2010-04-20 Nick Kledzik <kledzik@apple.com>
<rdar://problem/7712869> if last section is zero-fill don't add size to filesize total in -r mode
----- Tagged ld64-97.13
2010-03-17 Nick Kledzik <kledzik@apple.com>
<rdar://problem/7824112> Support for iPhoneSimulator with OBJC 2.0 ABI
----- Tagged ld64-97.12
2010-03-17 Nick Kledzik <kledzik@apple.com>
<rdar://problem/7712869> if last section is zero-fill don't add size to filesize total in -r mode
----- Tagged ld64-97.11
2010-01-26 Nick Kledzik <kledzik@apple.com>
<rdar://problem/7622634> Libc-624.1 causes latent ld bug
* build linker -no_pie
----- Tagged ld64-97.10
2010-01-26 Nick Kledzik <kledzik@apple.com>
<rdar://problem/7556912> LC_SEGMENT command 0 filesize field greater than vmsize field
* Move __DATA to end in -r mode
2010-01-26 Nick Kledzik <kledzik@apple.com>
<rdar://problem/7516793> symboled __ustring strings of just 0x0000 mis-parsed
* Parse __ustring section based on content - not just labels
----- Tagged ld64-97.9
2010-01-14 Nick Kledzik <kledzik@apple.com>
<rdar://problem/7532743> LC_SEGMENT command 0 filesize field greater than vmsize field
* for i386 -r mode sort __IMPORT segment before __DATA segment
2010-01-11 Nick Kledzik <kledzik@apple.com>
* fix ARM -r -d references to tentative definitions
----- Tagged ld64-97.8
2009-12-08 Nick Kledzik <kledzik@apple.com>
<rdar://problem/7455147> many mach-o images in Barolo have MH_WEAK_DEFINES bit incorrectly set
* don't let auto-strip weak symbols set MH_WEAK_DEFINES
----- Tagged ld64-97.7
2009-11-30 Nick Kledzik <kledzik@apple.com>
<rdar://problem/7429384> llvmgcc now puts const short arrays in __ustring section, linker does not handle that
* Only auto-coalesce UTF16 strings that are labeled with "___utf16_string*"
----- Tagged ld64-97.6
2009-11-06 Nick Kledzik <kledzik@apple.com>
<rdar://problem/7332627> make -pie default for x86_64 for 10.7 and later
2009-10-28 Nick Kledzik <kledzik@apple.com>
<rdar://problem/7331635> Add a -no_pie flag
* support -no_pie and LD_NO_PIE
----- Tagged ld64-97.5
2009-10-27 Nick Kledzik <kledzik@apple.com>
<rdar://problem/7341117> crash when __ustring section has zero length string
* stop trying to suppress tailing 0x0000 from synthesized string used to coalese utf16 strings
----- Tagged ld64-97.4
2009-10-21 Nick Kledzik <kledzik@apple.com>
<rdar://problem/7320293> missing thumb bit when thumb function takes address of itself
* move toao.atom == srcao.atom test to after fromao.atom == srcao.atom test
----- Tagged ld64-97.3
2009-10-06 Nick Kledzik <kledzik@apple.com>
* Add missing LittleEndian::set32() in arm::kPointerDiff
2009-10-05 Nick Kledzik <kledzik@apple.com>
<rdar://problem/7268427> ARM: handle pointer-diff to weak thumb that is overridden by non-weak ARM
* When parsing ARM relocations, if target is a thumb function, remove one from addend
* When writing out content for arm::kPointerDiff, add one if target is thumb
* When writing ARM_RELOC_SECTDIFF, use target offsets if they fit in function
----- Tagged ld64-97.2
2009-09-25 Nick Kledzik <kledzik@apple.com>
<rdar://problem/7200658> 'unknown DWARF EH encoding' message logged to console with clang-50
----- Tagged ld64-97.1
2009-07-28 Nick Kledzik <kledzik@apple.com>
<rdar://problem/7099040> make better no-PIC branch island to thumb1
* Add kBranchIslandNoPicToThumb1 as 8-byte no-PIC island
2009-07-20 Nick Kledzik <kledzik@apple.com>
<rdar://problem/7075703> section$start$__DATA$__bss can fail
* In SectionBoundaryAtom constructor make __bss and __common be zero-fill
* In AtomSorter, make sure end kSectionEnd sort after kTentativeDefinition
* unit-tests/test-cases/section-labels-zero-fill: add test cases
----- Tagged ld64-97
2009-07-13 Nick Kledzik <kledzik@apple.com>
<rdar://problem/7049478> empty dylib should have subtype from command line
In Linker::writeOutput() for ARM, set initial fCurrentCpuConstraint to be command line subtype
2009-07-09 Nick Kledzik <kledzik@apple.com>
<rdar://problem/7043920> crash when using -dead_strip and LTO with unresolved intrinsic
* In Linker::optimize() after final deadStripResolve() call checkUndefines() one last time
2009-07-09 Nick Kledzik <kledzik@apple.com>
<rdar://problem/7043256> ld64 can not find a -e entry point from an archive
* src/ld/ld.cpp: add searchArchives parameter to entryPoint() for use by deadStripResolve()
* unit-tests/test-cases/dead_strip-entry-archive: added test case
2009-07-08 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6702217> __objc_classrefs section could be coalesced
* In machoReader, chop up __objc_classrefs section into pointer size atoms
and make each weak and hidden with a name based on its target name.
2009-06-26 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6715874> "ld: symbol dyld_stub_binding_helper not defined" for xnu built with clang for x86_64
* Fix relocationNeededInFinalLinkedImage() to say weak-defs don't require indirection in static executables
* Added unit-tests/test-cases/static-executable-weak-defines
2009-06-26 Nick Kledzik <kledzik@apple.com>
<rdar://problem/7012016> Error msg for missing -init symbol is misleading/unclear
* In Linker::checkUndefines() check all ways that the command line could add an undefined
and then search for close matches/typos.
2009-06-25 Nick Kledzik <kledzik@apple.com>
<rdar://problem/5725900> We need ld-symbol-moving-symbols for ARM/Embedded
* In mach_o::dylib::Reader::addSymbol() parse iPhoneOS version strings
* Update IPhoneVersionMin
2009-06-25 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6933931> Linker makes subtype-zero file from empty subtype-nonzero file.
* In Linker::writeOutput() set inittal fCurrentCpuConstraint to be command line subtype
* Fix fArchitectureName to have arm sub-types
2009-06-24 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6955021> ld should do a better job of reporting attempts to link directories
* In Options::buildSearchPaths() sanity check -L and -F options
2009-06-24 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6974647> better error message when libLTO.dylib not loadable
* in Linker::createReader() provide detail error messages
----- Tagged ld64-96.10
2009-08-31 Nick Kledzik <kledzik@apple.com>
<rdar://problem/7182988> empty dylib has been __mh_dylib_header n_sect
* rework patch to use MinimalTextAtom to ensure there is always a __text section
----- Tagged ld64-96.9
2009-08-31 Nick Kledzik <kledzik@apple.com>
<rdar://problem/7182988> empty dylib has been __mh_dylib_header n_sect
* suppress __mh_dylib_header from symbol table if there is no __text section
Implicitly add dyld_stub_binder to libSystem.dylib so iPhone clients can build
against SnowLeopard libSystem.dylib.
----- Tagged ld64-96.8
2009-08-30 Nick Kledzik <kledzik@apple.com>
<rdar://problem/7049478> SWB: gcc-5577.1 fails to build vecLib
----- Tagged ld64-96.7
2009-08-29 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6933931> Linker makes subtype-zero file from empty subtype-nonzero file.
----- Tagged ld64-96.6
2009-07-30 Nick Kledzik <kledzik@apple.com>
<rdar://problem/7103437> ld: ldr 12-bit displacement out of range on SnowLeopard with gcc-5648
* in Section::Section() set fIndex to ensure __symbolstub1 sorts to end of __TEXT segment
----- Tagged ld64-96.5
2009-07-28 Nick Kledzik <kledzik@apple.com>
<rdar://problem/7073626> Thumb mode compilation isn't working on 3.1 beta 2
* Fix instructions used in kBranchIslandToThumb1 case
----- Tagged ld64-96.4
2009-06-22 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6992387> platform linker should use platform ld_classic
* Fix Options::gotoClassicLinker() to use realpath()s
2009-06-22 Nick Kledzik <kledzik@apple.com>
* Fix Options::setIPhoneVersionMin() to handle 2.x through 9.x
----- Tagged ld64-96.3
2009-06-17 Nick Kledzik <kledzik@apple.com>
* Change section sorting so that arm and ppc stub section is immediately after __text section
2009-06-17 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6975041> don't use no-PIC stubs in any dylibs - it might conflict with codesigning
* In StubAtom<arm>::StubAtom() don't use kStubNoPIC for OS dylibs
----- Tagged ld64-96.2
2009-06-09 Nick Kledzik <kledzik@apple.com>
* Back out page-cross branch work around
----- Tagged ld64-96.1
2009-06-05 Nick Kledzik <kledzik@apple.com>
* Fix "duplicate symbol cache-line-crossing-stub" error by giving placeholders unique names
* Fix -pie by allowing relocs in x86 stubs and stub helpers
----- Tagged ld64-96
2009-06-04 Nick Kledzik <kledzik@apple.com>
* Darwin x86_64 static codegen is really dynamic code gen, so use LTO_CODEGEN_PIC_MODEL_DYNAMIC
2009-06-03 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6945923> use lto_codegen_set_assembler_path()
2009-06-03 Nick Kledzik <kledzik@apple.com>
* In src/ld/LTOReader.hpp, move where -save-temps .bc file is saved to be after code model set
2009-06-01 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6806033> Link Time Optimization error with 'dead code strip' + hidden symbol
* scan newAtoms returned from optimize() looking for ones already in the symbol table
* add test case unit-tests/test-cases/lto-dead_strip-all-hidden
2009-05-19 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6881656> make dyld stubs smaller/faster
* Add new addSynthesizedAtoms() method to Writer, called before atoms are sorted
* Fix throwf() and warning() to check printf types
* Add arm::kPointerDiff12 to support fast arm stubs
* Add new ContentType values for stubs and (non)lazy pointers
* Add new variant of arm stub this is one instruction
2009-05-13 Nick Kledzik <kledzik@apple.com>
* ld64.xcodeproj/project.pbxproj: add warnings to dyldinfo target
* src/other/dyldinfo.cpp: support classic LINKEDIT format
2009-05-12 Nick Kledzik <kledzik@apple.com>
* src/ld/MachOWriterExecutable.hpp: fix optimization to skip branch islands with ARM bl instructions
2009-05-12 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6836647> creation of __unwind_info section can fail if hundreds of functions cannot be compact encoded
* src/ld/MachOWriterExecutable.hpp: fix when to make regular vs compressed pages
2009-05-08 Nick Kledzik <kledzik@apple.com>
* src/ld/ld.cpp: enhance -save-temps to also write out optimized bitcode file
2009-05-08 Nick Kledzik <kledzik@apple.com>
* src/ld/ld.cpp: fix -order_file_statistics to print each symbol not found and correct total
2009-05-08 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6870522> linker should be able to coalesce UTF16 strings
* src/ld/MachOReaderRelocatable.hpp: parse __ustring section by labels but synthesize an
atom name based on the content. Leverage for __cfstring section
* unit-tests/test-cases/cfstring-utf16: update test case
2009-05-07 Nick Kledzik <kledzik@apple.com>
* src/ld/MachOWriterExecutable.hpp: put branch islands further apart if there is no thumb code
2009-05-07 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6331300> LINKEDIT optimizations for iPhone
* src/ld/ObjectFile.h: Recognize iPhoneOS 3.1
* src/ld/Options.cpp: iPhoneOS 3.1 => use compressed LINKEDIT
* src/ld/MachOWriterExecutable.hpp: support generating compressed LINKEDIT for arm
2009-05-04 Nick Kledzik <kledzik@apple.com>
<rdar://problem/5716715> Add linker support for ARM branch islands
<rdar://problem/5253691> Add labels to linker synthesized jump islands
* src/ld/MachOWriterExecutable.hpp: reworked BranchIslandAtom and createBranchIslands to support arm/thumb
* src/ld/ObjectFile.h: added kBranchIsland
* unit-tests/test-cases/branch-islands: updated test case to check arm/thumb
2009-04-30 Nick Kledzik <kledzik@apple.com>
* src/ld/Options.cpp: fix custom stack base address for arm
2009-04-30 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6818272> likely incorrect warning about common symbols
* src/ld/Options.cpp: ignore LD_WARN_COMMONS in -r mode
----- Tagged ld64-95.8.3
2009-03-31 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6719270> ld might set MH_WEAK_DEFINES when it should not
* src/ld/MachOWriterExecutable.hpp: rescan fRegularDefAtomsThatOverrideADylibsWeakDef and only consider global ones
----- Tagged ld64-95.8.2
2009-03-18 Nick Kledzik <kledzik@apple.com>
* src/ld/MachOReaderRelocatable.hpp: back out -force_cpusubtype_ALL changes
----- Tagged ld64-95.8.1
2009-03-17 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6578416> -dead_strip inhibits weak coalescing in no_dead_strip section
* src/ld/ld.cpp: in markDead() remove from fLiveRootAtoms
2009-03-17 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6671072> libgcc fails to build in with ld64-95.8
* src/ld/MachOReaderRelocatable.hpp: interpret CPU_SUBTYPE_ARM_ALL as CPU_SUBTYPE_ARM_V4T
* src/ld/Options.cpp: interept -force_cpusubtype_ALL as -arch armv4t
----- Tagged ld64-95.8
2009-02-09 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6569316> ld64-95.7 crashes building Foundation-678.39 in side build
* src/ld/MachOReaderRelocatable.hpp: handle a zero length section with a label before __cstring section
----- Tagged ld64-95.7
2009-02-06 Nick Kledzik <kledzik@apple.com>
* src/ld/ObjectFile.h: make fAddCompactUnwindEncoding false by default
2009-02-06 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6537210> ER: add linker option to zero fill empty DATA sections on disk
* src/ld/Options.cpp: add support for -no_zero_fill_sections
* src/ld/MachOReaderRelocatable.hpp: isZeroFill() is only true if fOptimizeZeroFill
* doc/man/man1/ld.1: document -no_zero_fill_sections
* unit-tests/test-cases/no_zero_fill_sections: add test case
2009-02-05 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6497366> label getting resolved to the wrong address.
* src/ld/MachOWriterExecutable.hpp: add findAtomAndOffsetForSection() and use it to disambiguate
* unit-tests/test-cases/label-on-end-of-section: added test case
2009-01-27 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6517393> Warn -force_cpusubtype_ALL is not supported
* src/ld/Options.cpp: warn if fForceSubtypeAll and fArchitecture is CPU_TYPE_ARM
----- Tagged ld64-95.6
2009-01-25 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6439020> Add support for section start/end labels
* src/ld/ObjectFile.h: add kSectionStart and kSectionEnd
* src/ld/MachOReaderRelocatable.hpp: create SectionBoundaryAtoms as needed
* src/ld/ld.cpp: sort SectionBoundaryAtoms correctly
* src/ld/MachOWriterExecutable.hpp: allow all relocations in preload images
----- Tagged ld64-95.5
2009-01-15 Nick Kledzik <kledzik@apple.com>
* src/ld/MachOWriterExecutable.hpp: in hasPageCrossingBranches() ignore branches preceeded by a branch
----- Tagged ld64-95.4
2009-01-15 Nick Kledzik <kledzik@apple.com>
* src/ld/Options.cpp: handle -kext and -r the same for fPreventPageCrossingBranches
----- Tagged ld64-95.3
2009-01-14 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6497574> linker should alter layout to prevent armv7 page crossing branches
* src/ld/Options.cpp: set fPreventPageCrossingBranches
* src/ld/MachOWriterExecutable.hpp: adjust layout of __text so there are not page crossing branches
* src/ld/MachOReaderRelocatable.hpp: support new ARM_THUMB_32BIT_BRANCH reloce
----- Tagged ld64-95.2.10
2009-04-02 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6805002> corrupt metaclass entry in dynamic library
* src/ld/ld.cpp: change Section constructor to copy segment and section names
----- Tagged ld64-95.2.9
2009-04-02 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6744267> Update ld64 for new triples introduced in 6654669 to support ARM LLVM
* src/ld/LTOReader.hpp: change "arm-" to "arm" so matching works for new triples
----- Tagged ld64-95.2.8
2009-03-24 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6713931> anonymous functions have the compact unwind info computed wrong
* ld/MachOReaderRelocatable.hpp: use new compact unwind function in AnonymousAtom
----- Tagged ld64-95.2.7
2009-03-11 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6670421> AddressBook incorrectly gets _objc_msgSend from WebKit
* src/ld/MachOReaderDylib.hpp: fix processIndirectLibraries() to not force a private re-export of a dylib
that is already explictly or implicitly linked.
* unit-tests/test-cases/re-export-optimizations-indirect: add test case
2009-03-10 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6665853> dyld weak linking optimization leaves some symbols unbound
* src/ld/MachOWriterExecutable.hpp: be sure to create bind entry for a reference
to a symbol in a dylib that is a weak definition
* unit-tests/test-cases/coalesce_weak_def_in_dylib: add test case
2009-03-10 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6666004> many OS i386 OS dylibs still have __IMPORT segment
* ld/MachOReaderRelocatable.hpp: moved where __IMPORT/__pointer is changed to __DATA/__nl_symbol_ptr
* unit-tests/test-cases/stripped-indirect-symbol-table: updated to test for this problem
----- Tagged ld64-95.2.6
2009-02-27 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6633530> ld might set MH_WEAK_DEFINES when it should not
* src/ld/MachOWriterExecutable.hpp: only consider atoms in fRegularDefAtomsThatOverrideADylibsWeakDef
that will be exported when computing MH_WEAK_DEFINES
* unit-tests/test-cases/operator-new: updated to reproduce issue
----- Tagged ld64-95.2.5
2009-02-24 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6605499> x86_64 obj-c runtime confused when static lib is stripped
* src/ld/MachOWriterExecutable.hpp: in setLocalNlist() don't use 'l' labels for x86_64 strings
* unit-tests/test-cases/objc-literal-pointers-strip: added test case
----- Tagged ld64-95.2.4
2009-02-23 Nick Kledzik <kledzik@apple.com>
* src/ld/MachOReaderRelocatable.hpp: ignore ARM_THUMB_32BIT_BRANCH relocs
2009-02-18 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6583555> Writer<A>::symbolIndex() uses a linear search and does not scale
* src/ld/MachOWriterExecutable.hpp: build a std::map so symbolIndex() scales better
2009-02-18 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6312070> Use new compact encodings that handle all register permutations
* src/ld/Architectures.hpp: add kSectionOffset24
* src/ld/ObjectFile.h: add getFDE()
* src/ld/MachOReaderRelocatable.hpp: use new libunwind functions to get new compact encoding
* src/ld/MachOWriterExecutable.hpp: use new compact encoding which includes offset in dwarf if needed
* src/other/unwinddump.cpp: update unwinddump output to display register save set
2009-02-16 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6511619> runtime error with bundle for 10.5 that has weak external symols
* src/ld/ld.cpp: fix hybrid (10.5) compressed linkedit info for data pointing to weak definitions
2009-02-15 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6583757> i386 relocation error with negative offsets from local labels
* src/ld/MachOReaderRelocatable.hpp: handle when base addr of scattered relocation does not point to a label
* unit-tests/test-cases/relocs-neg-from-local: add test case
2009-02-12 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6578360> -dead_strip inhibits weak coalescing in no_dead_strip section
* src/ld/ld.cpp: remove atoms coalesced away from fLiveRootAtoms
* unit-tests/test-cases/dead_strip-weak-coalesce: added test case
2009-02-12 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6581809> x86_64 weak_import broken for initialized data
* src/ld/MachOReaderRelocatable.hpp: use isWeakImportSymbol() in Reader<x86_64>::addRelocReference()
* src/other/dyldinfo.cpp: update to display weak_import attribute
* unit-tests/test-cases/weak_import: updated test case
2009-02-06 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6541812> ld parsing of __eh_frame unwind information is slow
* src/ld/MachOReaderRelocatable.hpp: build a std::map of all __eh_frame relocations for x86_64
----- Tagged ld64-95.2.3
2009-02-04 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6545406> ld: warning: can't add line info to anonymous symbol
* src/ld/MachOReaderRelocatable.hpp: don't warn about line info in dyld stubs
----- Tagged ld64-95.2.2
2009-02-02 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6548268> ld -r does not preserve the N_NO_DEAD_STRIP bit
* src/ld/MachOWriterExecutable.hpp: set N_NO_DEAD_STRIP based on dontDeadStrip()
* unit-tests/test-cases/dead_strip-r_symbol_desc: added test case
----- Tagged ld64-95.2.1
----- Tagged ld64-95.2.10
2009-04-02 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6805002> corrupt metaclass entry in dynamic library
* src/ld/ld.cpp: change Section constructor to copy segment and section names
----- Tagged ld64-95.2.9
2009-04-02 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6744267> Update ld64 for new triples introduced in 6654669 to support ARM LLVM
* src/ld/LTOReader.hpp: change "arm-" to "arm" so matching works for new triples
----- Tagged ld64-95.2.8
2009-03-24 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6713931> anonymous functions have the compact unwind info computed wrong
* ld/MachOReaderRelocatable.hpp: use new compact unwind function in AnonymousAtom
----- Tagged ld64-95.2.7
2009-03-11 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6670421> AddressBook incorrectly gets _objc_msgSend from WebKit
* src/ld/MachOReaderDylib.hpp: fix processIndirectLibraries() to not force a private re-export of a dylib
that is already explictly or implicitly linked.
* unit-tests/test-cases/re-export-optimizations-indirect: add test case
2009-03-10 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6665853> dyld weak linking optimization leaves some symbols unbound
* src/ld/MachOWriterExecutable.hpp: be sure to create bind entry for a reference
to a symbol in a dylib that is a weak definition
* unit-tests/test-cases/coalesce_weak_def_in_dylib: add test case
2009-03-10 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6666004> many OS i386 OS dylibs still have __IMPORT segment
* ld/MachOReaderRelocatable.hpp: moved where __IMPORT/__pointer is changed to __DATA/__nl_symbol_ptr
* unit-tests/test-cases/stripped-indirect-symbol-table: updated to test for this problem
----- Tagged ld64-95.2.6
2009-02-27 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6633530> ld might set MH_WEAK_DEFINES when it should not
* src/ld/MachOWriterExecutable.hpp: only consider atoms in fRegularDefAtomsThatOverrideADylibsWeakDef
that will be exported when computing MH_WEAK_DEFINES
* unit-tests/test-cases/operator-new: updated to reproduce issue
----- Tagged ld64-95.2.5
2009-02-24 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6605499> x86_64 obj-c runtime confused when static lib is stripped
* src/ld/MachOWriterExecutable.hpp: in setLocalNlist() don't use 'l' labels for x86_64 strings
* unit-tests/test-cases/objc-literal-pointers-strip: added test case
----- Tagged ld64-95.2.4
2009-02-23 Nick Kledzik <kledzik@apple.com>
* src/ld/MachOReaderRelocatable.hpp: ignore ARM_THUMB_32BIT_BRANCH relocs
2009-02-18 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6583555> Writer<A>::symbolIndex() uses a linear search and does not scale
* src/ld/MachOWriterExecutable.hpp: build a std::map so symbolIndex() scales better
2009-02-18 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6312070> Use new compact encodings that handle all register permutations
* src/ld/Architectures.hpp: add kSectionOffset24
* src/ld/ObjectFile.h: add getFDE()
* src/ld/MachOReaderRelocatable.hpp: use new libunwind functions to get new compact encoding
* src/ld/MachOWriterExecutable.hpp: use new compact encoding which includes offset in dwarf if needed
* src/other/unwinddump.cpp: update unwinddump output to display register save set
2009-02-16 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6511619> runtime error with bundle for 10.5 that has weak external symols
* src/ld/ld.cpp: fix hybrid (10.5) compressed linkedit info for data pointing to weak definitions
2009-02-15 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6583757> i386 relocation error with negative offsets from local labels
* src/ld/MachOReaderRelocatable.hpp: handle when base addr of scattered relocation does not point to a label
* unit-tests/test-cases/relocs-neg-from-local: add test case
2009-02-12 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6578360> -dead_strip inhibits weak coalescing in no_dead_strip section
* src/ld/ld.cpp: remove atoms coalesced away from fLiveRootAtoms
* unit-tests/test-cases/dead_strip-weak-coalesce: added test case
2009-02-12 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6581809> x86_64 weak_import broken for initialized data
* src/ld/MachOReaderRelocatable.hpp: use isWeakImportSymbol() in Reader<x86_64>::addRelocReference()
* src/other/dyldinfo.cpp: update to display weak_import attribute
* unit-tests/test-cases/weak_import: updated test case
2009-02-06 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6541812> ld parsing of __eh_frame unwind information is slow
* src/ld/MachOReaderRelocatable.hpp: build a std::map of all __eh_frame relocations for x86_64
----- Tagged ld64-95.2.3
2009-02-04 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6545406> ld: warning: can't add line info to anonymous symbol
* src/ld/MachOReaderRelocatable.hpp: don't warn about line info in dyld stubs
----- Tagged ld64-95.2.2
2009-02-02 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6548268> ld -r does not preserve the N_NO_DEAD_STRIP bit
* src/ld/MachOWriterExecutable.hpp: set N_NO_DEAD_STRIP based on dontDeadStrip()
* unit-tests/test-cases/dead_strip-r_symbol_desc: added test case
----- Tagged ld64-95.2.1
2009-01-29 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6532377> gcc DejaGnu failure: building longcall/dylib library
* src/ld/MachOWriterExecutable.hpp: if no __DATA sections insert non-lazy pointers at end of __TEXT segment
* unit-tests/test-cases/no-data-bundle: added test case
----- Tagged ld64-95.2
2009-01-06 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6476760> strip -S fails with "new trie is larger than original"
* src/other/PruneTrie.cpp: don't align trie more than original trie was aligned
----- Tagged ld64-95.1
2008-12-21 Nick Kledzik <kledzik@apple.com>
* src/ld/MachOWriterExecutable.hpp: in new linkedit format, make sure only exported symbols
make it into weak binding info
----- Tagged ld64-95
2008-12-18 Nick Kledzik <kledzik@apple.com>
* src/ld/Options.cpp: move check for fSharedRegionEligible until fPrebind has stabilized
2008-12-18 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6305021> Generate new compressed LINKEDIT when targeting 10.6
* src/ld/Options.cpp: turn on compressed LINKEDIT by default
----- Tagged ld64-94.1
2008-12-16 Nick Kledzik <kledzik@apple.com>
* src/ld/Options.cpp: Fix -F handling in buildSearchPaths()
----- Tagged ld64-94
2008-12-15 Nick Kledzik <kledzik@apple.com>
* doc/man/man1/ld.1: document new options
2008-12-15 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6134468> linker should enforce all .o files have same sub-type, and ignore sub-type of dylibs
* doc/man/man1/ld.1: update man page about -allow_sub_type_mismatches
* src/ld/ld.cpp: call validFile() with new arguments
* src/ld/MachOReaderRelocatable.hpp: add new arguments to validFile()
* src/ld/Options.cpp: Support LD_ALLOW_CPU_SUBTYPE_MISMATCHES and -allow_sub_type_mismatches
2008-12-15 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6438270> -syslibroot should skip standard search paths not in the SDK
* src/ld/Options.cpp: in buildSearchPaths() if an SDK is specified don't add
standard search paths not in the SDK.
2008-12-15 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6406609> ld: remove "can't make compact unwind encoding" warning
* src/ld/ObjectFile.h: add fWarnCompactUnwind
* src/ld/Options.cpp: -warn_compact_unwind --> fWarnCompactUnwind
* src/ld/MachOReaderRelocatable.hpp: test fWarnCompactUnwind before warning
2008-12-15 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6442926> Add dtrace usdt support for arm to ld64
* src/ld/MachOWriterExecutable.hpp: handle arm::kDtraceIsEnabledSite
* unit-tests/test-cases/dtrace-static-probes: use is-enabled in test case
----- Tagged ld64-93
2008-12-11 Nick Kledzik <kledzik@apple.com>
* src/ld/ObjectFile.h: add fIPhoneVersionMin to track min iPhoneOS version
* src/ld/Options.cpp: use fIPhoneVersionMin
2008-12-11 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6431277> non-lazy pointer to non-global tentative definition encoded wrong
* src/ld/MachOWriterExecutable.hpp: don't use INDIRECT_SYMBOL_LOCAL for tentative definitions
* unit-tests/test-cases/non-lazy-r: updated test case
2008-12-11 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6437667> kernel fails to boot when ld64 used for intermediate ld -r step
* src/ld/MachOWriterExecutable.hpp: in -r mode when generating a scattered sect-diff reloc for
i386/arm, special case when from target is not the atom
the relocation is in.
* unit-tests/test-cases/relocs-asm: update test case
2008-12-11 Nick Kledzik <kledzik@apple.com>
* src/ld/ld.cpp: handle new __program_vars section
* src/ld/MachOWriterExecutable.hpp: handle inserting synthesized sections when there is no __dyld section
2008-12-11 Nick Kledzik <kledzik@apple.com>
* src/ld/MachOReaderRelocatable.hpp: Fix getDescription() to work when direct reference is to anonymous atom
2008-12-10 Nick Kledzik <kledzik@apple.com>
* src/ld/Options.cpp: enable LD_FORCE_NO_PREBIND to be used with arm
2008-12-10 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6258169> Developer tool to print the new compressed LINKEDIT information
* src/other/dyldinfo.cpp: fix typo in usage()
2008-12-05 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6308882> SnowLeopard kernel should compile warning free
* src/ld/MachOReaderRelocatable.hpp: correct parse two global labels at end of section and make one an alias
* unit-tests/test-cases/end-label: update test case
2008-12-04 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6342245> Better warning than "PPC_RELOC_JBSR should not be using an external relocation"
* src/ld/MachOReaderRelocatable.hpp: issue warning with .o path if it was compiled with -mlong-branch
2008-12-04 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6408832> linker should not map __pointers -> __nl_symbol_ptr unless actually making new LINKEDIT
* src/ld/ObjectFile.h: add fMakeCompressedDyldInfo for readers to see
* src/ld/Options.cpp: set fMakeCompressedDyldInfo for readers to see
* src/ld/MachOReaderRelocatable.hpp: check fMakeCompressedDyldInfo
2008-12-02 Nick Kledzik <kledzik@apple.com>
* src/ld/debugline.c: fix error handling in line_open()
2008-11-26 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6401277> vtable with thumb entries broke after ld -r
* src/ld/MachOReaderRelocatable.hpp: if target of reloc is thumb, mask thumb bit off addend
* unit-tests/test-cases/thumb-pointer: added test case
2008-11-26 Nick Kledzik <kledzik@apple.com>
* src/ld/Option.cpp: Fix how crashreporterBuffer is created to not miss some arguments
2008-11-24 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6398605> Security.framework has some duplicate FDEs for some functions
* src/ld/ld.cpp: remove fDeadAtoms from fLiveAtoms when there are weak atoms overriden by late loads
* unit-tests/test-cases/dead_strip-archive-eh: added test case
----- Tagged ld64-92
2008-11-21 Nick Kledzik <kledzik@apple.com>
* src/ld/MachOReaderDylib.hpp: if export_size is zero, no need to parse trie
* src/abstraction/MachOTrie.hpp: gracefully handle empty trie
2008-11-21 Nick Kledzik <kledzik@apple.com>
<rdar://problem/6257854> strip(1) support for new compressed LINKEDIT information
* ld64.xcodeproj/project.pbxproj: build and install new libprunetrie.a
* src/other/prune_trie.h: added
* src/other/PruneTrie.cpp: implements prune_trie()
2008-11-21 Nick Kledzik <kledzik@apple.com>
* src/ld/ld.cpp: if an export file is used and all weak symbols are masked, don't set WEAK_DEFINES