]> git.saurik.com Git - apple/ld64.git/blobdiff - ChangeLog
ld64-97.2.tar.gz
[apple/ld64.git] / ChangeLog
index 79dcc59fe645223c92ca61590e3d8f1ee34e4360..ffe419096e330f8a24ef6b10d724e2b3a96870d0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
 
------ 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