]> git.saurik.com Git - apple/ld64.git/blobdiff - ChangeLog
ld64-96.5.tar.gz
[apple/ld64.git] / ChangeLog
index 79dcc59fe645223c92ca61590e3d8f1ee34e4360..77b92561575419f9d04e81cb8ee787e5e30a7e17 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
 
------ Tagged ld64-95.2.12
 
-2009-07-02    Nick Kledzik    <kledzik@apple.com>
+----- 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
 
------ Tagged ld64-95.2.11
 
-2009-06-19    Nick Kledzik    <kledzik@apple.com>
+2009-04-30     Nick Kledzik    <kledzik@apple.com>
 
-       <rdar://problem/6960981> Link Time Optimization errors out when targeting < 10.6
+       * 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
 
 ----- Tagged ld64-95.2.1
 
-2009-01-29     Nick Kledzik    <kledzik@apple.com>
+----- 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/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
+       <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