------ Tagged ld64-95.2.12
+----- Tagged ld64-97.2
-2009-07-02 Nick Kledzik <kledzik@apple.com>
+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.2.11
+----- Tagged ld64-95.5
-2009-06-19 Nick Kledzik <kledzik@apple.com>
+2009-01-15 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/6960981> Link Time Optimization errors out when targeting < 10.6
+ * 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
----- Tagged ld64-95.2.1
-2009-01-29 Nick Kledzik <kledzik@apple.com>
+----- Tagged ld64-95.2.10
- <rdar://problem/6535736> ld coalesces C strings in different segments
- * src/ld/MachOReaderRelocatable.hpp: only do standard coalescing on __cstring section if is in __TEXT segment
- * unit-tests/test-cases/cstring-alt-segment: add test case
+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