------ Tagged ld64-97.17
+-------- tagged ld64-123.2.1
-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>
+2010-03-07 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
+ <rdar://problem/8955206> enable i386 ASLR
+-------- tagged ld64-123.2
------ Tagged ld64-97.9
+2010-12-10 Nick Kledzik <kledzik@apple.com>
-2010-01-14 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8746980> Man page typo: "dysmutil" under object_path_lto
- <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
+2010-12-10 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8746896> ld64 crashes when warning about re-exported symbol
------ Tagged ld64-97.3
-
-2009-10-06 Nick Kledzik <kledzik@apple.com>
+-------- tagged ld64-123.1
- * Add missing LittleEndian::set32() in arm::kPointerDiff
+2010-12-07 Nick Kledzik <kledzik@apple.com>
-2009-10-05 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8732097> assertion if symbol from re-exported dylib is in -exported_symbols_list
- <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-123
+2010-12-06 Nick Kledzik <kledzik@apple.com>
------ Tagged ld64-97.2
+ <rdar://problem/8649182> Change default search order and add -search_dylibs_first to restore old behavior
-2009-09-25 Nick Kledzik <kledzik@apple.com>
+2010-12-06 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/7200658> 'unknown DWARF EH encoding' message logged to console with clang-50
+ <rdar://problem/8626058> ld should consistently warn when resolvers are not exported
+2010-12-02 Nick Kledzik <kledzik@apple.com>
------ Tagged ld64-97.1
+ <rdar://problem/8723307> data segment has file offset 0
-2009-07-28 Nick Kledzik <kledzik@apple.com>
+-------- tagged ld64-122
- <rdar://problem/7099040> make better no-PIC branch island to thumb1
- * Add kBranchIslandNoPicToThumb1 as 8-byte no-PIC island
+2010-12-01 Nick Kledzik <kledzik@apple.com>
+ Add #define ARM_RELOC_HALF in case trying to build with old mach-o/arm/reloc.h header
-2009-07-20 Nick Kledzik <kledzik@apple.com>
+2010-11-30 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
+ <rdar://problem/8134559> Linker should synthesize interworking stubs for tail calls
+ added test case: unit-tests/test-cases/branch-interworking
+2010-11-30 Nick Kledzik <kledzik@apple.com>
------ Tagged ld64-97
+ <rdar://problem/8708091> Link Time Optimization error with tentative defs and -dead_strip
+ added test case: unit-tests/test-cases/lto-dead_strip-tentative
-2009-07-13 Nick Kledzik <kledzik@apple.com>
+-------- tagged ld64-121
- <rdar://problem/7049478> empty dylib should have subtype from command line
- In Linker::writeOutput() for ARM, set initial fCurrentCpuConstraint to be command line subtype
+2010-11-10 Nick Kledzik <kledzik@apple.com>
+ Add -dylibs option to dyldinfo tool
-2009-07-09 Nick Kledzik <kledzik@apple.com>
+2010-11-03 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
+ <rdar://problem/7441442> Need support for ARM/thumb upper/lower 16 bit relocation
+2010-11-03 Nick Kledzik <kledzik@apple.com>
-2009-07-09 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8624334> Spelling typo in linker warning
- <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
-
+2010-11-02 Nick Kledzik <kledzik@apple.com>
-2009-07-08 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8616906> Xcode 4: ld -r doesn't work on files compiled with llvm-gcc -flto
- <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.
-
+2010-11-01 Nick Kledzik <kledzik@apple.com>
-2009-06-26 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8618747> ld wrongly complaining about tlv relocs for i386
- <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
+2010-11-01 Nick Kledzik <kledzik@apple.com>
+ Fix -why_live to list all references, not just first
-2009-06-26 Nick Kledzik <kledzik@apple.com>
+2010-11-01 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.
+ <rdar://problem/8612861>
+-------- tagged ld64-120.3
-2009-06-25 Nick Kledzik <kledzik@apple.com>
+2010-11-09 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
+ <rdar://problem/8644314> revert default search order
+-------- tagged ld64-120.2
-2009-06-25 Nick Kledzik <kledzik@apple.com>
+2010-11-09 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
+ <rdar://problem/8510696> ld -r corrupts multiple non-lazy sections
+-------- tagged ld64-120.1
-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
+2010-10-25 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8612550> When order file used on data, turn ordered zero fill symbols into zero data
-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-120
+2010-10-25 Nick Kledzik <kledzik@apple.com>
------ Tagged ld64-96.10
+ <rdar://problem/8592564> ld should use this-image ordinal for symbols from re-exported non-public dylibs
+ added test case: unit-tests/test-cases/re-export-and-use
-2009-08-31 Nick Kledzik <kledzik@apple.com>
+2010-10-25 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
+ <rdar://problem/8284718> Value of N_SO stabs should be address of first atom from translation unit
-2009-08-31 Nick Kledzik <kledzik@apple.com>
+2010-10-25 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
+ Always print arch name on undefined symbols error
- 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.
+2010-10-25 Nick Kledzik <kledzik@apple.com>
+ Add ld64 version number to crash logs
------ 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
-
+2010-10-22 Nick Kledzik <kledzik@apple.com>
------ Tagged ld64-96.5
+ <rdar://problem/7952947> -objc_abi_version 1 not supported
-2009-07-28 Nick Kledzik <kledzik@apple.com>
+2010-10-22 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
+ <rdar://problem/5591394> Add support to ld64 for N_FUN stabs when used for symbolic constants
+2010-10-22 Nick Kledzik <kledzik@apple.com>
------ Tagged ld64-96.4
+ <rdar://problem/3560832> Change default search order and add -search_dylibs_first to restore old behavior
-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
+2010-10-22 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/6955037> -L flag should support a space between it and its argument
------ Tagged ld64-96.3
+2010-10-22 Nick Kledzik <kledzik@apple.com>
-2009-06-17 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8553647> Hidden resolver functions don't work with DYLD_BIND_AT_LAUNCH
- * 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
-
+2010-10-22 Nick Kledzik <kledzik@apple.com>
------ Tagged ld64-96.2
+ <rdar://problem/8541707> Support resolver functions for function pointer use from same linkage unit
-2009-06-09 Nick Kledzik <kledzik@apple.com>
+2010-10-19 Nick Kledzik <kledzik@apple.com>
- * Back out page-cross branch work around
+ <rdar://problem/8571323> section$start$ does not always point to start of built in section types
+-------- tagged ld64-119.2
------ Tagged ld64-96.1
+2010-10-18 Nick Kledzik <kledzik@apple.com>
-2009-06-05 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8553312> make having an ObjC2 class symbol in an export list be a warning instead of an error
- * Fix "duplicate symbol cache-line-crossing-stub" error by giving placeholders unique names
- * Fix -pie by allowing relocs in x86 stubs and stub helpers
-
+2010-10-15 Nick Kledzik <kledzik@apple.com>
------ Tagged ld64-96
+ <rdar://problem/8553283> lazily produce (crt1.o missing) error
-2009-06-04 Nick Kledzik <kledzik@apple.com>
+-------- tagged ld64-119.1
- * Darwin x86_64 static codegen is really dynamic code gen, so use LTO_CODEGEN_PIC_MODEL_DYNAMIC
+2010-10-05 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8527740> ld -r can produce output with LC_DYLD_INFO load command
-2009-06-03 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/6945923> use lto_codegen_set_assembler_path()
+2010-10-05 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8516692> ld doesn't pass stabs debug info through to the final executable any longer
-2009-06-03 Nick Kledzik <kledzik@apple.com>
+2010-10-05 Nick Kledzik <kledzik@apple.com>
- * In src/ld/LTOReader.hpp, move where -save-temps .bc file is saved to be after code model set
+ <rdar://problem/4251267> __UNIXSTACK placed incorrectly when -stack_addr < 0x4000000
+2010-10-05 Nick Kledzik <kledzik@apple.com>
-2009-06-01 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8267015> ld mishandles -lazy-l option
+ Updated test case: unit-tests/test-cases/lazy-dylib
- <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>
+2010-10-04 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
+ <rdar://problem/8468240> -no_compact_unwind should suppress dwarf->CUE warnings
+-------- tagged ld64-119
-2009-05-13 Nick Kledzik <kledzik@apple.com>
+2010-10-01 Nick Kledzik <kledzik@apple.com>
- * ld64.xcodeproj/project.pbxproj: add warnings to dyldinfo target
- * src/other/dyldinfo.cpp: support classic LINKEDIT format
+ <rdar://problem/6599016> use ld64 to link iBoot
+2010-10-01 Nick Kledzik <kledzik@apple.com>
-2009-05-12 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8504770> crash when entrypoint is thumb
- * src/ld/MachOWriterExecutable.hpp: fix optimization to skip branch islands with ARM bl instructions
+2010-10-01 Nick Kledzik <kledzik@apple.com>
+ If -ios_version_min is used with -arch i386, assume simulator
-2009-05-12 Nick Kledzik <kledzik@apple.com>
+2010-10-01 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
-
+ <rdar://problem/8500061> crash with multiple re-exported dylibs with same install_name
-2009-05-08 Nick Kledzik <kledzik@apple.com>
+2010-09-28 Nick Kledzik <kledzik@apple.com>
- * src/ld/ld.cpp: fix -order_file_statistics to print each symbol not found and correct total
+ <rdar://problem/8032130> Linker complains about resolver functions when architecture is inferred.
+2010-09-28 Nick Kledzik <kledzik@apple.com>
-2009-05-08 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/6751424> ARM subtype not set on LTO programs
- <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
+2010-09-28 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8481987> Link-Time Optimization assertion
+ Added test cases:
+ unit-tests/test-cases/lto-dead_strip-objc
+ unit-tests/test-cases/lto-dead_strip-some-hidden
-2009-05-07 Nick Kledzik <kledzik@apple.com>
+2010-09-24 Nick Kledzik <kledzik@apple.com>
- * src/ld/MachOWriterExecutable.hpp: put branch islands further apart if there is no thumb code
+ <rdar://problem/8441087> Support -dyld_env NAME=value
+2010-09-23 Nick Kledzik <kledzik@apple.com>
-2009-05-07 Nick Kledzik <kledzik@apple.com>
+ Previous BranchIsland code changes to make buildable with clang++ were bad. Fix.
- <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
+2010-09-23 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8274443> ld64 objc category merging asserts on category from old framework
-2009-05-04 Nick Kledzik <kledzik@apple.com>
+2010-09-23 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
+ <rdar://problem/8469063> ASLR Sidebuild: Many Projects Fail checksyms_read_only_relocs Verifier
+2010-09-22 Nick Kledzik <kledzik@apple.com>
-2009-04-30 Nick Kledzik <kledzik@apple.com>
+ Fix DOF section name bug
- * src/ld/Options.cpp: fix custom stack base address for arm
+2010-09-22 Nick Kledzik <kledzik@apple.com>
+ Fixes to build with clang++
-2009-04-30 Nick Kledzik <kledzik@apple.com>
+2010-09-21 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
+ In Resolver::fillInHelpersInInternalState(), dyld never needs stubs
-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
-
+2010-09-21 Ivan Krstic <ike@apple.com>
------ Tagged ld64-95.8.2
+ <rdar://problem/8457083> ld: support non-executable heap Mach-O header flag
-2009-03-18 Nick Kledzik <kledzik@apple.com>
+2010-09-21 Nick Kledzik <kledzik@apple.com>
- * src/ld/MachOReaderRelocatable.hpp: back out -force_cpusubtype_ALL changes
+ <rdar://problem/8175282> Xcode 4 linker fails with "address not in any section"
+2010-09-20 Nick Kledzik <kledzik@apple.com>
------ Tagged ld64-95.8.1
+ <rdar://problem/8198832> assertion failure reading i386 yasm .o (not using scattered reloc)
-2009-03-17 Nick Kledzik <kledzik@apple.com>
+2010-09-20 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/8430751> ld crashes when parsing dwarf and all code is not in __text
- <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
+2010-09-17 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8396450> magic segment symbol names don't work with preload executables
+ Update test case: unit-tests/test-cases/segment-labels
------ Tagged ld64-95.8
+2010-09-17 Nick Kledzik <kledzik@apple.com>
-2009-02-09 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8445985> OSO in DebugNotes for LTO should point to generated mach-o not, bitcode .o file
- <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
+2010-09-16 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8413931> FUN in debug map not rebased
+ Update test case: unit-tests/test-cases/rebase-basic
------ Tagged ld64-95.7
+2010-09-16 Nick Kledzik <kledzik@apple.com>
-2009-02-06 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8427133> Relocation failure with i386 32-bit diff to stub
- * src/ld/ObjectFile.h: make fAddCompactUnwindEncoding false by default
-
+2010-09-16 Nick Kledzik <kledzik@apple.com>
-2009-02-06 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8437287> assert when targeting 10.5 and crt1.o/dylib1.o is not supplied
- <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
-
+-------- tagged ld64-118.1
-2009-02-05 Nick Kledzik <kledzik@apple.com>
+2010-09-15 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
+ Fix missing rebase commands that broke perl
+2010-09-15 Nick Kledzik <kledzik@apple.com>
-2009-01-27 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8252819> assert when .objc_class_name_* symbol missing
+ Add test case: unit-tests/test-cases/archive-ObjC-unexported
- <rdar://problem/6517393> Warn -force_cpusubtype_ALL is not supported
- * src/ld/Options.cpp: warn if fForceSubtypeAll and fArchitecture is CPU_TYPE_ARM
-
+2010-09-13 Nick Kledzik <kledzik@apple.com>
------ Tagged ld64-95.6
+ <rdar://problem/8419850> linker does not honor $ld$hide for umbrella libraries
+ Added test case: unit-tests/test-cases/symbol-hiding-umbrella
-2009-01-25 Nick Kledzik <kledzik@apple.com>
+2010-09-09 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
+ <rdar://problem/6723729> LC_UUID uuids should conform to RFC 4122 UUID version 4 & UUID version 5 formats
+2010-09-09 Nick Kledzik <kledzik@apple.com>
------ Tagged ld64-95.5
+ <rdar://problem/4942948> support -bind_at_load
-2009-01-15 Nick Kledzik <kledzik@apple.com>
+2010-09-07 Nick Kledzik <kledzik@apple.com>
- * src/ld/MachOWriterExecutable.hpp: in hasPageCrossingBranches() ignore branches preceeded by a branch
+ <rdar://problem/7989734> ld mis-handling std::tr1::anonymous symbols
+ Remove support for ordering gcc-4.0 compiled anonymous namespace symbols
------ Tagged ld64-95.4
+-------- tagged ld64-118
-2009-01-15 Nick Kledzik <kledzik@apple.com>
+2010-09-02 Nick Kledzik <kledzik@apple.com>
- * src/ld/Options.cpp: handle -kext and -r the same for fPreventPageCrossingBranches
+ <rdar://problem/8308697> -preload should not have LINKEDIT segment
+ Added test case: unit-tests/test-cases/efi-basic
+2010-09-02 Nick Kledzik <kledzik@apple.com>
------ Tagged ld64-95.3
+ <rdar://problem/8389578> trivial Objective-C app fails when using libLTO
+ Added test case: unit-tests/test-cases/lto-objc-image-info
-2009-01-14 Nick Kledzik <kledzik@apple.com>
+2010-09-02 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
+ <rdar://problem/8384727> Add -reexport_symbols_list option to re-export certain symbols.
+ Added test case: unit-tests/test-cases/reexport_symbols_list
+2010-09-01 Nick Kledzik <kledzik@apple.com>
------ Tagged ld64-95.2.10
+ <rdar://problem/7438246> LTO with 'dead code strip' can't ignore unused functions with undefined references
+ Add test case: unit-tests/test-cases/lto-dead_strip-unused
-2009-04-02 Nick Kledzik <kledzik@apple.com>
+2010-09-01 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
+ Warn if unaligned ARM code is detected
+2010-09-01 Nick Kledzik <kledzik@apple.com>
+
+ <rdar://problem/8383175> Mach-O linked by current linker don't load in VIrtualBox any more
------ Tagged ld64-95.2.9
+2010-09-01 Nick Kledzik <kledzik@apple.com>
-2009-04-02 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8304984> Linker should pick default visibility instead of warning about conflicts
+ Updated test case: unit-tests/test-cases/visibility-warning
- <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
+2010-09-01 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8249338> Enable new load commands
------ Tagged ld64-95.2.8
+2010-09-01 Nick Kledzik <kledzik@apple.com>
-2009-03-24 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8368679> Do not pass -demangle to ld_classic
- <rdar://problem/6713931> anonymous functions have the compact unwind info computed wrong
- * ld/MachOReaderRelocatable.hpp: use new compact unwind function in AnonymousAtom
+2010-09-01 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8336910> iOS 4.3 armv7 should be PIE by default
+ <rdar://problem/5472933> better error message for direct access to external globals when not linking read_only_relocs
+ <rdar://problem/7927510> linker does not error on direct (static) data references to a dylib symbol
------ Tagged ld64-95.2.7
+-------- tagged ld64-117.11
-2009-03-11 Nick Kledzik <kledzik@apple.com>
+2010-09-03 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
-
+ <rdar://problem/8385011> mask thumb bit off non lazy pointers content when parsing arm .o files
-2009-03-10 Nick Kledzik <kledzik@apple.com>
+-------- tagged ld64-117.10
- <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
+2010-08-26 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8358084> 8F64 kills installtest devices
+ Don't clear thumb bit on pointers inside thumb functions if addend is negative
-2009-03-10 Nick Kledzik <kledzik@apple.com>
+-------- tagged ld64-117.9
- <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
+2010-08-25 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8345038> no more audio because of broken thunk
+ Update of thumb22 b.w instruction was not clearing bits before or'ing in new ones
------ Tagged ld64-95.2.6
+-------- tagged ld64-117.8
-2009-02-27 Nick Kledzik <kledzik@apple.com>
+2010-08-25 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
-
+ <rdar://problem/8342028> prefetch abort in kernel mode: fault_addr=0xe58024e4
+ Don't set thumb bit on .long pointers in thumb functions that point to some offset in same function
------ Tagged ld64-95.2.5
+-------- tagged ld64-117.7
-2009-02-24 Nick Kledzik <kledzik@apple.com>
+2010-08-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
-
+ <rdar://problem/8346444> dyld-179.4 fails to link, assert in setLoadCommandsPadding()
+ Fix linker to always put __text first before other code-only sections
------ Tagged ld64-95.2.4
+-------- tagged ld64-117.6
-2009-02-23 Nick Kledzik <kledzik@apple.com>
+2010-08-23 Nick Kledzik <kledzik@apple.com>
- * src/ld/MachOReaderRelocatable.hpp: ignore ARM_THUMB_32BIT_BRANCH relocs
+ <rdar://problem/8339702> ld no longer output static archive dependencies for dyld for B&I
+ Add test case unit-tests/test-cases/dependency-logging
+-------- tagged ld64-117.5
-2009-02-18 Nick Kledzik <kledzik@apple.com>
+2010-08-20 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
+ <rdar://problem/8309595> SWB: ld64-117.1 on Durango8F54: Assertion failed:
+ UTF16 CFStrings were not coalesced correctly when gcc built the .o files and the
+ last string in the __ustring section only had a single zero byte at the end.
+-------- tagged ld64-117.4
-2009-02-18 Nick Kledzik <kledzik@apple.com>
+2010-08-19 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/8326544> DTSJ1J105: SpringBoard crashes on boot
+ Fix order file to move aliases even when subsections_via_symbols it used
+ Update test case unit-tests/test-cases/order_file
- <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
-
+2010-08-17 Nick Kledzik <kledzik@apple.com>
-2009-02-15 Nick Kledzik <kledzik@apple.com>
+ Fix resolver functions to survive ld -r.
+ Warn if resolver functions are made non-external.
- <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
-
+2010-08-17 Nick Kledzik <kledzik@apple.com>
-2009-02-12 Nick Kledzik <kledzik@apple.com>
+ Make it an error for resolver functions to be used in anything but a dylib.
- <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
+-------- tagged ld64-117.3
+2010-08-17 Nick Kledzik <kledzik@apple.com>
-2009-02-12 Nick Kledzik <kledzik@apple.com>
+ Fix thumb resolver functions
+ Enable updward dylibs and symbol re-exports for iOS 4.2
- <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
-
+2010-08-16 Nick Kledzik <kledzik@apple.com>
-2009-02-06 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8308697> Latest ld no longer supports EFI -preload
+ Rearrange LINKEDIT chunks in -preload mode
- <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-117.2
+2010-08-14 Nick Kledzik <kledzik@apple.com>
------ Tagged ld64-95.2.3
+ <rdar://problem/8308697> Latest ld no longer supports EFI -preload
+ Add LC_UNIXTHREAD to -preload
-2009-02-04 Nick Kledzik <kledzik@apple.com>
+2010-08-14 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
+ <rdar://problem/8309530> SWB: ld64-117.1 on Durango8F54: Assertion failed: (categoryAtom->size() == Category<A>::size())
+ gcc-4.0 uses 'L' labels on categories. This merges them onto previous data and disable category optimzation
+2010-08-14 Nick Kledzik <kledzik@apple.com>
------ Tagged ld64-95.2.2
+ <rdar://problem/8309917> SWB: ld64-117.1 on Durango8F54: bad category optimization
+ Disable category optimization for i386 and arm until further testing
-2009-02-02 Nick Kledzik <kledzik@apple.com>
+2010-08-14 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
+ <rdar://problem/8309608> SWB: ld64-117.1 on Durango8F54: address not in any section
+ Handle pointer diff to stub for weak hidden function
+2010-08-13 Nick Kledzik <kledzik@apple.com>
------ Tagged ld64-95.2.1
+ <rdar://problem/8308697> Latest ld no longer supports EFI -preload
------ Tagged ld64-95.2.10
+-------- tagged ld64-117.1
-2009-04-02 Nick Kledzik <kledzik@apple.com>
+2010-08-11 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
+ Make missing exported symbols a warning to help adoption of new linker
+2010-08-11 Nick Kledzik <kledzik@apple.com>
------ Tagged ld64-95.2.9
+ Add ExternalRelocationsAtom<>::pointerReloc() to more easily support kext bundles
-2009-04-02 Nick Kledzik <kledzik@apple.com>
+2010-08-09 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
+ <rdar://problem/8210380> SWB: ld64-116.2 fix branch to label-4
+2010-08-09 Nick Kledzik <kledzik@apple.com>
------ Tagged ld64-95.2.8
+ <rdar://problem/8260073> Error with empty non_lazy_symbol_pointers section
-2009-03-24 Nick Kledzik <kledzik@apple.com>
+2010-08-06 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
+ <rdar://problem/7977374> Add command line options to control symbol weak-def-bit on exported symbols
+-------- tagged ld64-117
------ Tagged ld64-95.2.7
+2010-07-28 Nick Kledzik <kledzik@apple.com>
-2009-03-11 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8243431> split seg info wrong for x86_64 stub helpers
- <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
-
+2010-07-26 Nick Kledzik <kledzik@apple.com>
-2009-03-10 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8237436> __nlcatlist categories should not be optimized
- <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
+2010-07-23 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8179273> ld64 assertion on object file
-2009-03-10 Nick Kledzik <kledzik@apple.com>
+2010-07-21 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
+ <rdar://problem/7435296> Reorder sections to reduce page faults in object files
+2010-06-30 Nick Kledzik <kledzik@apple.com>
------ Tagged ld64-95.2.6
+ Support resolver functions in iOS dylibs
-2009-02-27 Nick Kledzik <kledzik@apple.com>
+-------- tagged ld64-116.2
- <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
+2010-06-30 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8138287> C programs get objc GCness from dylibs
+ Update: unit-tests/test-cases/objc-gc-checks
------ Tagged ld64-95.2.5
+-------- tagged ld64-116.1
-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
-
+2010-06-22 Nick Kledzik <kledzik@apple.com>
------ Tagged ld64-95.2.4
+ <rdar://problem/8111013> address range check should not apply to preload executables
-2009-02-23 Nick Kledzik <kledzik@apple.com>
+2010-06-22 Nick Kledzik <kledzik@apple.com>
- * src/ld/MachOReaderRelocatable.hpp: ignore ARM_THUMB_32BIT_BRANCH relocs
+ Warn instead of error when CPU_SUBTYPE_ARM_ALL .o files used.
+2010-06-22 Nick Kledzik <kledzik@apple.com>
-2009-02-18 Nick Kledzik <kledzik@apple.com>
+ Fix assert in objc category optimzation. Metaclass also has copy of propery list to update.
- <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
-
+2010-06-22 Nick Kledzik <kledzik@apple.com>
-2009-02-18 Nick Kledzik <kledzik@apple.com>
+ Fix crash in -r mode with -alias.
- <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
-
+-------- tagged ld64-116
-2009-02-16 Nick Kledzik <kledzik@apple.com>
+2010-06-21 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
-
+ Add support for -ios_version_min as an alias for -iphoneos_version_min
-2009-02-15 Nick Kledzik <kledzik@apple.com>
+2010-06-21 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
-
+ <rdar://problem/7687304> linker could merge method lists from class and its categories
+ Added test case: unit-tests/test-cases/objc-category-optimize
+ Added option: -no_objc_category_merging to disable
-2009-02-12 Nick Kledzik <kledzik@apple.com>
+2010-06-21 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
+ <rdar://problem/8113877> i386 TLV PIC reloc content is negated
+2010-06-15 Nick Kledzik <kledzik@apple.com>
-2009-02-12 Nick Kledzik <kledzik@apple.com>
+ Added better error messages and asserts for bad thread local object files
- <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
-
+2010-06-09 Nick Kledzik <kledzik@apple.com>
-2009-02-06 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8076986>
- <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
+2010-06-09 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/7966333> executable has no debug symbols when compiled with LTO
+ Added test case: unit-tests/test-cases/lto-object_path
------ Tagged ld64-95.2.3
+2010-06-09 Nick Kledzik <kledzik@apple.com>
-2009-02-04 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/7702923> stop promoting hidden referenced dynamically symbols to global
+ Updated test case: unit-tests/test-cases/main-stripped
- <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
+2010-06-04 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/6144674> ER: individual symbol re-exports
+ Added test case: unit-tests/test-cases/re-export-symbo
------ Tagged ld64-95.2.2
+2010-06-03 Nick Kledzik <kledzik@apple.com>
-2009-02-02 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/7474224> add functions start info to LINKEDIT
+ * Support added but not on by default. Use -function_starts to enable.
+ * Added test case: unit-tests/test-cases/function-start
- <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
+2010-06-02 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/5674241> ER: add load command for min OS version
+ * Support added but not on by default. Use -version_load_command to enable.
------ Tagged ld64-95.2.1
+2010-06-02 Nick Kledzik <kledzik@apple.com>
-2009-01-29 Nick Kledzik <kledzik@apple.com>
+ <rdar://problem/8040089> provide better undefined symbol error message
- <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
+2010-05-28 Nick Kledzik <kledzik@apple.com>
+ * <rdar://problem/7780438> ld should also merge file attributes from lazy loaded archives
+ * Move attribute gathering from InputFiles to Resolver
------ Tagged ld64-95.2
+2010-05-28 Nick Kledzik <kledzik@apple.com>
-2009-01-06 Nick Kledzik <kledzik@apple.com>
+ * <rdar://problem/8038333> SWB: ld64-115.3: dylib on kext link line causes malformed kext
+ * allow -static after -kext on command line
- <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-115.3
------ Tagged ld64-95.1
+2010-05-26 Nick Kledzik <kledzik@apple.com>
-2008-12-21 Nick Kledzik <kledzik@apple.com>
+ * <rdar://problem/8024702> strip of .o files removes __objc_imageinfo section
+ * Added test case: unit-tests/test-cases/dwarf-strip-objc
- * src/ld/MachOWriterExecutable.hpp: in new linkedit format, make sure only exported symbols
- make it into weak binding info
-
-
------ Tagged ld64-95
+2010-05-25 Nick Kledzik <kledzik@apple.com>
-2008-12-18 Nick Kledzik <kledzik@apple.com>
+ * <rdar://problem/8023624> crash when parsing local vanilla reloc to weak def
- * src/ld/Options.cpp: move check for fSharedRegionEligible until fPrebind has stabilized
-
+-------- tagged ld64-115.2
-2008-12-18 Nick Kledzik <kledzik@apple.com>
+2010-05-21 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
+ * <rdar://problem/8012536> switch back to using ld_classic for -static arm code
------ Tagged ld64-94.1
-
-2008-12-16 Nick Kledzik <kledzik@apple.com>
+2010-05-21 Nick Kledzik <kledzik@apple.com>
- * src/ld/Options.cpp: Fix -F handling in buildSearchPaths()
+ * <rdar://problem/8012549> warn instead of error when seg1addr is out of range for ARM
------ Tagged ld64-94
+2010-05-21 Nick Kledzik <kledzik@apple.com>
-2008-12-15 Nick Kledzik <kledzik@apple.com>
+ * <rdar://problem/8012526> fix -undefined dynamic_lookup -nodefaults to not error about missing dyld_stub_binder
- * doc/man/man1/ld.1: document new options
-
+-------- tagged ld64-115.1
-2008-12-15 Nick Kledzik <kledzik@apple.com>
+2010-05-19 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
-
+ * Fix trie nodes for resolver functions to have second address be stub not helper
-2008-12-15 Nick Kledzik <kledzik@apple.com>
+2010-05-19 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.
+ * <rdar://problem/7996423> work around for old checksyms tools
+ * Make i386 stub section named "__symbol_stub" instead of "__stubs"
+2010-05-10 Nick Kledzik <kledzik@apple.com>
-2008-12-15 Nick Kledzik <kledzik@apple.com>
+ * <rdar://problem/7960396> linking with LTO prints "/tmp/lto.o"
- <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
+-------- tagged ld64-115
+2010-05-06 Nick Kledzik <kledzik@apple.com>
-2008-12-15 Nick Kledzik <kledzik@apple.com>
+ * <rdar://problem/7892392> linker loses x86_64 addend to 'L' symbols
+ * properly handle addend to 'L' symbols that are ignored
- <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
+2010-05-05 Nick Kledzik <kledzik@apple.com>
+ * rework min OS version parsing to enable the linker to handle unknown OS versions
------ Tagged ld64-93
-2008-12-11 Nick Kledzik <kledzik@apple.com>
+2010-05-05 Nick Kledzik <kledzik@apple.com>
- * src/ld/ObjectFile.h: add fIPhoneVersionMin to track min iPhoneOS version
- * src/ld/Options.cpp: use fIPhoneVersionMin
+ * Implement magic section$start$xxx$yyyy and section$end$xxx$yyyy symbols
+ * Implement magic segment$start$xxx and segment$end$xxx symbols
+ * Add test case: unit-tests/test-cases/segment-labels
-2008-12-11 Nick Kledzik <kledzik@apple.com>
+2010-05-03 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/7173071> implement optional demangling in linker
+ * Add option: -demangle
+ * Add test case: unit-tests/test-cases/demangle
- <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
+2010-05-03 Nick Kledzik <kledzik@apple.com>
+ * <rdar://problem/7931759> ld64 doesn't grok the modern-objc-ABI-on-i386
+ * Add support for -objc_abi_version command line option
+ * Added test case: unit-tests/test-cases/objc-abi
-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
+2010-05-03 Nick Kledzik <kledzik@apple.com>
+ * <rdar://problem/7929974> -alias does not work with __OBJC sections
+ * sort contents of sections with aliases
+ * Added test case: unit-tests/test-cases/objc-class-alias
+
-2008-12-10 Nick Kledzik <kledzik@apple.com>
+2010-04-28 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()
+ * <rdar://problem/4966836> Feature: Thread local storage
+ * Add test case: unit-tests/test-cases/tlv-basic
+ * Add test case: unit-tests/test-cases/tlv-dylib
-2008-12-05 Nick Kledzik <kledzik@apple.com>
+2010-04-27 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
+ * <rdar://problem/4383612> Accelerate needs way to dispatch based on instruction execution time characteristics.
+ * Add support for "symbol resolver" functions
+ * Add test case unit-tests/test-cases/symbol-resolver-basic
-2008-12-04 Nick Kledzik <kledzik@apple.com>
+2010-04-26 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
+ * <rdar://problem/7711820> range check fat archives
+ * check that fat file slice being used does not extend beyond end of file
+ * check that member being used does not extend beyond end of slice/file
+2010-04-26 Nick Kledzik <kledzik@apple.com>
-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
-
+ * <rdar://problem/7666015> The documentation for the -allowable_client option doesn't say enough about it
-2008-12-02 Nick Kledzik <kledzik@apple.com>
+2010-04-26 Nick Kledzik <kledzik@apple.com>
- * src/ld/debugline.c: fix error handling in line_open()
-
+ * <rdar://problem/7854068> back out LD_NO_PIE
-2008-11-26 Nick Kledzik <kledzik@apple.com>
+2010-04-22 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
+ * <rdar://problem/7831043> More ICU make check failures with 0-terminated UTF16 strings
+ * Change UTF16StringSection to break into atoms just on label boundaries
+ * Added test case: unit-tests/test-cases/utf16-nul
+
+-------- tagged ld64-114.12
-2008-11-26 Nick Kledzik <kledzik@apple.com>
+2010-04-14 Nick Kledzik <kledzik@apple.com>
- * src/ld/Option.cpp: Fix how crashreporterBuffer is created to not miss some arguments
+ * <rdar://problem/7811357> Crash with messed up BNSYM
-2008-11-24 Nick Kledzik <kledzik@apple.com>
+2010-04-07 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
+ * Fix crash with blank dylib stubs
+-------- tagged ld64-114.11
------ Tagged ld64-92
+2010-04-07 Nick Kledzik <kledzik@apple.com>
-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
+ * <rdar://problem/7798495> for ppc, add split-seg info for TEXT pointers to DATA
-2008-11-21 Nick Kledzik <kledzik@apple.com>
+2010-04-07 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()
-
+ * <rdar://problem/7831379> Cannot build ppc64 target with ObjC code
-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
- * unit-tests/test-cases/weak-def-flag: added test case
+2010-04-01 Nick Kledzik <kledzik@apple.com>
+ * let .exp files override auto-hide so that they can be exported if needed
-2008-11-20 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/6305021> Generate new compressed LINKEDIT when targeting 10.6
- * src/ld/MachOWriterExecutable.hpp: support generating new compressed format
- * src/ld/MachOReaderRelocatable.hpp: new compress format implies non-lazy pointers in __DATA for i386
- * src/ld/MachOReaderDylib.hpp: support linking aginst new format
- * src/ld/Options.cpp: suppport -exported_symbols_order and -no_compact_linkedit
- * src/ld/ld.cpp: track which atoms have weak counter parts in dylibs
- * src/other/dyldinfo.cpp: added tool to display new LINKEDIT format
- * ld64.xcodeproj/project.pbxproj: add dyldinfo tool
- * unit-tests/*: lots of fixes to work with new format
+2010-04-01 Nick Kledzik <kledzik@apple.com>
+ * <rdar://problem/6783167> support auto hidden weak symbols: .weak_def_can_be_hidden
+ * added test case: unit-tests/test-cases/weak-def-auto-hide
-2008-11-20 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/6389316> ld64 should preserve N_WEAK_REF when linking MH_KEXT_BUNDLEs
- * src/ld/MachOWriterExecutable.hpp: set up fWeakImportMap in synthesizeKextGOT()
+2010-04-01 Nick Kledzik <kledzik@apple.com>
+ * <rdar://problem/7818475> 'l' symbols not being automatically removed
-2008-11-19 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/6342406> VideoToolbox.framework has bad __TEXT.__eh_frame info
- * src/ld/Options.cpp: add -no_eh_labels option for use with -r
- * src/ld/MachOWriterExecutable.hpp: generate correct x86_64 labeless relocs in -r mode
- * src/ld/MachOReaderRelocatable.hpp: now ignore all labels and relocations in
- __TEXT/__eh_frame section and rely on getCFIs() from libunwind
- * unit-tests/test-cases/eh-coalescing-no-labels: add test case
+2010-03-31 Nick Kledzik <kledzik@apple.com>
+ * <rdar://problem/7808258> weak defs should not cause indirection in static executables
+ * Update test case: unit-tests/test-cases/static-executable-weak-defines
-2008-11-19 Nick Kledzik <kledzik@apple.com>
+-------- tagged ld64-114.10
- <rdar://problem/6378110> LTO doesn't like dtrace symbols
- * src/ld/LTOReader.hpp: ignore __dtrace_probe undefines in bitcode files
+2010-03-31 Nick Kledzik <kledzik@apple.com>
+ * <rdar://problem/7735120> assert with .o file with two LSDA sections
-2008-11-14 Nick Kledzik <kledzik@apple.com>
-
- * src/abstraction/MachOFileAbstraction.hpp: fix to work with 10.5 headers
-
-
------ Tagged ld64-91
-2008-11-07 Nick Kledzik <kledzik@apple.com>
+-------- tagged ld64-114.9
- Remove COMPACT_UNWIND_SUPPORT conditionalizing
+2010-03-30 Nick Kledzik <kledzik@apple.com>
-
-2008-11-06 Nick Kledzik <kledzik@apple.com>
-
- Reorganize source layout. ld sources are now in "ld",
- and other tools are in "other".
+ * <rdar://problem/7791161> L4 locks up starting a second processor, works fine with old linker
+ * properly get addend from content in x86_64 substractor when target is direct
-2008-11-05 Nick Kledzik <kledzik@apple.com>
-
- * ld64.xcodeproj/project.pbxproj: start installing unwinddump tool
- * src/UnwindDump.cpp: support -arch option
- * doc/man/man1/unwinddump.1: create man page
+2010-03-29 Nick Kledzik <kledzik@apple.com>
+ * <rdar://problem/7805172> ld should excludes debug notes when computing UUID
+ * added test case: unit-tests/test-cases/dwarf-debug-notes-uuid
-2008-11-05 Nick Kledzik <kledzik@apple.com>
+-------- tagged ld64-114.8
- <rdar://problem/6337329> linker should put cpusubtype in n_sect field of nlist entry for N_OSO debug note entries
- * src/ld.cpp: in synthesizeDebugNotes() set other field of OSO to be subtype
+2010-03-26 Nick Kledzik <kledzik@apple.com>
+ * <rdar://problem/7788474> __objc_catlist section loses don't dead strip bit in ld -r mode
+ * Update test case unit-tests/test-cases/static-executable
-2008-11-05 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/3738966> Need a linker option to load all objects from one library
- * src/Options.cpp: support -force_load option
- * src/ArchiveReader.hpp: Add fForceLoad ivar
- * doc/man/man1/ld.1: update man page with -force_load option
- * unit-tests/test-cases/archive-force-load: add test case
-
-
-2008-11-05 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/6308882> Dtrace Probe Warnings: SnowLeopard kernel should compile warning free
- * src/ld.cpp: don't generate GSYM stabs for old style __dtrace_probe
- * src/MachOReaderRelocatable.hpp: fix test for deciding if a symbol is an alias
-
-
-2008-11-04 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/6294378> ADOBE: XCODE: ld: duplicate typeinfo in executable
- * src/ld.cpp: in dead-strip mode, record overriden symbols and later rebind all uses
- * unit-tests/test-cases/dead_strip-archive-weak: add test case
-
-
-2008-11-03 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/6254202> support increased branch range in Thumb-2
- * src/MachOReaderRelocatable.hpp: handle full branch range in addRelocReference()
- * unit-tests/test-cases/branch-distance: added test case
+-------- tagged ld64-114.7
-2008-10-31 Devang Patel <dpatel@apple.com>
-
- <rdar://problem/5725712> Sqlite 3.5.4 built with lvm-gcc-4.2 -O4 fails regression test
- * src/LTOReader.hpp: Use real atom scope when real atom is available.
- Preserve globals while optimizing an executable.
-
-2008-10-30 Nick Kledzik <kledzik@apple.com>
+2010-03-25 Nick Kledzik <kledzik@apple.com>
- * src/MachOReaderRelocatable.hpp: support all encodings in getEncodedP()
+ * <rdar://problem/7796313> Support LD_NO_PIE again
+2010-03-25 Nick Kledzik <kledzik@apple.com>
------ Tagged ld64-90
+ * <rdar://problem/7765885> Rosetta crashes on launch in 11A133a
+ * Fix -segaddr __TEXT to cause other floating segments to be contiguous with TEXT
-2008-10-30 Nick Kledzik <kledzik@apple.com>
+2010-03-24 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/6327584> icc has dwarf unwind info that is different than gcc
- * src/MachOReaderRelocatable.hpp: support more encodings in getEncodedP()
-
-
-2008-10-23 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/6088653> build ld64 for x86_64
- * ld64.xcodeproj/project.pbxproj: add X86_64 to valid archs
-
+ * <rdar://problem/7786326> Page Zero segment seems to be getting dead stripped
-2008-10-23 Nick Kledzik <kledzik@apple.com>
+2010-03-24 Nick Kledzik <kledzik@apple.com>
- * ld64.xcodeproj/project.pbxproj: use generated @$(DERIVED_FILE_DIR)/linker_opts for extra
- linker options. This allows linker to be built if LTO headers and libs are missing.
+ * <rdar://problem/7785574> kernel sdt dtrace probes not visible
+-------- tagged ld64-114.6
-2008-10-23 Nick Kledzik <kledzik@apple.com>
+2010-03-23 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/6273617> Linker warning not shown in the Xcode build log
- * src/Options.cpp: add colon to format string in warning()
+ * <rdar://problem/7783918> new linker makes dylibs with no __text section, causing codesign_allocate tool to fail
+ * make sure there is always a __text section in dylibs and bundles
+-------- tagged ld64-114.5
------ Tagged ld64-89.3
+2010-03-22 Nick Kledzik <kledzik@apple.com>
-2008-10-24 Nick Kledzik <kledzik@apple.com>
+ * <rdar://problem/7767311> missing __objc_imageinfo section
+ * Real fix will be in 7780438. For now have Resolver also accumulate objc constraint info
- <rdar://problem/6317985> ld64-89 broke TOT OpenGL libProgrammability x86_64 build
- * src/MachOReaderRelocatable.hpp: add cast in getEncodedP()
-
-
------ Tagged ld64-89.2
-
-2008-10-23 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/6312895> SnowLeopard: Libsystem built with ld64-89.1 causes crashes
- * src/MachOReaderRelocatable.hpp: when FDE information causes __text atom to be split, make the
- atoms follow-on pairs.
+2010-03-19 Nick Kledzik <kledzik@apple.com>
------ Tagged ld64-89.1
+ * <rdar://problem/7772740> ld64-114 does not error on missing exported symbols with -dead_strip
-2008-10-22 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: for x86_64 __eh_frame force direct references
+-------- tagged ld64-114.4
+2010-03-16 Nick Kledzik <kledzik@apple.com>
-2008-10-21 Nick Kledzik <kledzik@apple.com>
-
- * src/ObjectDump.cpp: Use getContentType() to see if content type is a cstring
+ * <rdar://problem/7762146> dyld missing LC_ID_DYLINKER
+-------- tagged ld64-114.3
------ Tagged ld64-89
-
-2008-10-21 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/6253171> 10A180 with QT-1119 roots: iTunes and QuickTime cannot play back purchased videos
- <rdar://problem/5950453> linker should not need .eh labels
- * src/MachOWriterExecutable.hpp: use kCFIType to set section attributes
- * src/MachOReaderRelocatable.hpp: use libunwind's CFITuple to parse __eh_frame content
- * src/ld.cpp: Add adjustScope() phase instead of demoting scope within symboltable.add()
- * unit-tests/test-cases/eh-stripped-symbols: added test case
+2010-03-15 Nick Kledzik <kledzik@apple.com>
+ * force i386 kexts to be built with ld_classic
+ * preserve 'l' labels in static executables
+ * sync section offsets and addresses in segments with command line addresses
------ Tagged ld64-88.1
-2008-10-16 Nick Kledzik <kledzik@apple.com>
+-------- tagged ld64-114.2
- * src/MachOReaderRelocatable.hpp: Fix uses of COMPACT_UNWIND_SUPPORT
- * src/MachOWriterExecutable.hpp: Fix uses of COMPACT_UNWIND_SUPPORT
+2010-03-13 Nick Kledzik <kledzik@apple.com>
+ * <rdar://problem/7751930> ld64-114 generates x86_64 kext external call sites with incorrect addend
-2008-09-30 Nick Kledzik <kledzik@apple.com>
+-------- tagged ld64-114.1
- <rdar://problem/6255983> OBJC2: Reorder __DATA,__objc_* sections by writedness
- * src/ld.cpp: change sorting order of Sections
+2010-03-12 Nick Kledzik <kledzik@apple.com>
+ * Fix dyldinfo tool to correct show ordinal info for classic linkedit
-2008-09-29 Nick Kledzik <kledzik@apple.com>
+2010-03-12 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/6159479> Executable produced by XCode 3.2 on 10.6 crashes on 10.3.9
- * src/MachOWriterExecutable.hpp: set objc_module_info_addr field of module table
-
-
------ Tagged ld64-88
+ <rdar://problem/7748047> ld64-114 is causing read_only_reloc verification errors for ppc
+ * Update machochecker to check this.
-2008-09-25 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5935708> kexts need to be built as MH_BUNDLE mach-o files
- * src/ld.cpp: use getUndefinedProxyAtom() with kKextBundle
- * src/MachOFileAbstraction.hpp: add MH_KEXT_BUNDLE
- * src/Options.cpp: support -kext for all architectures
- * src/MachOWriterExecutable.hpp: support kKextBundle to make a bundle like kext
- * unit-tests/test-cases/kext-basic: added test case
-
+-------- tagged ld64-114
-2008-09-25 Nick Kledzik <kledzik@apple.com>
+2010-03-11 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/6052546> ld invoking wrong ld_classic
- * src/Options.cpp: first look for ld_classic relative to ld itself
-
+ * <rdar://problem/7744174> i386 dylibs built with ld64-112 cause runtime errors when incorporated into the dyld shared cache
+ * Add -shared_region option to dyldinfo tool
-2008-09-25 Nick Kledzik <kledzik@apple.com>
+-------- tagged ld64-113
- <rdar://problem/5855588> ld fails to link references from 32 bit code into 64 bit code
- <rdar://problem/5955200> Desired 32-bit absolute relocation
- * src/Architectures.hpp: add x86_64::kPointer32
- * src/MachOReaderRelocatable.hpp: support X86_64_RELOC_UNSIGNED with length=2
- * src/MachOWriterExecutable.hpp: support x86_64::kPointer32
- * unit-tests/test-cases/relocs-asm/relocs-asm.s: added 32-bit pointer tests
-
+2010-03-11 Nick Kledzik <kledzik@apple.com>
-2008-09-25 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/6075323> Should be able to mark dylibs as auto-dead-dylib-strip
- * src/Options.h: add fMarkDeadStrippableDylib
- * src/MachOReaderDylib.hpp: check MH_DEAD_STRIPPABLE_DYLIB
- * src/ObjectFile.h: add deadStrippable()
- * src/MachOFileAbstraction.hpp: add MH_DEAD_STRIPPABLE_DYLIB
- * src/Options.cpp: support -mark_dead_strippable_dylib
- * src/MachOWriterExecutable.hpp: test reader->deadStrippable(), set MH_DEAD_STRIPPABLE_DYLIB
- * doc/man/man1/ld.1: update man page
- * unit-tests/test-cases/dead_strippable_dylib: added test case
-
+ * Allow CPU_SUBTYPE_ARM_ALL .o files to be linked into any arm arch linkage
-2008-09-25 Nick Kledzik <kledzik@apple.com>
+2010-03-11 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/6197601> ER: Add -seg_page_size option
- * src/Options.cpp: add -seg_page_size option
- * src/MachOWriterExecutable.hpp: use new page size info when laying out segments
- * doc/man/man1/ld.1: update man page
-
+ <rdar://problem/7741238> ld64-112 with -undefined dynamic_lookup marks all symbols as being flat
+ * update test case at: unit-tests/test-cases/undefined-dynamic-lookup
-2008-09-24 Nick Kledzik <kledzik@apple.com>
+2010-03-10 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/5798786> -arch_errors_fatal not working
- * src/ld.cpp: check fOptions.errorOnOtherArchFiles()
- * src/Options.cpp: turn -arch_errors_fatal into fOptions.errorOnOtherArchFiles()
+ * prevent possible crash in warning about can't export hidden symbols
+2010-03-10 Nick Kledzik <kledzik@apple.com>
-2008-09-24 Nick Kledzik <kledzik@apple.com>
+ * make sure split-info data is zero terminated
- <rdar://problem/6161215> CrashTracer: [USER] 1 crash in ld at ld: 0x5ce02
- * src/ld.cpp: abort if resolve() finds an unresolved reference, rather than allow a future crash
-
+-------- tagged ld64-112
-2008-09-24 Nick Kledzik <kledzik@apple.com>
+2010-03-09 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/6157989> linker crashes linking X86-64 with -fwritable-strings
- * src/MachOReaderRelocatable.hpp: handle unbound cfstring references
- * unit-tests/test-cases/cfstring-coalesce: update test case
-
+ * Never dead strip sections added with -sectcreate
+ * Added test case: unit-tests/test-cases/sectcreate-dead_strip
-2008-09-24 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/6213035> ld64: bl out of range (-17147704 max is +/-16M) on ppc
- * src/MachOWriterExecutable.hpp: tweak branch island regions to be every 14MB instead of 15MB
-
+-------- tagged ld64-111
-2008-09-24 Nick Kledzik <kledzik@apple.com>
+2010-03-03 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/5907981> -filelist fails with comma in path
- * src/Options.cpp: in loadFileList() first try without special comma meaning
- * unit-tests/test-cases/filelist/Makefile: update test case
-
+ * Add support for "-arch arm -force_cpusubtype_ALL" to keep gcc building
-2008-09-23 Nick Kledzik <kledzik@apple.com>
+2010-03-02 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/6203068> nop not used when aligning functions in -r mode
- * src/MachOWriterExecutable.hpp: change check for when to pad with nops to not test segment's name
-
+ * Add some checking to the use of upward dylibs
-2008-09-23 Nick Kledzik <kledzik@apple.com>
+-------- tagged ld64-110
- <rdar://problem/6238329> "-pie can only be used when linking a main executable" should be a warning, not an error
- * src/Options.cpp: make -pie on a dylib or bundle be a warning instead of an error
-
-
-2008-09-23 Nick Kledzik <kledzik@apple.com>
+2010-03-01 Nick Kledzik <kledzik@apple.com>
- * src/MachOReaderRelocatable.hpp: add warning if dwarf cannot be encoded as compact unwind
-
+ * Don't coalesce cstrings across segments
-2008-09-18 Nick Kledzik <kledzik@apple.com>
+2010-03-01 Nick Kledzik <kledzik@apple.com>
- * src/LTOReader.hpp: re-enable use of lto_codegen_debug_options()
+ * Emulate previous linker bug where hidden symbols with dynamically-referenced
+ bit were promoted to global.
+ * Added test case: unit-tests/test-cases/unstrippable-symbols
+-------- tagged ld64-109.1
-2008-09-16 Nick Kledzik <kledzik@apple.com>
+2010-02-26 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/6219054> ld does not always set S_CSTRING_LITERALS on __TEXT,__cstring
- * src/MachOReaderRelocatable.hpp: add getContentType() to SymbolAtom
- * src/MachOWriterExecutable.hpp: for x86_64 don't override named cstrings with LC* name
+ * Make sure building dyld results in a thread load command
+-------- tagged ld64-109
-2008-09-10 Nick Kledzik <kledzik@apple.com>
+2010-02-26 Nick Kledzik <kledzik@apple.com>
- * Options.cpp: add __crashreporter_info__ to communicate command line to crash reporter
- * ld64.xcodeproj/project.pbxproj: leave local symbols in ld to provide better crash reports
+ * Better sorting of zero-fill sections to preserve discovery order
+ * Zero out file offsets in dynamic symbol table entries that are not used
+2010-02-26 Nick Kledzik <kledzik@apple.com>
-2008-09-08 Nick Kledzik <kledzik@apple.com>
+ * Support pointer-diffs to zero sized atom in zero sized section
- <rdar://problem/6126637> 161569 GCC 4.2 - breakpoints no longer work for a large number of functions
- * src/MachOReaderRelocatable.hpp: support DW_FORM_strp out-of-line strings when parsing line table
+2010-02-25 Nick Kledzik <kledzik@apple.com>
+ * Add support for -r mode with ppc64
-2008-09-02 Nick Kledzik <kledzik@apple.com>
+2010-02-25 Nick Kledzik <kledzik@apple.com>
- * src/MachOReaderRelocatable.hpp: fix compact unwind personality for dyld and -slow_stubs
+ * Handle multiple labels on the same coalesable literal by making an
+ atom for each label, each with the same content.
+ * Add test case: unit-tests/test-cases/literals-labels
-2008-08-29 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/6186838> -weak_library no longer forces uses to be weak_import
- * src/MachOWriterExecutable.hpp: use fWeakImport on dylib to force proxy atoms into fWeakImportMap
- * unit-tests/test-cases/weak_import-force: added test case
-
-
-2008-08-29 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/6061558> linker should order __DATA segment to reduce dyld dirtied pages
- * src/Options.cpp: add fOrderData and support -no_data_order
- * src/ld.cpp: modify tweakLayout() to sort atoms with relocations to start of __data section
+2010-02-25 Nick Kledzik <kledzik@apple.com>
+ * Handle old ppc .o files that have stubs to static functions
-2008-08-27 Nick Kledzik <kledzik@apple.com>
+2010-02-25 Nick Kledzik <kledzik@apple.com>
- * src/Options.cpp: back out <rdar://problem/6174493>
+ * Add basic ppc64 support
+2010-02-24 Nick Kledzik <kledzik@apple.com>
------ Tagged ld64-87.5
+ * Range check TOC entries in archives
-2008-08-26 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/6174493> some projects show _Unwind_Resume coming from libSystem.B.dylib
- * src/Options.cpp: swap any early symlinks to libSystem with libgcc_s
+2010-02-23 Nick Kledzik <kledzik@apple.com>
+ * Fix spurious dylib re-export warnings that are just regular linkage cycles
------ Tagged ld64-87.4
-2008-08-25 Nick Kledzik <kledzik@apple.com>
+2010-02-23 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/6174493> some projects show _Unwind_Resume coming from libSystem.B.dylib
- * src/Options.cpp: swap any early libSystem with libgcc_s
-
+ * re-partition bits in mach_o::relocatable::Atom ivars to allow more functions per file
-2008-08-15 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/5898326> Unable to build ppc debug builds (linker out of range error)
- * src/MachOWriterExecutable.hpp: in addPPCBranchIslands() look ahead so large atoms don't push out branch islands
+2010-02-22 Nick Kledzik <kledzik@apple.com>
+ * re-partition bits in mach_o::relocatable::Atom ivars to allow more fixups per function
------ Tagged ld64-87.3.1
-
-2008-09-08 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/6204202> i386 dylibs have incorrect personality pointers when put in dyld shared cache
- * src/MachOWriterExecutable.hpp: in addCrossSegmentRef() handle kImageOffset32 to __IMPORT segment
+2010-02-22 Nick Kledzik <kledzik@apple.com>
+ * Handle re-exported dylibs that are re-exported again
+ * Added test case: unit-tests/test-cases/re-export-layers
------ Tagged ld64-87.3
-
-2008-08-09 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/6125381> work around compiler gcc_except_table alignment
- * src/ObjectFile.h: change getLSDA() to return a reference instead of an atom
- * src/MachOReaderRelocatable.hpp: special case __eh_frame 64-bit pointer diff relocations
- * src/MachOWriterExecutable.hpp: track lsda offset when creating __unwind_info section
- * src/UnwindDump.cpp: log when LDSA content does not start with 0xFF
------ Tagged ld64-87.2
+2010-02-22 Nick Kledzik <kledzik@apple.com>
-2008-08-07 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/6131559> 10A141: libuwind falls back to dwarf and makes whole system super slow
- * src/MachOWriterExecutable.hpp: Fix sign extension bug with x86_64::kPointerDiff24
- * src/UnwindDump.cpp: warn about mangled LSDA entries when dumping unwind section
+ * Properly handle X86_64_RELOC_SUBTRACTOR with non-external target symbol
------ Tagged ld64-87.1
-
-2008-08-03 Nick Kledzik <kledzik@apple.com>
-
- * src/LTOReader.hpp: Don't use lto_codegen_debug_options until newer libLTO.dylib is available
-
+-------- tagged ld64-108
------ Tagged ld64-87
+2010-02-17 Nick Kledzik <kledzik@apple.com>
-2008-07-21 Nick Kledzik <kledzik@apple.com>
-
- * src/Options.cpp: Always set fAutoOrderInitializers=false for dyld
+ * <rdar://problem/7658740> ER: Support upward dylib dependencies
+ * Add test case: unit-tests/test-cases/dylib-upward
-2008-07-21 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.hpp: fix when regular vs compressed __unwind_info pages are generated
- * src/UnwindDump.cpp: fix function name decoding in regular pages
-
-
-2008-07-21 Nick Kledzik <kledzik@apple.com>
+2010-02-17 Nick Kledzik <kledzik@apple.com>
- * ld64.xcodeproj/project.pbxproj: don't allow ld to build for x86_64 until libdtrace.dylib is available
+ * <rdar://problem/7401775> ld(1) man page typo
+ * <rdar://problem/7230340> Linker (ld) man page typo: "unredable" in -pagezero_size option description
+ * <rdar://problem/7207483> Typo in ld(1) man page, "-x" option
+ * <rdar://problem/6239264> man ld: Change "if" -> "is"
+ * <rdar://problem/7393216> DOC: ld(1) mentions -dynamiclib when it means -dylib
-2008-07-18 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: don't crash if debug_line section has no line table
-
-
-2008-07-18 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5628149> Duplicate probe firings in Security.framework
- * src/LTOReader.hpp: optimize() now returns atoms optimized away
- * src/ObjectFile.h: optimize() should return if it did anything
- * src/ArchiveReader.hpp: pass through optimize() result
- * src/ld.cpp: rework dtrace probe processing as a new pass to prevent double counting
-
-
-2008-07-15 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/6061904> automatically order initializers to start of __TEXT
- * src/Options.cpp: add -no_order_inits option
- * src/MachOReaderRelocatable.hpp: merge __StaticInit into __text
- * src/ObjectFile.h: add fAutoOrderInitializers
- * src/ld.cpp: sort initializer to start of __text and terminators to end
- * doc/man/man1/ld.1: add doc about -no_order_inits
- * unit-tests/test-cases/init-order: add test case
-
-2008-07-15 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/6073697> Only add LC_SEGMENT_SPLIT_INFO to dylibs that might be in the shared cache
- * src/MachOWriterExecutable.hpp: re-layout load commands after split-seg data computed
- * src/Options.cpp: non-public install name will disable split-seg load command
-
+2010-02-17 Nick Kledzik <kledzik@apple.com>
-2008-07-14 Nick Kledzik <kledzik@apple.com>
+ * <rdar://problem/7625461> Wordsmith ld warning about missing directories
- <rdar://problem/6069861> ld -r for x86_64 is changing visibility of cstring constants
- * src/MachOWriterExecutable.hpp: force x86_64 cstring labels to be local in -r mode
- * unit-tests/test-cases/cstring-label: added test case
-
-2008-07-11 Nick Kledzik <kledzik@apple.com>
+2010-02-17 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/6070190> ld not adding updating LC_SEGMENT_SPLIT_INFO with __unwind_info section
- * src/MachOWriterExecutable.hpp: run createSplitSegContent() after __unwind_info section is created
+ * Fix -umbrella to work when umbrella is a dylib instead of a framework
+ * Add test case: unit-tests/test-cases/umbrella-dylib
-2008-07-10 Nick Kledzik <kledzik@apple.com>
-
- * src/LTOReader.hpp: improve missing symbol error message
+-------- tagged ld64-107
-2008-07-09 Nick Kledzik <kledzik@apple.com>
+2010-02-16 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/6061558> linker should order __DATA segment to reduce dyld dirtied pages
- * src/ld.cpp: first phase, order sections
+ * Fix bugs with -preload
-2008-07-08 Nick Kledzik <kledzik@apple.com>
+2010-02-16 Nick Kledzik <kledzik@apple.com>
- * src/MachOReaderRelocatable.hpp: remove "coal" sections when creating a final linked image
+ * Fix dylib re-export cylce detection
-2008-07-08 Nick Kledzik <kledzik@apple.com>
+2010-02-16 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/6054476> ld: add support for mllvm LTO options
- * src/Options.cpp: support -mllvm option
- * src/LTOReader.hpp: call lto_codegen_debug_options() with -mllvm options
- * src/ld.cpp: pass llvmOptions to optimize()
- * src/Options.h: add fLLVMOptions
- * src/ArchiveReader.hpp: add llvmOptions parameter to optimize()
- * src/ObjectFile.h: add llvmOptions parameter to optimize()
- * unit-tests/test-cases/lto-llvm-options: add test case
+ * <rdar://problem/6018216> -ObjC not pulling in members with categories only
+ * scan for non-zero __objc_catlist section in archive members when -ObjC is used
+ * Added test case: unit-tests/test-cases/objc-category-archive
-2008-07-07 Nick Kledzik <kledzik@apple.com>
+2010-02-15 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/6054296> Linker fails with: 24-bit pointer diff out of range in unwind info in unwind info from...
- * src/MachOWriterExecutable.hpp: fix when to fallback to uncompressed unwind info
+ * <rdar://problem/7398610> ld glibly removes /dev/null
-
-2008-07-03 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/6001472> ld crash with gcc-4.0 code that uses a zero sized array
- * src/MachOReaderRelocatable.hpp: handle zero size atom in a zero sized section
+2010-02-15 Nick Kledzik <kledzik@apple.com>
-2008-07-03 Nick Kledzik <kledzik@apple.com>
+ * <rdar://problem/7196255> Linker should be able to validate GC intentions
+ * Add -objc_gc and -objc_gc_only. Error when used and RR based .o file is linked in
+ * Update test case: unit-tests/test-cases/objc-gc-checks
- <rdar://problem/6016809> ld crashes when bad ppc relocs are found
- * src/MachOReaderRelocatable.hpp: change all missing PAIR warnings to errors
-
-2008-07-02 Nick Kledzik <kledzik@apple.com>
+2010-02-15 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/5881324> when linking a kext the static linker should leave a pad in the headers to allow code signing
- * src/MachOWriterExecutable.hpp: add padding for load commands in object files
- * unit-tests/test-cases/code-signed-object-file: added test case
+ * <rdar://problem/7421695> Linker should provide a way to mark binaries that support compaction
+ * Added -objc_gc_compaction option
+ * Update test case: unit-tests/test-cases/objc-gc-checks
-2008-07-02 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/6048484> LC_SEGMENT_64 filesize incorrect for MH_OBJECT filetype
- * src/MachOWriterExecutable.hpp: correctly set segment size info in object files
- * unit-tests/test-cases/no-object-symbols: add test case
+2010-02-15 Nick Kledzik <kledzik@apple.com>
+ * <rdar://problem/7546367> ER: Need a way to detect weak exports in dev tools
+ * implement -warn_weak_exports
-2008-06-26 Nick Kledzik <kledzik@apple.com>
+2010-02-15 Nick Kledzik <kledzik@apple.com>
- * ld64.xcodeproj/project.pbxproj: enable ld and rebase targets to build for x86_64
- * src/rebase.cpp: remove unused fRelocBase field that was not 64-bit clean
- * src/MachOReaderRelocatable.hpp: fix getEncodedP() to be 64-bit clean
+ * Add support for LD_DYLD_PATH
------ Tagged ld64-86.3
-
-2008-06-17 Nick Kledzik <kledzik@apple.com>
-
- * src/ld.cpp: fix loadUndefines() to double check undefine symbol was not already loaded
-
-
------ Tagged ld64-86.2
-
-2008-06-14 Nick Kledzik <kledzik@apple.com>
-
- * srd/ld.cpp: Add NULL check in getTentativesNames()
-
-
------ Tagged ld64-86.1
-
-2008-06-06 Nick Kledzik <kledzik@apple.com>
+2010-02-15 Nick Kledzik <kledzik@apple.com>
- * src/MachOWriterExecutable.hpp: fix header padding calculation for dyld
+ * <rdar://problem/7636072> cfstring backing store points to global cstring
+ * Force all by-name references in cfstring to be direct references
+ * add test case: unit-tests/test-cases/cfstring-and-cstring
------ Tagged ld64-86
+-------- tagged ld64-106
-2008-06-04 Nick Kledzik <kledzik@apple.com>
+2010-02-12 Nick Kledzik <kledzik@apple.com>
- * src/LTOReader.hpp: if lto_codegen_add_module() fails, add explanation to error message
+ * <rdar://problem/7644673> Assertion failed: when class is translation unit scoped
+ * added test case unit-tests/test-cases/objc-visibility
-2008-06-04 Nick Kledzik <kledzik@apple.com>
-
- * src/ObjectFile.h: add deadAtoms parameter to optimize()
- * src/ld.cpp: ditto
- * src/ArchiveReader.hpp: ditto
- * src/MachOReaderRelocatable.hpp: handle llvm use of 0x1B pointer encodings in CIEs
- * src/LTOReader.hpp: make sure libLTO.dylib knows about any llvm symbol coalesced away
- * unit-tests/test-cases/lto-weak-native-override: add test case
+2010-02-12 Nick Kledzik <kledzik@apple.com>
+ * <rdar://problem/7644828> crash with missing crt?
-2008-06-04 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/5935600> LTO : 176.gcc and 177.mesa build failure at -O4
- * src/LTOReader.hpp: make sure internal is returned by getAtoms()
- * unit-tests/test-cases/lto-archive-dylib: update test case
+2010-02-12 Nick Kledzik <kledzik@apple.com>
+ * Suppress indirect symbol table in static executables
+
-2008-06-03 Nick Kledzik <kledzik@apple.com>
+2010-02-12 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/5894163> fix for 5613343 need to search for definitions for common symbols is broken
- * src/ld.cpp: modify loadUndefines() to check for undefines in all files and tentative definitions but only in archives
- * src/machochecker.cpp: check for undefine symbols and external symbols with same name
- * unit-tests/test-cases/tentative-and-archive: update test case
+ * Rework CIE parsing to work with icc generated code
-2008-06-03 Nick Kledzik <kledzik@apple.com>
+2010-02-11 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/5935237> linker produces wrong result for 16-bit call relocations
- * src/MachOReaderRelocatable.hpp: properly parse i386 scattered relocs for word sized pc-rel vanilla
- * src/MachOWriterExecutable.hpp: propery compute displacement for x86::kPCRel16
- * unit-tests/test-cases/relocs-asm: update test case with callw instructions
-
+ * Fix creation of debug notes
+ * Tweak unit-tests/test-cases/dwarf-debug-notes to match llvm symbol layout
-2008-06-03 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/5905900> Building kext x86_64 with unexported symbols file causes linking problems
- * src/MachOWriterExecutable.hpp: better check when creating undefined proxy atoms
- * unit-tests/test-cases/unexported_symbols_list-r: added test case
-
+2010-02-11 Nick Kledzik <kledzik@apple.com>
-2008-06-02 Nick Kledzik <kledzik@apple.com>
+ * Don't assert when infering ppc subtype that is ALL.
+ * Fix spurious warning about mismatched subtypes, when subtype is inferred
- <rdar://problem/5659338> S_CSTRING_LITERALS section type not preserved in executable
- * src/ObjectFile.h: added ContentType
- * src/MachOReaderRelocatable.hpp: set ContentType for anonymous string literals
- * src/MachOWriterExecutable.hpp: set S_CSTRING_LITERALS if ContentType is kCStringType
- * unit-tests/test-cases/cstring-custom-section: added test case
-
-2008-06-02 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5980194> linker should produce __unwind_info section in final linked images
- * src/ld.cpp: sort __unwind_info then __eh_frame section to end of __TEXT
- * src/Architectures.hpp: add kImageOffset32 and kPointerDiff24
- * src/ObjectFile.h: add compact unwind info support
- * src/MachOReaderRelocatable.hpp: add compact unwind info support
- * src/MachOFileAbstraction.hpp: add C++ wrappers for unwind section layout
- * src/UnwindDump.cpp: new tool for dumping __unwind_info section
- * src/MachOWriterExecutable.hpp: create __unwind_info section when needed
- * src/ObjectDump.cpp: print unwind info
-
+-------- tagged ld64-105
-2008-06-02 Nick Kledzik <kledzik@apple.com>
+2010-02-11 Nick Kledzik <kledzik@apple.com>
- * unit-tests/test-cases/llvm-integration: split out some test cases
- * unit-tests/test-cases/lto-preload-pie: added
- * unit-tests/test-cases/lto-archive-dylib: added
+ * Use symbolic constants for bit field sizes
-2008-05-30 Nick Kledzik <kledzik@apple.com>
+2010-02-10 Nick Kledzik <kledzik@apple.com>
- * unit-tests: fixes to build all tests with with gcc-4.2 on SnowLeopard
-
+ * Handle out of order sections in .o files
-2008-05-30 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/5536348> support -preload option to generate MH_PRELOAD binaries compatible with mtoc(1) and EFI
- * src/ld.cpp: add entryPoint parameter to optimize()
- * src/ArchiveReader.hpp: ditto
- * src/ObjectFile.h: ditto
- * src/LTOReader.hpp: use entryPoint parameter to optimize()
- * src/Options.h: add kPreload and segment alignment
- * src/Options.cpp: support -preload and -segalign
- * src/MachOWriterExecutable.hpp: support kPreload and non-page aligned segments
+-------- tagged ld64-104
+2010-02-10 Nick Kledzik <kledzik@apple.com>
-2008-05-30 Nick Kledzik <kledzik@apple.com>
+ * Rename __tentative internal section name to __comm/tent to sort like __common
+ * Fix test case in unit-tests/test-cases/tentative-to-real-r
- <rdar://problem/4431008> ld should warn if passed -r and also dylibs
- * src/ld.cpp: check for spurious dylibs in Linker::addDylib()
+2010-02-10 Nick Kledzik <kledzik@apple.com>
------ Tagged ld64-85.6
+ * Better warning messages about mismatched architectures
-2008-11-01 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/6254202> support increased branch range in Thumb-2
- * src/MachOWriterExecutable.hpp: in fixUpReferenceFinal() support new longer branch range
+2010-02-10 Nick Kledzik <kledzik@apple.com>
+ * Gracefully ignore if there are >8000 line info per function in debug info
-2008-11-01 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/6104368> ld warning: unknown option to -iphoneos_version_min, not 1.x or 2.x
- * src/Options.cpp: In setIPhoneVersionMin() support 3.x
-
-
------ Tagged ld64-85.5
-
-2008-09-17 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/6162415> vtable pointers can be missing thumb bit
- * src/MachOWriterExecutable.hpp: Writer<arm>::fixUpReferenceFinal() OR in the 1 bit if the target
- of a arm::kReadOnlyPointer is thumb.
+2010-02-10 Nick Kledzik <kledzik@apple.com>
+ * Properly handle when regular definition is weak_imported
+ * Add unit-tests/test-cases/weak_import-local
------ Tagged ld64-85.4
-2008-08-11 Nick Kledzik <kledzik@apple.com>
+2010-02-10 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/6138961> ld should ignore LD_PREBIND when processing a static archive
- * src/MachOWriterExecutable.hpp: in setImportNlist() never use N_PBUD for object files
+ * Don't try to coalesce zero length cstrings in mach-o parser.
------ Tagged ld64-85.3
-2008-07-14 Nick Kledzik <kledzik@apple.com>
+2010-02-10 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/6060912> Prebinding busted in DTSB
- * src/Options.cpp: check for libstdc++.6.0.[49] in seg_addr_table
+ * Add work around for llvm using L labels for backing string of CFString with -fwritable-strings
------ Tagged ld64-85.2
-
-2008-05-06 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5905889> ARM ld should take W bit off of maxprot for __TEXT segment
- * src/MachOWriterExecutable.hpp: for iPhone always set maxprot to be initprot in all segments
-
-
-2008-05-06 Nick Kledzik <kledzik@apple.com>
+2010-02-09 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/5914343> encryptable images may not be signable
- * src/MachOWriterExecutable.hpp: use minimum header padding when aligning __text section
-
-
------ Tagged ld64-85 (Xcode 3.1)
+ * Ignore labels in __gcc_except_tab section
+ * Properly apply local relocations to __eh_frame section so CFI parser works
+ * Update unit-tests/test-cases/eh-stripped-symbols to reproduce problem
-2008-04-29 Nick Kledzik <kledzik@apple.com>
- * ld64.xcodeproj/project.pbxproj: <llvm-c/lto.h> is moving from /usr/local/include to /Developer/usr/local/include
+2010-02-09 Nick Kledzik <kledzik@apple.com>
+ * Fix file offset computation with large zero-fill sections
+
-2008-04-29 Nick Kledzik <kledzik@apple.com>
+2010-02-09 Nick Kledzik <kledzik@apple.com>
- <rdar://problem/5829579> ld doesn't honor "rightmost" -syslibroot argument
- * src/Options.cpp: if last -syslibroot is /, then ignore all syslibroots
+ * Force global 'l' to be hidden
+ * Add test case with objc properties: unit-tests/test-cases/objc-properties
-2008-04-29 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5866582> GLRendererFloat has bad __eh_frame section caused by mixing llvm-gcc and gcc object files
- * src/MachOReaderRelocatable.hpp: make all atoms in __eh_frame section have 1-byte alignment
- * src/MachOWriterExecutable.hpp: make __eh_frame section have pointer sized alignment
+-------- tagged ld64-103
+2010-02-04 Nick Kledzik <kledzik@apple.com>
-2008-04-17 Nick Kledzik <kledzik@apple.com>
+ * Temporarily change assert() to call exit(1) instead of abort()
- * src/MachOReaderRelocatable.hpp: better cpu subtype support
+2010-02-04 Nick Kledzik <kledzik@apple.com>
-2008-04-14 Nick Kledzik <kledzik@apple.com>
+ * Fix another case in -r mode where the vmsize was less that filesize
- <rdar://problem/5733759> ld64 has bad ARM branch island check
- * src/MachOWriterExecutable.hpp: in addBranchIslands() don't force large arm programs to fail
+2010-02-04 Nick Kledzik <kledzik@apple.com>
-2008-04-10 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.hpp: fix stubs used with lazy dylibs
+ * Fix assert when generating GSYM stab debug notes
------ Tagged ld64-84.4
-
-2008-04-10 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5847206> SPEC2000/eon built with -mdynamic-no-pic won't run
- * src/Architectures.hpp: added arm::kReadOnlyPointer
- * src/MachOReaderRelocatable.hpp: generate arm::kReadOnlyPointer
- * src/MachOWriterExecutable.hpp: use arm::kReadOnlyPointer
- * src/machochecker.cpp: allow MH_PIE bit
- * unit-tests/test-cases/switch-jump-table: added test cases
-
+2010-02-04 Nick Kledzik <kledzik@apple.com>
------ Tagged ld64-84.3
+ * Add SRCROOT to crash logs
-2008-04-09 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5852023> -undefined dynamic_lookup busted
- * src/ld.cpp: don't create proxy atom when scanning for dylib duplicates
- * unit-tests/test-cases/tentative-and-archive: use -undefined dynamic_lookup
+2010-02-04 Nick Kledzik <kledzik@apple.com>
------ Tagged ld64-84.2
+ * Remove architectureName() from InputFiles
-2008-04-04 Nick Kledzik <kledzik@apple.com>
- * src/ld.cpp: don't add .eh symbols to symbol table in -r mode
- * unit-tests/test-cases/eh-coalescing-r: update to test out of order coalescing
-
+-------- tagged ld64-102
------ Tagged ld64-84.1
+2010-02-03 Nick Kledzik <kledzik@apple.com>
-2008-03-28 Nick Kledzik <kledzik@apple.com>
+ * Add follow-on reference from symbol text atom to non-symboled text atom
- <rdar://problem/5720961> ld should prefer architecture-specific variant over generic in fat object file
- * src/Options.cpp: fully process -arch arguments into fArchitecture and fSubArchitecture
- * src/ld.cpp: when -arch with a subtype is used, try to find the exact subtype from fat files
- * unit-tests/test-cases/cpu-sub-types-preference: added test cases for arm and ppc
-
------ Tagged ld64-84
+-------- tagged ld64-101
-2008-03-28 Nick Kledzik <kledzik@apple.com>
+2010-01-29 Nick Kledzik <kledzik@apple.com>
- * src/LTOReader.hpp: don't print lto version, if lto is unavailable
+ * fix -alias symbols to be global by default
-2008-03-26 Nick Kledzik <kledzik@apple.com>
+-------- tagged ld64-100
- <rdar://problem/5575399> Add LD_WARN_COMMONS to BigBear builds
- * src/Options.cpp: Add support for LD_WARN_FILE which copies all warnings to a side file
+2010-01-28 Nick Kledzik <kledzik@apple.com>
-
-2008-03-26 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5797713> Need encryption tag in mach-o file
- <rdar://problem/5811920> linker should adjust arm final linked images so __text is never on the same page as the load commands
- * src/MachOFileAbstraction.hpp: add support for encryption_info_command
- * src/Options.cpp: add support for LD_NO_ENCRYPT and -no_encryption
- * src/MachOWriterExecutable.hpp: add EncryptionLoadCommandsAtom
- * src/machochecker.cpp: validate LC_ENCRYPTION_INFO
+ * Merge new/refactored linker to trunk
-
-2008-03-25 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5712533> ld64 does not recognize LLVM bitcode archive files
- * src/MachOReaderArchive.hpp: renamed to src/ArchiveReader.hpp
- * src/ArchiveReader.hpp: sniff each member and instantiate correct reader
- * src/ld.cpp: rename mach_o::archive::Reader to archive::Reader
- * ld64.xcodeproj/project.pbxproj: rename MachOReaderArchive.hpp to ArchiveReader.hpp
- * unit-tests/test-cases/llvm-integration: added test case
-
-
-2008-03-25 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5771658> ld64 should switch to new libLTO.dylib interface
- <rdar://problem/5675690> Produce llvm bc file in 'ld -r' mode if all .o files are llvm bc
- * src/LTOReader.hpp: rewrite from LLVMReader.hpp to use new lto_* C interface
- * unit-tests/test-cases/llvm-integration: update and comment
- * ld64.xcodeproj/project.pbxproj: update to lazy load libLTO.dylib
- * src/ld.cpp: rework and simplify Linker::optimize()
- * src/ObjectDump.cpp: Add -nm option
-
-
-2008-03-25 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.cpp: Fix some .objc_class_name_ off by one problem
- * src/MachOWriterExecutable.cpp: Fix some .objc_class_name_ off by one problem
-
-
-2008-03-24 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5814613> Xcode 3.1 breaks linkage of libgcj.9.dylib from gcc 4.3.0
- * src/MachOWriterExecutable.cpp: Make sure all ivars in Writer are initialized.
-
-
-2008-03-21 Nick Kledzik <kledzik@apple.com>
-
- * src/Options.cpp: warn if -seg1addr value is not page aligned
-
-
-2008-03-21 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5806437> Move ARM support outside of __OPEN_SOURCE__
- * src/ld.cpp: remove __OPEN_SOURCE__ around arm support
- * src/LLVMReader.hpp: remove __OPEN_SOURCE__ around arm support
- * src/MachOReaderDylib.hpp: remove __OPEN_SOURCE__ around arm support
- * src/ObjectFile.h: remove __OPEN_SOURCE__ around arm support
- * src/MachOReaderRelocatable.hpp: remove __OPEN_SOURCE__ around arm support
- * src/OpaqueSection.hpp: Cover arm support inside __OPEN_SOURCE__ macro check
- * src/MachOWriterExecutable.hpp: remove __OPEN_SOURCE__ around arm support
- * src/ObjectDump.cpp: remove __OPEN_SOURCE__ around arm support
- * ld64.xcodeproj/project.pbxproj: remove ARM_SUPPORT from config.h
-
-
------ Tagged ld64-83.2
-
-2008-03-15 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5801620> ld64-83 removes OBJC_CLASS_$ symbols from projects, causes catastrophic results
- * src/Options.cpp: restore "case CPU_TYPE_ARM" in switch statement for .objc_class symbols in .exp files
- * unit-tests/test-cases/objc-exported_symbols_list: added test case
-
-
------ Tagged ld64-83.1
-
-2008-03-14 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5800466> -iphone_version_min ==> -iphoneos_version_min
- * src/Options.cpp: support -iphoneos_version_min as well
-
-
------ Tagged ld64-83
-
-2008-03-10 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5791543> ld needs to strip iphone_version_min option if invoking ld_classic
- * src/Options.cpp: suppress -iphone_version_min from being passed to ld_classic
-
-
-2008-03-04 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4171253> ADOBE XCODE: Linker option to lazy load frameworks (cause dyld is too slow)
- * src/MachOWriterExecutable.hpp: create lazy stubs and LC_LAZY_LOAD_DYLIB for lazy load dylibs
- * src/Options.cpp: support -lazy-l, -lazy_library, and -lazy_framework
- * src/MachOFileAbstraction.hpp: add LC_LAZY_LOAD_DYLIB and S_LAZY_DYLIB_SYMBOL_POINTERS until in cctools
- * src/MachOReaderDylib.hpp: add isLazyLoadedDylib()
- * src/ld.cpp: pass lazy helper atom to writer
- * doc/man/man1/ld.1: document new options
- * unit-tests/test-cases/lazy-dylib-objc: add test case
- * unit-tests/test-cases/lazy-dylib: add test case
-
-
------ Tagged ld64-82.7
-
-2008-03-07 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5787149> duplicate symbol literal-pointer@__OBJC@__message_refs@...
- * src/MachOReaderRelocatable.hpp: AnonymousAtom from S_LITERAL_POINTERS section should be weak
- * unit-tests/test-cases/objc-selector-coalescing: added test case
-
-
------ Tagged ld64-82.6
-
-2008-03-04 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5779681> ld crashes building XsanFS for Snow Leopard Builds
- * src/ld.cpp: add bool dylibsOnly parameter to addJustInTimeAtoms()
- * unit-tests/test-cases/tentative-and-archive: added test case
-
-2008-03-04 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5775822> ld64 should not force building with gcc 4.0
- * ld64.xcodeproj/project.pbxproj: change rules to use "system" compiler instead of 4.0
-
-
-2008-02-29 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5774730> Simulator frameworks are being build split-seg and not prebound
- * src/Options.cpp: only splitseg if prebound
-
-
-2008-02-29 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5774231> Linker should not make GSYM debug note for .objc_category_* symbols
- * src/ld.cpp: suppress GSYM debug notes for absolute symbols
- * unit-tests/test-cases/objc-category-debug-notes: added test case
-
-
-2008-02-29 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5768970> non-ASCII CFString support is broken
- * src/MachOReaderRelocatable.hpp: only name and coalesce cfstring constants if they use a __cstring
- * unit-tests/test-cases/cfstring-utf16: add test case
-
-
-2008-02-25 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5366363> ld -r -x
- * doc/man/man1/ld.1: update man page to explain -r -x produces auto-stripped labels
-
-
------ Tagged ld64-82.5
-
-2008-02-12 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5738023> x86_64: -stack_size failure when large __bss is used
- * src/ld.cpp: only move section already in __DATA segment to new __huge section
- * unit-tests/test-cases/stack_size_no_addr: updated test case to add large bss section
-
-
------ Tagged ld64-82.4
-
-2008-02-06 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5726215> comdat warnings with ld -r of C++ .o files
- * unit-tests/test-cases/eh-coalescing-r: added test case
- * src/ld.cpp: in ld -r mode don't warn about if .eh symbols are not static
-
-
-2008-02-06 Devang Patel <dpatel@apple.com>
-
- <rdar://problem/5724990> LTO of Bom framework with -dead_strip causes ld(1) crash
- * src/LLVMReader.hpp: Check fAtom while determining LLVMReference target binding.
- * unit-tests/test-cases/llvm-integration/Makefile: Add new test case.
- * unit-tests/test-cases/llvm-integration/a15.c: New.
- * unit-tests/test-cases/llvm-integration/b15.c: New.
- * unit-tests/test-cases/llvm-integration/c15.c: New.
-
-2008-02-05 Nick Kledzik <kledzik@apple.com>
-
- * src/ld.cpp: fix for -arch ppc -mdynamic-no-pic -pie so PPC_RELOC_HA16 reloc is used
-
------ Tagged ld64-82.3
-
-2008-02-04 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5721186> ld doesn't seem to understand $ld$add$os... and $ld$hide$os... for 10.6 moves
- * src/ObjectFile.h: add 10.6
- * src/Options.cpp: add 10.6 support
- * src/MachOReaderDylib.hpp: recognize $os10.6$
-
-
------ Tagged ld64-82.2
-
-2008-01-30 Devang Patel <dpatel@apple.com>
-
- <rdar://problem/5714833> Can't build 64-bit Intel binaries with LTO
- <rdar://problem/5714787> ld64 fails to build with llvm-gcc-4.2
- * src/LLVMReader.hpp: Fix character count typo in strncmp call.
- Use const char * to initialize temp. string.
- * ld64.xcodeproj/project.pbxproj: use $(DEVELOPER_DIR) in header search construction
- instead of hard coding /Developer.
-
------ Tagged ld64-82.1
-
-2008-01-23 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: don't bus error if S_LITERAL_POINTERS is missing relocs
-
-
-2008-01-22 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5695496> ld uses 32-bits in some places to hold addresses when parsing 64-bit mach-o files
- * src/MachOReaderRelocatable.hpp: use AddrToAtomMap type that switch address to 64-bits for 64-bit archs
- * src/MachOWriterExecutable.hpp: verify BR14 does not overflow for external relocs
- * unit-tests/test-cases/relocs-c: update test case to slide addresses to verify x86_64 .o files
-
-
------ Tagged ld64-82
-
-2008-01-18 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5694612> Bad grammar used in ld warning: cannot exported hidden symbol
- * src/ld.cpp: fix typo in warning string
-
-
-2008-01-16 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5565074> Bundle Loader does not work anymore when loader is a bundle
- <rdar://problem/5590203> ld warns of incorrect architecture when linking a bundle to a bundle
- * src/MachOReaderDylib.hpp: support linking against bundles via -bundle_loader. Clean up error messages
- * unit-tests/test-cases/bundle_loader: update test case
-
-
-2008-01-16 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5366363> ld -r -x creates debug notes (stabs) when it should not with -x (keep only global symbols)
- * src/Options.cpp: in reconfigureDefaults() if -r and -x then -S
-
-
-2008-01-16 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5566068> if ld crashes while writing output file, it should delete the half written file
- * src/MachOWriterExecutable.hpp: wrap open/write/close in try block and add signal handlers all to delete
- output file on failure.
-
-
-2008-01-16 Devang Patel <dpatel@apple.com>
-
- * src/LLVMReader.hpp: Use __gnu_cxx::hash_map instead of hash supported by LLVM.
-
-
-2008-01-16 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5593537> GC-supported library can't be linked into GC-required executable
- * src/ld.cpp: loosen constraint that all objc code must be compiled with same GC settings and
- allow gc-compatible code to be linked into anything.
- * unit-tests/test-cases/objc-gc-checks: update test case
-
-
-2008-01-15 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5687976> no debug notes for custom named data
- * src/ld.cpp: in synthesizeDebugNotes() check getSymbolTableInclusion() instead of for leading underscore
- * unit-tests/test-cases/dwarf-debug-notes: update test case
-
------ Tagged ld64-81.5
-
-2008-01-14 Devang Patel <dpatel@apple.com>
-
- <rdar://problem/5683813> llvm-gcc-4.2 fails to build Sqlite 3.5.4 with -O4
- * src/LLVMReader.hpp: Resolve proxy references. Collect new unbounded references
- after optimization.
- * src/ld.cpp: Resolve additional unbounded references after optimization.
-
-
-2008-01-14 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5655246> PPC Leopard (Xcode 3.0) linker ld gets "Bus error" sometimes
- * src/MachOReaderRelocatable.hpp: use same code as x86 to parse ppc and arm sect-diff relocs
- * src/MachOWriterExecutable.hpp: use same code as x86 to write ppc and arm sect-diff relocs
-
-
-2008-01-11 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5637618> PPC Leopard (Xcode 3.0) linker ld reports "unknown scattered relocation type 4"
- * src/MachOReaderRelocatable.hpp: add PPC_RELOC_HI16 to scattered reloc parsing
- * unit-tests/test-cases/relocs-asm/relocs-asm.s: added tests for scattered hi/lo instructions
-
-
-2008-01-11 Nick Kledzik <kledzik@apple.com>
-
- * doc/man/man1/ld.1: add doc for -no_implicit_dylibs, -read_only_stubs, -slow_stubs, -interposable_list
-
-
-2008-01-11 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4800212> ld64(1) man page uses ambiguous term "suffix"
- * doc/man/man1/ld.1: make meaning of "suffix" more explicit
-
-
-2008-01-11 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5633081> Obj-C Symbols in Leopard Can't Be Weak Linked
- * src/MachOWriterExecutable.hpp: set weak and lazy attributes on dummy .objc_class_name undefines
- to dylibs to support Mac OS X 10.3.x dyld
-
-
-2008-01-11 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5669751> Unknown error with linker (dyld: unknown external relocation type)
- * src/ld.cpp: fix crash when SO stabs are not balanced
-
-
-2008-01-11 Devang Patel <dpatel@apple.com>
-
- <rdar://problem/5667433> LTO does not work if expected output is a dynamic library
- * src/LLVMReader.hpp: Supply arguments describing output kind to optimizer. Communicate
- visibility info.
-
-2000-01-10 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5680988> __cls_refs section is losing S_LITERAL_POINTERS section type
- * src/MachOWriterExecutable.hpp: special case __cls_refs section
- * unit-tests/test-cases/objc-literal-pointers: add test case
-
-
-2008-01-03 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5667688> wrong EH information might be used
- Created new kGroupSubordinate reference kind to model group comdat. The "signature" atom
- has kGroupSubordinate references to the other atoms in the group. If the signature atom
- is coalesced away, the linker follows kGroupSubordinate references and throws away the
- other members of the group.
- * unit-tests/test-cases/eh-coalescing: added test case
- * src/ld.cpp: added markDead() and use propagate to subordinates
- * src/Architectures.hpp: added kGroupSubordinate
- * src/MachOReaderRelocatable.hpp: add kGroupSubordinate reference from a function to its .eh atom
- and if used, from .eh atom to its LSDA atom.
- * src/MachOWriterExecutable.hpp: handle kGroupSubordinate like kNoFixUp
-
------ Tagged ld64-81.4.1
-
-2007-12-19 Devang Patel <dpatel@apple.com>
-
- * src/LLVMReader.hpp: Add LLVM_LTO_VERSION #ifdef check.
-
-2007-12-19 Devang Patel <dpatel@apple.com>
-
- * src/LLVMReader.hpp: Add fOptimizer NULL check before calling printVersion().
-
-2007-12-19 Devang Patel <dpatel@apple.com>
-
- <rdar://problem/5655956> print LLVM LTO version number in verbose mode
- * src/LLVMReader.hpp: Add printLLVMVersion() to print llvm version string in verbose mode.
- * src/Options.cpp: Use printLLVMVersion() in verbose mode.
-
-2007-12-19 Devang Patel <dpatel@apple.com>
-
- <rdar://problem/5655956> print LLVM LTO version number in verbose mode
- * src/Options.h: Add verbose() method to check fVerbose flag.
- * src/LLVMReader.hpp: Print LLVM version string in verbose mode.
-
------ Tagged ld64-81.4
-
-2007-12-18 Devang Patel <dpatel@apple.com>
-
- * src/LLVMReader.hpp: Invalidate input architecture when optimizer is not available.
-
------ Tagged ld64-81.3
-
-2007-12-17 Nick Kledzik <kledzik@apple.com>
-
- * ld64.xcodeproj/project.pbxproj: remove extraneous header search paths
-
-
-2007-12-17 Devang Patel <dpatel@apple.com>
-
- * src/LLVMReader.hpp: Do not throw exception if LLVMReader is not able to
- dlopen LTO library. Instead just flag input file as an invalid LLVM bitcode file.
-
-
-2007-12-14 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5645908> gcc DejaGnu failure: gcc.dg/20020312-2.c (test for excess errors) (-fstack-protector-all)
- * src/MachOWriterExecutable.hpp: fix Writer<x86>::generatesExternalTextReloc() to allow text relocs
- * unit-tests/test-cases/read-only-relocs: updated test case to link a dynamic main executable compiled with -static
-
-
-2007-12-14 Devang Patel <dpatel@apple.com>
-
- <rdar://problem/5648438> Enable Link Time Optimization in Opal
- * src/LLVMReader.hpp: Locate LLVMlto.dylib relative to ld location in Developer folder.
- * ld64.xcodeproj/project.pbxproj: Add {DEVELOPER_DIR}/usr/include in header search path.
- * unit-tests/run-all-unit-tests: Set DYLD_FALLBACK_LIBRARY_PATH to find LLVMlto.dylib during unit testing.
- * unit-tests/testcases/llvm-integration/Makefile: Point LLVMGCC and LLVMGXX to llvm-gcc-4.2 in Developer folder during unit testing.
-
-
-2007-12-13 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5645446> SWB: failures due to ld: pointer in read-only segment not allowed in slidable image, used in ...
- * src/MachOReaderRelocatable.hpp: in Reader<x86>::addRelocReference() handle weak pc-rel 32-bit vanilla relocs properly
-
------ Tagged ld64-81.2
-
-
-
-2007-12-07 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5615298> support 8-bit relocations for i386
- * src/Architectures.hpp: add kPCRel8
- * src/MachOReaderRelocatable.hpp: support 8-bit pc-rel relocations for intel
- * src/MachOWriterExecutable.hpp: support 8-bit pc-rel relocations for intel
- * unit-tests/test-cases/relocs-asm: add test cases
-
-
------ Tagged ld64-81.1
-
-2007-12-06 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderDylib.hpp: rework cycle detection to remove some false positives
-
-
-2007-12-05 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5628149> Duplicate probe firings in Security.framework
- * src/ld.cpp: check dtrace probe sites are not in fDeadAtoms before using
- * unit-tests/test-cases/dtrace-static-probes-coalescing: add test case
-
-
-2007-12-05 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: fix CFString coalescing to work with -fwritable-strings
- * unit-tests/test-cases/cfstring-coalesce: add -fwritable-strings to test case
-
-
------ Tagged ld64-81
-
-2007-11-15 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4196067> ld64 should support runtime text relocations
- * src/MachOWriterExecutable.hpp: add generatesLocalTextReloc() and generatesExternalTextReloc()
- * src/Options.cpp: process -read_only_relocs option
- * src/Options.h: add allowTextRelocs() and warnAboutTextRelocs()
- * src/MachOReaderRelocatable.hpp: add hasLongBranchStubs()
- * src/machochecker.cpp: allow relocs in read only segments, if section flags are set
- * unit-tests/test-cases/read-only-relocs: update test case
-
-
-2007-11-08 Devang Patel <dpatel@apple.com>
-
- * ld64.xcodeproj/project.pbxproj: add new build phase "build configure.h" for
- ld target.
- * src/ld.cpp: Include "configure.h"
-
-
------ Tagged ld64-80.11
-
-2008-02-12 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5741312> Wrong section name for objc info for ARM when OBJC2 is used
- * src/MachOWriterExecutable.hpp: switch segment/section name for ARM objc2 image info
-
------ Tagged ld64-80.10
-
-2008-02-11 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5733578> ld64 does not support -aspen_version_min 2.0
- * src/Options.cpp: allow 2.x for -aspen_version_min
-
-
-2008-02-11 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5733575> ld_classic: unknown flag: -aspen_version_min
- * src/Options.cpp: change -aspen_version_min x.x to -macosx_version_min 10.5 when invoking ld_classic
-
-
------ Tagged ld64-80.9
-
-2008-01-29 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5713054> -iphone_version_min ==> -aspen_version_min
- * src/Options.cpp: support -aspen_version_min
-
-
------ Tagged ld64-80.8
-
-2008-01-10 Nick Kledzik <kledzik@apple.com>
-
- * src/Options.cpp: support transition to new objc ABI for ARM by allowing old .objc_class_name_*
- style names in export files and map them to new _OBJC_CLASS_$_ style names.
-
-
------ Tagged ld64-80.7
-
-2008-01-02 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5572168> BigBear5A18 isn't fully prebound
- * src/Options.cpp: make fNeedsModuleTable true for arm
-
------ Tagged ld64-80.6
-
-2007-11-30 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5620976> -iphone_version_min
- * src/Options.cpp: handle -iphone_version_min option
-
-
------ Tagged ld64-80.5
-
-2007-11-26 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5601142> need to special case some dylibs in seg_addr_table
- * src/Options.cpp: retry seg_add_table lookup for a couple of unusual dylibs
-
-
------ Tagged ld64-80.4
-
-2007-11-06 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: fix parsing of external and scattered thumb branch22 relocs
- * unit-tests/test-cases/thumb-blx: add test case to keep blx issues from coming back
-
------ Tagged ld64-80.3
-
-2007-11-03 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: remove recalc of dstAddr which could cause thumb branches to be +2
- * src/MachOWriterExecutable.hpp: remove incorrect test for relocateableExternal
-
------ Tagged ld64-80.2
-
-2007-11-01 Nick Kledzik <kledzik@apple.com>
-
- * src/ld.cpp: hack my own prototype for log2() until math.h is cleaned up
-
-
------ Tagged ld64-80.1
-
-2007-11-01 Nick Kledzik <kledzik@apple.com>
-
- * ld64.xcodeproj/project.pbxproj: add HEADER_SEARCH_PATHS for cross builds
- * src/ld.cpp: temporarily disable LLVM_SUPPORT
- * src/MachOWriterExecutable.hpp: Don't use CC_MD5() directly
-
-
-2007-10-26 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5556038> Cannot build with libm_static.a statically linked
- * src/MachOWriterExecutable.hpp: Fix makesExternalRelocatableReference() for -r -d case
- * unit-tests/test-cases/tentative-to-real-hidden: add test case
-
-
------ Tagged ld64-80
-
-2007-10-24 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4222696> linker should probably warn about trying to export a hidden symbol
- * src/ld.cpp: if using -exported_symbols_list check each hidden atom as it is added to symbol table
- * src/Options.h,.cpp: add hasExportMaskList()
- * unit-tests/test-cases/exported_symbols_list-hidden: added test case
-
-
-2007-10-24 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.hpp: keep old style dtrace probes externel for kernel builds
-
-
-2007-10-23 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4556199> unify error and warning messages
- <rdar://problem/5546450> -w should suppress warnings
- * src/ld.cpp: use warning() function
- * src/Options.h: remove emitWarnings()
- * src/MachOReaderDylib.hpp: use warning() function
- * src/MachOReaderRelocatable.hpp: use warning() function
- * src/Options.cpp: use and implement warning()
- * src/MachOWriterExecutable.hpp: use warning() function
- * unit-tests/test-cases/visibility-warning: verify -w suppresses warnings
-
-
-2007-10-23 Devang Patel <dpatel@apple.com>
-
- * src/ld.cpp: Cover arm support inside __OPEN_SOURCE__ macro check.
- * src/LLVMReader.hpp: Cover arm support inside __OPEN_SOURCE__ macro check.
- * src/MachOReaderDylib.hpp: Cover arm support inside __OPEN_SOURCE__ macro check.
- * src/ObjectFile.h: Cover arm support inside __OPEN_SOURCE__ macro check.
- * src/MachOReaderRelocatable.hpp: Cover arm support inside __OPEN_SOURCE__ macro check.
- * src/OpaqueSection.hpp: Cover arm support inside __OPEN_SOURCE__ macro check
- * src/MachOWriterExecutable.hpp: Cover arm support inside __OPEN_SOURCE__ macro check.
- * src/ObjectDump.cpp: Cover arm support inside __OPEN_SOURCE__ macro check.
-
-
-2007-10-22 Nick Kledzik <kledzik@apple.com>
-
- * src/Options.cpp: add support for LD_DEAD_STRIP and LD_WARN_COMMONS
- * src/MachOReaderRelocatable.hpp: fix problem with -dead_strip of ObjC literal pointers
-
-
-2007-10-22 Nick Kledzik <kledzik@apple.com>
-
- * src/Options.cpp: have -static arm code link with ld_classic (for now)
-
-
-2007-10-22 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5396826> Recognize all arm architectures
- * src/MachOReaderRelocatable.hpp: add support for all ARM sub-types
- * unit-tests/test-cases/cpu-sub-types: add test cases for all combinations of ARM sub-types
-
-
-2007-10-19 Nick Kledzik <kledzik@apple.com>
-
- * src/*: merge in arm support
- * unit-tests/test-cases/*: fix to work for arm and thumb
-
------ Tagged ld64-79
-
-2007-10-16 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.hpp: if -r mode, always set custom alignment (SET_COMM_ALIGN) on common symbols
- * unit-tests/test-cases/visibility-warning-dylib-v-archive/Makefile: fix warning
- * unit-tests/test-cases/static-executable/Makefile: fix spurious failure
-
-
-2007-10-16 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.hpp: fix edge case in branch island generation
-
-
-2007-10-12 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5323449> Add option to create old, slow stubs for i386
- * src/ObjectFile.h/.cpp: support -read_only_stubs
- * src/MachOWriterExecutable.hpp: enhance StubAtom<x86> to support old style __symbol_stub/__la_symbol_ptr stubs
- * unit-tests/test-cases/slow-x86-stubs: add test case
-
-
-2007-10-12 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5427952> ld64's re-export cycle detection logic prevents use of X11 libGL on Leopard
- * src/Options.cpp: in findFileUsingPaths() don't search for embedded dylibs
- * unit-tests/test-cases/indirect-path-search/Makefile: added case for a dylib embedded in a framework
-
-
-2007-10-11 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5451987> add option to disable implicit load commands for indirectly used public dylibs
- * src/Options.cpp: add support for -no_implicit_dylibs
- * src/ObjectFile.h: add fImplicitlyLinkPublicDylibs
- * src/MachOReaderDylib.hpp: test fImplicitlyLinkPublicDylibs before hoisting an implicitly linked dylib
- * unit-tests/test-cases/implicit_dylib: add test case
-
-
-2007-10-11 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5254413> -interposable_list
- * src/Options.h/cpp: Add fInterposeList and fInterposeMode to support -interposable_list
- * src/MachOWriterExecutable.hpp: pass symbol name to fOptions.interposable()
- * unit-tests/test-cases/interposable_list: add test case
-
-
-2007-10-10 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5529626> If only weak_import symbols are used, linker should use LD_LOAD_WEAK_DYLIB
- * src/MachOWriterExecutable.hpp: automatically use LC_LOAD_WEAK_DYLIB if all symbols used from a dylib are weak_import
- * unit-tests/test-cases/weak_dylib: added test case
-
-
-2007-10-10 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5504954> linker does not error when dylib ordinal exceeds 250
- * src/MachOWriterExecutable.hpp: error out if ordinals exceed max allowed
-
-
-2007-10-10 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4067110> overriding 'operator new' or 'operator delete' fails if no weak symbols are present
- * src/ld.cpp: at end of checkUndefines() search dylibs for weak versions of any global external symbols
- * src/ObjectFile.h: add hasWeakExternals() method to Reader
- * src/MachOReaderDylib.hpp: implement hasWeakExternals() method in Reader
- * src/ExecutableFile.h: add overridesDylibWeakDefines parameter to write()
- * src/MachOWriterExecutable.hpp: use overridesDylibWeakDefines parameter to write()
- * unit-tests/test-cases/operator-new: add test case
-
-
-2007-10-05 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5048861> No warning about tentative definition conflicting with dylib definition
- <rdar://problem/5132652> .comm variables in shared library, worked with XCode 2.4.1, broken with XCode 3?
- * src/ld.cpp: at end of checkUndefines() verify if any remaining commons conflict with dylibs
- * doc/man/man1/ld.1: document -commons and -warn_commons options
- * unit-tests/test-cases/tentative-and-dylib: added test case
-
-
-2007-10-05 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5346331> NS/CFString constants are not dead strippable
- * src/MachOReaderRelocatable.hpp: break up __cfstring section into one atom per cfstring, make them coalesable
- * unit-tests/test-cases/cfstring-coalesce: added test case
-
-
-2007-10-05 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5524973> Dead stripping + exported symbols list using wildcards doesn't seem to do the right thing
- * src/Options.cpp/h: add hasWildCardExportRestrictList()
- * src/ld.cpp: if dead stripping code and have wildcard exports, add all global atoms matching wildcards as roots
- * unit-tests/test-cases/exported-symbols-wildcards-dead_strip: added test case
-
-
-2007-10-04 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5433882> ld shouldn't search /Network/Library/Frameworks by default
- * src/Options.cpp: remove /Network/Library/Frameworks/ from default search path
- * doc/man/man1/ld.1: document the change
-
-
-2007-10-04 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5341567> all binaries should get LD_UUID load commands, not just those with DWARF symbols
- * src/ld.cpp: default fCreateUUID to be true for non object file output types
- * unit-tests/test-cases/no-uuid/Makefile: update test case to match new rules
-
-
------ Tagged ld64-78
-
-2007-09-27 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5476313> range check load commands
- * src/MachOReaderDylib.hpp: check that load commands all fit in load command size from header
- * src/MachOReaderRelocatable.hpp: check that load commands all fit in load command size from header
-
-
-2007-09-27 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5433355> Xc8M2540a: ld64 crashes when linking Pascal program
- * src/ld.cpp: fix findAtomAndOffset() to handle where there are no function atoms
-
-
-2007-09-27 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5241179> ADOBE Xcode 3: ld -dead_strip does not work with -init from an archive
- * src/ld.cpp: add bool parameter to entryPoint() so -init atom not looked for too soon
- * unit-tests/test-cases/dead_strip-init-archive: added test case
-
-
-2007-09-26 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5459546> Spurious link warnings for inline members of C++ template classes
- * src/ld.cpp: check definition kinds before warning about visibility mismatches
- * unit-tests/test-cases/visibility-warning: added test case
-
-
-2007-09-26 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5394172> an empty .o file with zero load commands will crash linker
- * src/MachOReaderRelocatable.hpp: have Reader constructor return early of no load commands
- * unit-tests/test-cases/empty-object: added test case
-
-
-2007-09-26 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5453384> 9a527: ppc64 branch islands fail with 4GB pagezeo
- * src/MachOWriterExecutable.hpp: start range calculations at start of __text not at zero.
-
-
------ Tagged ld64-77 (Xcode 3.0)
-
-2007-07-23 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5351380> Kernel is linked with some global symbols unsorted
- * src/MachOWriterExecutable.hpp: Add NListNameSorter to allow global atoms and extra labels to be sorted
-
-
-2007-07-20 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5254468> Can't do objc_msgSendSuper dispatches after loading a Fix&Continue bundle
- * src/MachOWriterExecutable.hpp: when calculating what kind of reloc to use, never use an
- external reloc to reference 32-bit ObjC symbols.
-
-
-2007-07-20 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5349847> Runtime crash with ICC math library on Leopard
- * src/MachOReaderRelocatable.hpp: detect if section starts with a symbol that is not
- aligned to section and correct it.
-
-
------ Tagged ld64-76
-
-2007-06-29 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5303718> export hiding does not work for frameworks
- * src/MachOReaderDylib.hpp: fix checks in isPublicLocation()
- * unit-tests/test-cases/symbol-moving: update to test frameworks as well as dylibs
-
-
-2007-06-27 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5299907> linker should use undefines from flat dylibs when linking a main flat
- * src/ObjectFile.h: added fLinkingMainExecutable
- * src/Options.cpp: set up fLinkingMainExecutable
- * src/MachOReaderDylib.hpp: when linking a main executable for flat namespace, the reader for
- any loaded flat namespace dylib will have a new atoms that has references to all undefined
- symbols in the dylib
- * unit-tests/test-cases/flat-indirect-undefines: added test case
- * doc/man/man1/ld.1: update man page to describe when dylib undefines are used
-
-
-2007-06-27 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5277857> OpenGL.framework and X11 both have a libGL.dylib which can cause ld to segfault if both are found
- * src/MachOReaderDylib.hpp: add assertNoReExportCycles() method
- * unit-tests/test-cases/dylib-re-export-cycle: added test case
-
-
-2007-06-27 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5286462> ld64 has slightly different warning message formats than the old ld
- * src/ld.cpp: standardize all warning messages to start with "ld: warning"
- * src/MachOWriterExecutable.hpp: ditto
- * src/MachOReaderRelocatable.hpp: ditto
- * src/MachOReaderDylib.hpp:ditto
-
-
-2007-06-26 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5297034> -dead_strip can cause duplicate external commons
- * src/ld.cpp: don't use discarded coalesced global atoms as dead strip roots
- * src/machochecker.cpp: error if duplicate external symbols
- * unit-tests/test-cases/commons-coalesced-dead_strip: added test case
-
-
-2007-06-26 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4135857> update man page that linker does not search indirect libraries with two-level namespace
- * doc/man/man1/ld.1: add new "Indirect dynamic libraries" section to man page
-
-
-2007-06-26 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5285473> Xc9A466: Exports file cannot use Mac line ends
- * src/Options.cpp: check for \r or \n when parsing .exp files
- * unit-tests/test-cases/exported_symbols_list-eol: added test case
-
-
------ Tagged ld64-75
-
-2007-05-31 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4607755> Simplier, generalized way to re-export dylibs: LC_REEXPORT_DYLIB
- * src/MachOWriterExecutable.hpp: Use LC_REEXPORT_DYLIB when targetting 10.5
-
-
------ Tagged ld64-74.5
-
-2007-05-31 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5241902> set OSO timestamp to zero for when building in buildit
- * src/ld.cpp: check for RC_RELEASE and if exists set all OSO timestamps to zero
-
-
-2007-05-30 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5224676> BUILD_STABS now causes ld of xnu to bus error
- * src/ld.cpp: Change || to && in collectStabs()
-
-
------ Tagged ld64-74.4
-
-2007-05-18 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5211667> static probes don't work with libraries in dyld shared cache
- * src/OpaqueSection.hpp: the __TEXT segment is executable
-
-
------ Tagged ld64-74.3
-
-2007-05-16 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5201463> ppc: linker adds stubs to cstring references
- * src/MachOWriterExecutable.hpp: update ppc stubableReference() to only allow high/low references
- to be stubed if they reference a symbol in some other dylib.
- * unit-tests/test-cases/stub-generation: added test case
-
-
-2007-05-16 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5008421> ppc64: need to make LOCAL indirect symbol table entry for now local symbol
- * src/MachOWriterExecutable.hpp: factored local tests into indirectSymbolIsLocal()
- * unit-tests/test-cases/non-lazy-r: added test case
-
-
-2007-05-15 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5198807> ld64 drops fix&continue bit in __OBJC, __image_info.
- * src/MachOReaderRelocatable.hpp: implement objcReplacementClasses()
-
-
-2007-05-15 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5066152> support __image_info in __DATA segment for 64-bits
- * src/MachOReaderRelocatable.hpp: use strncmp() for __objc_imageinfo since it is 16 bytes long
- * src/MachOWriterExecutable.hpp: specialize segment/section names for synthesized objc image info section
-
-
-2007-05-15 Nick Kledzik <kledzik@apple.com>
-
- * unit-tests/include/common.makefile: set COMPILER_PATH so harness works with latest compiler
-
-
------ Tagged ld64-74.2
-
-2007-05-11 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5195447> ld64-74.1 breaks libstdc++ DejaGnu test (G5 only)
- * src/MachOWriterExecutable.hpp: don't stub a reference if the target offset is non-zero
-
-
------ Tagged ld64-74.1
-
-2007-05-09 Nick Kledzik <kledzik@apple.com>
-
- * src/Options.h: add emitWarnings()
- * src/Options.cpp: wire up -w to emitWarnings()
-
-
-2007-05-09 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5137285> ld64 won't link wine (regression from Tiger)
- * src/Architectures.hpp: add x86::kPointerDiff16 and x86::kPCRel16
- * src/MachOReaderRelocatable.hpp: add support to parse new relocs
- * src/MachOWriterExecutable.hpp: add support fo new relocs
-
-
-2007-05-08 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5182537> need way for ld and dyld to see different exported symbols in a dylib
- * src/MachOReaderDylib.hpp: update parse and use $ld$ symbols
- * src/Options.h: move VersionMin to ReaderOptions
- * src/ObjectFile.h: move VersionMin to ReaderOptions
- * src/Options.cpp: move VersionMin to ReaderOptions
- * src/MachOWriterExecutable.hpp: move VersionMin to ReaderOptions
- * unit-tests/test-cases/symbol-moving: added test case
-
-
-2007-05-03 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5181105> typo in error message for linking -pie
- * src/MachOWriterExecutable.hpp: fix typo in error messages
-
-
------ Tagged ld64-74
-
-2007-05-03 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5171880> ld64 can't find @executable _path relative dylibs from our umbrella frameworks
- <rdar://problem/4019497> ld64 should handle linking against dylibs that have @loader_path based dylib load commands
- * src/ObjectFile.h: add from parameter to findDylib()
- * src/MachOReaderDylib.hpp: supply from parameter to findDylib()
- * src/ld.cpp: use from parameter for @loader_path substitution in findDylib()
- * unit-tests/test-cases/re-export-relative-paths: added test case
-
-
-2007-05-02 Nick Kledzik <kledzik@apple.com>
-
- * src/ObjectFile.h: add fLogObjectFiles and fLogAllFiles
- * src/Options.cpp: hook up -t to fLogAllFiles and -whatsloaded to fLogObjectFiles
- * src/MachOReaderDylib.hpp: log if fLogAllFiles
- * src/MachOReaderRelocatable.hpp: log if fLogObjectFiles or fLogAllFiles
- * src/MachOReaderArchive.hpp: log if fLogAllFiles
- * doc/man/man1/ld.1: update man page
-
-
-2007-05-02 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5177848> typo in message, frameowrk
- * src/Options.cpp: fix typo
-
-
-2007-05-01 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4977301> "ld" man page is missing the description for many options
- * doc/man/man1/ld.1: add documentation on all obsolete options
-
-
-2007-05-01 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5113424> ld doesn't handle -mlong-branch .o files that have had local symbols stripped
- <rdar://problem/4965359> warning about dwarf line info with -mlong-branch
- * src/MachOReaderRelocatable.hpp: don't lop -mlong-branch stubs off end of functions
- * src/MachOWriterExecutable.hpp: allow code references besides BR24 to be stubable
-
-
-2007-04-30 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5065659> unable to link VTK because __textcoal_nt too large
- * src/MachOReaderRelocatable.hpp: when doing a final link map __textcoal_nt to __text
-
-
-2007-04-30 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5062685> ld does not report error when -r is used and exported symbols are not defined.
- <rdar://problem/4637139> ld leaves global common symbols not in exported symbols list.
- * src/ld.cpp: stop special casing -r mode in checkUndefines()
- * src/MachOWriterExecutable.hpp: don't create proxy atom in -r mode if it is supposed to be exported.
- mark tentative definitions are private extern in -r mode even without -keep_private_externs
- * unit-tests/test-cases/exported_symbols_list-r: added test case
-
-
-2007-04-27 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5137732> ld should keep looking when it finds a weak definition in a dylib
- * src/ld.cpp: modified addJustInTimeAtoms() to keep looking when a weak defintion is found
- * unit-tests/test-cases/weak-def-ordinal: added test case
-
-
-2007-04-27 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5166572> better error message for indirect dylibs missing required architecture
- * src/ld.cpp: when loading indirect dylib add path to error messages
-
-
-2007-04-25 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5109373> the i386 slice of dyld does not need __IMPORT segment
- * src/ObjectFile.h: add fForDyld
- * src/Options.cpp: set up fForDyld
- * src/MachOReaderRelocatable.hpp: if fForDyld, change __IMPORT segment to __DATA
- * src/MachOWriterExecutable.hpp: recognize __DATA/__pointers in dyld as a non-lazy section
-
-
-2007-04-24 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5008421> ppc64: need to make LOCAL indirect symbol table entry for now local symbol
- * src/MachOWriterExecutable.hpp: use INDIRECT_SYMBOL_LOCAL for any non-global symbol
- * unit-tests/test-cases/strip_local: update test case
-
-
-2007-04-24 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5150407> ld64 -sectorder and -order_file files don't accept white space following the :
- * src/Options.cpp: prune white space after colon and before symbol name
- * unit-tests/test-cases/order_file: update test case to have a space after the colon
-
-
-2007-04-24 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5055233> ld64 corrupts debug symbol table entries, nm doesn't print them
- * src/MachOWriterExecutable.hpp: properly set ilocalsym in module table
-
-
-2007-04-24 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5066152> support __image_info in __DATA segment for 64-bits
- * src/MachOReaderRelocatable.hpp: look for new objc info section name too
-
-
-2007-04-24 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.hpp: fix -non_global_symbols_strip_list to work with -r
- * unit-tests/test-cases/local-symbol-partial-stripping: update test case
-
-
-
------ Tagged ld64-73.7
-
-2007-05-10 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5194804> can't use dtrace static probes in x86_64 dylib
- * src/MachOWriterExecutable.hpp: x86_64:kPointerDiff32 is ok in shared region
- * unit-tests/test-cases/dtrace-static-probes: update to build dylib too
-
-
-2007-05-09 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5191610> 9A430: using -dead_strip with static dtrace probes causes ld to crash
- * src/ld.cpp: fix markLive() to look at right name in dtrace probe refernce
- * unit-tests/test-cases/dtrace-static-probes: added -dead_strip case
-
-
------ Tagged ld64-73.6
-
-2007-04-17 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5140897> Add options to do partial stripping of local symbols
- * src/MachOWriterExecutable.hpp: use fOptions.keepLocalSymbol()
- * src/Options.cpp: implement -non_global_symbols_no_strip_list and -non_global_symbols_strip_list
- * src/Options.h: replace stripLocalSymbols() with localSymbolHandling() and keepLocalSymbol()
- * doc/man/man1/ld.1: document -non_global_symbols_no_strip_list and -non_global_symbols_strip_list
- * unit-tests/test-cases/local-symbol-partial-stripping: added test case
-
-
------ Tagged ld64-73.5
-
-2007-04-17 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5129379> ld64-73.3 XBS logging incorrectly reporting "direct" dynamic libraries
- * src/ld.cpp: restore direct vs indirect library for LD_TRACE_DYLIBS logging
-
-
-2007-04-16 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5067034> data initialized to a weak imported symbol is missing relocation
- * src/MachOWriterExecutable.hpp: check for A::kPointerWeakImport in buildExecutableFixups()
- * unit-tests/test-cases/weak_import: updated test case to catch this problem
-
-
-2007-04-13 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5071047> Support -U
- * src/MachOWriterExecutable.hpp: create proxies for -U symbols
- * src/Options.cpp: process -U
- * src/Options.h: add allowedUndefined() and someAllowedUndefines()
- * src/ld.cpp: create proxies for -U symbols
- * doc/man/man1/ld.1: document -U and -undefined options
- * unit-tests/test-cases/undefined-dynamic-lookup: added test case
-
-
------ Tagged ld64-73.4
-
-2007-04-12 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5125280> ld changes needed to support read-only DOF
- * src/Options.cpp: remove -read_only_dof
- * src/Options.h: remove fReadOnlyDOFs
- * src/ld.cpp: only generate read-only DOF sections
-
-
------ Tagged ld64-73.3.1
-
-2007-04-13 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5130496> -framework vecLib -framework Accelerate causes bad ordinals
- * src/MachOWriterExecutable.hpp: fix bug optimizeDylibReferences() when there are two readers with same install name
-
-
------ Tagged ld64-73.3
-
-2007-04-03 Nick Kledzik <kledzik@apple.com>
-
- * src/ld.cpp: read-only-dofs should use 32-bit offsets for x86_64
- * src/MachOReaderDylib.hpp: if "public" re-export is not marked implict, still mark it as re-exported
-
-
-2007-04-02 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5105971> if replacement file for -dylib_file is missing, warn instead of error
- * src/ld.cpp: a try/catch to turn -dylib_file error into a warning.
- * unit-tests/test-cases/dylib_file-missing: add test case
- * doc/man/man1/ld.1: update man page about -dead_strip_dylibs
-
-
------ Tagged ld64-73.2
-
-2007-03-31 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5102873> ld64-73: atom sorting error with duplicate zero sized bss symbols
- * src/MachOReaderRelocatable.hpp: suppress warning on sorting zero size zero fill atoms
-
-2007-03-31 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5102845> ld64-73 fails anything linking with -lm
- * src/ld.cpp: when processing dylbs that are sylinks ensure that fDylibMap contains all paths
- * src/MachOWriterExecutable.hpp: when dead stripping dylibs and renumbering ordinals make sure
- aliases dylib get renumbered too
- * unit-tests/test-cases/dylib-aliases: added
-
-
------ Tagged ld64-73.1
-
-2007-03-30 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.hpp: back out use of LC_REEXPORT_DYLIB until rdar://problem/5009909 is in build fleet
-
-
------ Tagged ld64-73
-
-2007-03-30 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4175790> ER: -dead_strip_dylibs
- <rdar://problem/3904828> linker should add implicit load commands for indirectly used public dylibs
- * src/ObjectFile.h: change dylib reader interface to implictly/explicitlyLinked
- * src/ld.cpp: use new dylib reader interface
- * src/Options.h: add deadStripDylibs()
- * src/Options.cpp: support -dead_strip_dylibs
- * src/MachOReaderDylib.hpp: use new dylib reader interface
- * src/MachOWriterExecutable.hpp: remove dylib load commands for unused dylibs and alter ordinals
- * unit-tests/test-cases/re-export-optimizations: added
- * unit-tests/test-cases/dead_strip_dylibs: added
-
-
-2007-03-30 Nick Kledzik <kledzik@apple.com>
-
- * src/Options.cpp: enable -lfoo to search for libfoo.so as well as libfoo.dylib,
- remove seg addr table hack for transitioning to new linker
-
-2007-03-30 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5073800> ADOBE XCODE3: Linker is slow with large C++ .o files
- * src/MachOReaderRelocatable.hpp: the compiler generates stubs to weak functions in the
- same translation unit. Don't treat those like the spurios stubs to static functions.
-
-
-2007-03-29 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4739044> ld64 should link mach_kernel during xnu builds to support dtrace
- * src/MachOReaderRelocatable.hpp: To handle duplicate labels properly, rework how atoms sizes are set
- by iterating through sorted fAtoms rather than fAddrToAtom, . Change default alignment of commons
- to be the natural alignment of the size rounded up to the closest power of two and max it at 12.
- Build atoms in reverse symbol table order so that global atoms are constructed before locals.
- This assures that if there is a global and local label at the same location, the global label
- will become the atom's name and the local will be an alias. Properly handle a label
- at the end of a section. Handle R_ABS in relocations. Handle sect-diff relocs with addends.
- Don't auto-strip 'l' symbols in static executables (mach_kernel).
- * src/OpaqueSection.hpp: opaque_section now has an ordinal
- * src/ld.cpp: opaque_section now requires an ordinal
- * src/ObjectFile.h: add ReaderOptions.fForStatic
- * src/Options.cpp: set fForStatic when building a static executable
- * src/MachOWriterExecutable.hpp: add from atom to StubAtom<ppc>. Properly write out i386
- sect-diff relocs with addends. properly write out ppc PICbase relocs where pic base
- is not in the atom.
-
-
-2007-03-27 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5085863> Typo in ld man page (-exported_symbols_list)
- * doc/man/man1/ld.1: fix typo
-
-
-2007-03-26 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4727750> consider generating LC_UUID from a checksum of the file
- * src/Options.h: change emitUUID() to getUUIDMode()
- * src/Options.cpp: support -random_uuid
- * src/MachOWriterExecutable.hpp: set uuid to be md5 hash of entire output file
-
-
-2007-03-24 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.hpp: restructure writeAtoms() to copy all atoms in memory if possible
-
-
-2007-03-24 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5082603> ld -r of stripped .o file can incorrectly merge non-lazy pointers
- * src/MachOWriterExecutable.hpp: when generating a .o file, non-lazy pointer with target offsets should be
- encoded as LOCAL in the indirect symbol table
- * unit-tests/test-cases/stripped-indirect-symbol-table: added test case
-
-
-2007-03-23 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5084564> SWB: ld64-72 errors building with gcc-4.2
- * src/MachOReaderDylib.hpp: add curly brackets in switch cases
- * src/MachOWriterExecutable.hpp: rearrange classes so there are no template specialization forward references
-
-
-2007-03-23 Nick Kledzik <kledzik@apple.com>
-
- * src/ld.cpp: fix -print_statistics when using -dead_strip
-
-
-2007-03-23 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: generate better names for non-lazy pointers to the interior of atoms
-
-
-2007-03-16 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.hpp: speed up ld -r a little by reversing relocs en mas
-
-
-2007-03-16 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4975277> ld Bus Error on missing command line arguments
- * src/Options.cpp: check next argv[] is not NULL
-
-
-2007-03-16 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4832049> need to be able to order symbols in anonymous namespaces
- * src/ld.cpp: add logic to do fuzzy matching of symbols with anonymous namespace usage
- * unit-tests/test-cases/order_file-ans: added test case
-
-
-2007-03-16 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5042552> headerpad_max_install_names deprecated for 64-bit
- * src/ld.cpp: make sure dylib load command order matches command line order
- * src/Options.h: add maxMminimumHeaderPad()
- * src/Options.cpp: add maxMminimumHeaderPad() set by -headerpad_max_install_names
- * src/src/MachOWriterExecutable.hpp: check maxMminimumHeaderPad()
- * doc/man/man1/ld.1: update man page about -headerpad_max_install_names
-
-
-2007-03-16 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4592484> Linker returns success although exported symbols are undefined.
- * src/ld.cpp: turn missing symbols back into an error
-
-
-2007-03-16 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4019497> ld64 should handle linking against dylibs that have @loader_path based dylib load commands
- * unit-tests/test-cases/loader_path: added test case
-
-
-2007-03-16 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/3904828> linker should add implicit load commands for indirectly used public dylibs
- <rdar://problem/4142277> Indirect libraries should be found using -F and -L options
- <rdar://problem/4607755> Simplier, generalized way to re-export dylibs: LC_REEXPORT_DYLIB
- * src/ld.cpp: reworked all dylib processing. Readers can now add the dylib list.
- * src/Options.h: add findFileUsingPaths()
- * src/MachOReaderDylib.hpp: look in re-exported children instead of requring linker to do that
- * src/ObjectFile.h: add processIndirectLibraries(), remove getDependentLibraryPaths()
- * src/machochecker.cpp: support LC_REEXPORT_DYLIB
- * src/ExecutableFile.h: simplify DyLibUsed
- * src/Options.cpp: add findFileUsingPaths(). add new re-export options
- * src/MachOWriterExecutable.hpp: Use LC_REEXPORT_DYLIB when targetting 10.5
- * doc/man/man1/ld.1: updated with new re-export options
- * unit-tests/test-cases/indirect-path-search: added tests that -F and -L work with indirect dylibs
- * unit-tests/test-cases/re-export-cases: added tests for all combinations of re-exporting
-
-
-2007-03-14 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4982400> sort external relocations to optimize dyld performance
- * src/MachOWriterExecutable.hpp: added ExternalRelocSorter
- * src/machochecker.cpp: verify external relocations are grouped by symbol number
- * unit-tests/test-cases/external-reloc-sorting: added test case
-
-
------ Tagged ld64-72
-
-2007-03-06 Nick Kledzik <kledzik@apple.com>
-
- * src/Options.cpp: ignore .objc_category_name_* symbols in .exp files
-
-
-2007-03-06 Nick Kledzik <kledzik@apple.com>
-
- * src/Options.cpp: stop special casing mach_kernel and instead requre kernel to be built with -new_linker
-
-
-2007-03-06 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5044253> ld64-72 (experimental) is causing DejaGnu test failures
- * src/MachOWriterExecutable.hpp: add optimizableGOTReferenceKind() to track GOT uses that cannot be optimized
-
-
-2007-03-06 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5026135> minimum header padding should be 32 to allow code signing
- * src/Options.cpp: initialize fMinimumHeaderPad to 32
- * src/MachOWriterExecutable.hpp: better calculation of header padding
-
-
-2007-03-06 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5033206> Linker crashes with -flat_namespace against two-level dylibs that might have re-exports
- * src/ld.cpp: flat namespace should not allow NULL indirect readers
-
-
-2007-03-06 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: don't error on S_COALESCED sections with anonymous atoms
- * src/MachOWriterExecutable.hpp: set MH_PIE bit when linking -pie
- * ld64.xcodeproj/project.pbxproj: don't echo environment when running unit test
-
-
-2007-03-01 Nick Kledzik <kledzik@apple.com>
-
- * doc/man/man1/ld.1: Add descriptions to all "rarely used options"
-
-
-2007-03-01 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4971033> Remove support for Essential Symbols: Warn about use of -Sp option; remove man page entry
- * src/Options.cpp: make -Sp obsolete
- * doc/man/man1/ld.1: make -Sp obsolete
-
-
-2007-03-01 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/5040314> Support -pie
- * src/Options.h: Add positionIndependentExecutable()
- * src/Options.cpp: Support -pie option to set positionIndependentExecutable()
- * src/MachOWriterExecutable: if -pie is used, add extra local relocations and error if any
- absolute addressing is used
-
-
-2007-03-01 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4739044> ld64 should link mach_kernel during xnu builds to support dtrace
- * src/ld.cpp: Ensure segments are laid out in discovery order. Add support for kAbsoluteSymbol.
- Warn when merging symbols of different visiblity. Warn when a tentative definition
- is replaced by one a real definition with a smaller size. Lay out __common section
- so that ones built with -fno-commons come before regular commons.
- * src/ObjectFile.h: remove SegmentOffset ivar and getter/setters
- * src/machochecker.cpp: allow images with no r/w segments
- * src/MachOReaderRelocatable: Add AbsoluteAtom. Sort tentative definitions by name instead of by size
- Add support for custom commons alignment.
- * src/Options.cpp: Fix spurious -sectalign warnings. Don't use ld_classic when linking mach_kernel
- * src/MachOWriterExecutable.hpp: Support kAbsoluteSymbol atoms. In -r mode, set custom alignment
- for commons if alignment is not its size. Support global __dtrace_probe labels.
- * src/ObjectDump.cpp: add support for kAbsoluteSymbol atoms.
- * unit-tests/test-cases/commons-alignment: Added test case for custom commons alignment
- * unit-tests/test-cases/absolute-symbol: Added test case for basic absolute symbols
- * unit-tests/test-cases/segment-order: Added test case that segments lay out in discovery order
- * unit-tests/test-cases/commons-order: Added test case that commons lay out correctly
- * unit-tests/test-cases/end-label: Added test case that a label used to mark the end of a section does not
- get associcated with the next section.
-
-
-2007-02-23 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/3965017> gcc-5005: DejaGnu failures due to -frepo
- * src/ld.cpp: Add quotes to referenced from name to make collect2 and -frepo happy
-
-
-2007-02-22 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.hpp: rework how padding after load commands is calculated
-
-
-2007-02-21 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.hpp: extend special case of __mh_execute_header to static executables too
-
-
-2007-02-21 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/3882294> gcc link map option ( "-M" ) should be redirectable to file
- * doc/man/man1/ld.1: added -map option description
- * src/Options.h: added generatedMapPath()
- * src/Options.cpp: set up generatedMapPath() if -map option is used
- * src/MachOWriterExecutable.hpp: add writeMap() method to generate map file
-
-
-2007-02-19 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4557734> Implement GOT Load elimination optimization
- * src/ld.cpp: track size of all atoms and if > 2GB sort large zero-fill atoms to end
- * src/MachOWriterExecutable.hpp: If image size < 2GB, only generate GOT entries if value must be
- updatable by dyld. If > 2GB, only eliminate GOT entries to non-zero-fill atoms. Any use
- of an eliminated GOT entry has its code changed from MOVQ _foo@GOT(%rip) to LEAQ _foo(%rip).
- * unit-tests/test-cases/large-data: added
- * unit-tests/test-cases/got-elimination: added
-
-
------ Tagged ld64-71.2
-
-2007-02-13 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4995303> new ld ignores -segprot option
- * src/Options.h: expose customSegmentProtections()
- * src/Options.cpp: parse -segprot option and populate customSegmentProtections()
- * src/MachOWriterExecutable.hpp: use customSegmentProtections()
-
-
-2007-02-13 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4988068> i386 -stack_addr doesn't work
- * src/MachOWriterExecutable.hpp: use correct offset into thread state record
-
-
------ Tagged ld64-71.1
-
-2007-02-07 Nick Kledzik <kledzik@apple.com>
-
- * src/ld.cpp: sort __OBJC2 segment to be next to __OBJC segment
-
-
-2007-02-07 Nick Kledzik <kledzik@apple.com>
-
- * src/Options.cpp: change missing -seg_addr_table from an error to a warning
-
-
-2007-02-06 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4977311> Leopard 9A357: -dylib_file broken?
- * src/MachOWriterExecutable.hpp: remove use of fInstallPathOverride
- * src/Options.cpp: wire up -dylib_file option
- * src/Options.h: remove fInstallPathOverride. add fDylibOverrides
- * src/ld.cpp: check dylibOverrides() for indirect libraries
- * unit-tests/test-cases/dylib_file: add test case
-
-
-2007-02-05 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderDylib.hpp: don't warn about zero size __image_info sections
-
-
-2007-02-04 Rick Balocca <rbalocca@apple.com>
- Enable the failing cases for missing command line arguments
-
-2007-02-04 Rick Balocca <rbalocca@apple.com>
- Make sure that all .o's are checked by ObjectDump
- and all macho are checked by machochecker
-
-2007-02-04 Rick Balocca <rbalocca@apple.com>
- Fix an endian problem with machochecker
- Fix blank-stubs Makefile
-
------ Tagged ld64-71
-
-2007-02-02 Rick Balocca <rbalocca@apple.com>
- blank-stubs test case: handle the case of a native ppc compile--this
- sets the subtype, which must be passed to lipo
-
-2007-02-01 Rick Balocca <rbalocca@apple.com>
- make cpu-sub-types test more robust
-
-2007-02-01 Rick Balocca <rbalocca@apple.com>
- auto-arch tests were resulting in a false FAILs
-
-2007-02-01 Rick Balocca <rbalocca@apple.com>
- test cpu-sub-types was resulting in a false FAIL
-
-2007-02-01 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4969335> STD:VSC: c99 -o writes to file that does not have write permission
- * src/MachOWriterExecutable.hpp: check file is writable before using it
-
-2007-02-01 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4965743> debug map (N_OSO) timestamps for object files in ranlib archive are incorrect
- * src/MachOReaderArchive.hpp: parse modTime for .o files out of archive header
-
-2007-01-31 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4967535> 9A354: ld -all_load does *NOT* produce the same dSYM as *.o or -u
- * src/ld.cpp: when using -all_load don't assume that all atoms have same reader
- * unit-tests/test-cases/dwarf-archive-all_load: added
-
------ Tagged ld64-70.1
-
-2007-01-31 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.hpp: in addObjectRelocs_powerpc() mask scattered r_address to 16-bits
-
------ Tagged ld64-70
-
-
-2007-01-30 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4810668> linker should verify GC consistency of modules being linked into library
- <rdar://problem/4474195> Support cpu-sub-types for ppc
- * src/ObjectFile.h: Add getObjCConstraint() and getCpuConstraint()
- * src/MachOReaderRelocatable.hpp: don't make atom for __image_info section, instead parse constaints
- * src/MachOReaderDylib.hpp: look at __image_info content to get constaints
- * src/ld.cpp: add updateContraints() and checkObjc()
- * src/MachOWriterExecutable.hpp: add ObjCInfoAtom to sythesize __image_info content
-
-
-2007-01-28 Nick Kledzik <kledzik@apple.com>
-
- src/*: remove ObjectFile::requiresFollowOnAtom() method
-
-
-2007-01-28 Nick Kledzik <kledzik@apple.com>
-
- src/ld.cpp: enable LLVM_SUPPORT by default
- src/LLVMReader.hpp: don't use absolute paths for llvm headers and libraries
-
-
-2007-01-26 Rick Balocca <rbalocca@apple.com>
- * src/ObjectDump.cpp: The usage() message was incorrect.
-
-
-2007-01-25 Rick Balocca <rbalocca@apple.com>
- * unit-tests/test-cases/zero-fill3: It was reporting FAIL on ld64 error return.
- It should have been checking for non-error return.
-
-
-2007-01-24 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4952297> x86 fast stubs should not cross 64-byte boundries
- * src/MachOWriterExecutable.hpp: for x86, 64-byte align __jump_table section
- and make 64-btye crossing stubs be empty entries with indirect symbol table
- entry of INDIRECT_SYMBOL_ABS
-
-
-2007-01-19 Nick Kledzik <kledzik@apple.com>
-
- * src/Options.h: add readOnlyx86Stubs()
- * src/Options.cpp: support -read_only_stubs
- * src/MachOWriterExecutable.hpp: make __IMPORT segment not writable if -read_only_stubs is used
-
-
-2007-01-16 Eric Christopher <echristo@apple.com>
-
- <rdar://problem/4856341> ld64 --help isn't recognized
- * src/Options.cpp (Options::parse): Support --help and -help.
-
-
-2007-01-15 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOFileAbstraction.hpp: add range checking on macho_scattered_relocation_info::set_r_address()
-
-
-2007-01-14 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4514409> Support wildcards in contents of -exported_symbols_list
- * src/Options.h: add SetWithWildcards class
- * src/Options.cpp: add -exported_symbol and -unexported_symbol and use SetWithWildcards
- * doc/man/man1/ld.1: add -exported_symbol and wildcard explanation
- * unit-tests/test-cases/exported-symbols-wildcards: added test case
-
-
-2007-01-10 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4868270> [U]SDT probes should use C calling convention
- * src/Options.cpp: Add -read_only_dof
- * src/ld.cpp: create __dof section(s) based on probe and isenabled sites
- * src/MachOReaderRelocatable.hpp: parse new sdt 2.0 probes encoded in .o files
- * src/MachOWriterExecutable.hpp: handle regenerating dtrace probes into .o files
- * unit-tests/test-cases/dtrace-static-probes: added test case
-
-
------ Tagged ld64-69.8
-
-2007-01-30 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4964508> Support LD_FORCE_NO_SEG_ADDR_TABLE
- * src/Options.cpp: Support LD_FORCE_NO_SEG_ADDR_TABLE
-
-
------ Tagged ld64-69.7
-
-2007-01-25 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4949507> Leopard9A351: CFM Apps Are Broken because CFM glue is missing
- * src/MachOReaderRelocatable.hpp: check S_ATTR_NO_DEAD_STRIP in dontDeadStrip()
-
-
------ Tagged ld64-69.6
-
-2007-01-24 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4947347> LD_TRACE_ARCHIVES should only print out when a .o is actually used from an archive
- * src/ld.cpp: create and use logArchive()
-
-
------ Tagged ld64-69.5
-
-2007-01-22 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4946075> 9A350: can't link ppc programs with ld_classic
- * src/Options.cpp: Remove support for LD_NO_CLASSIC_LINKER. Add support for -classic_linker
-
-
------ Tagged ld64-69.4
-
-2007-01-17 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4925645> QTComponents does not link with ld64
- * src/MachOReaderRelocatable.hpp: handle N_RSYM and N_PSYM stabs
-
-
------ Tagged ld64-69.3
-
-2007-01-03 Nick Kledzik <kledzik@apple.com>
-
- * src/Options.cpp: If the same dylib is specified twice and the second is specified weak, make it weak
-
-
------ Tagged ld64-69.2
-
-2006-12-18 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4889729> -dead_strip without -exported_symbols_list should not strip global functions from archives
- * src/ld.cpp: when adding a .o file from an archive, add all its global symbols to live roots
- * unit-tests/test-cases/dead_strip-archive: added
-
-
-2006-12-18 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4889409> flat_namespace main executables do not need to indirect interior references
- * src/MachOWriterExecutable.hpp: don't indirect references to global symbols in main executables
- * unit-tests/test-cases/flat-main: updated to test for indirection
- * unit-tests/test-cases/flat-dylib: added
-
-
------ Tagged ld64-69.1
-
-2006-12-15 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4886721> -flat_namespace does not work with -mdynamic-no-pic
- * src/MachOWriterExecutable.hpp: rework checking for use of ppc absolute addressing to allow them as long as
- the target is within the same linkage unit.
-
-
-2006-12-15 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4886652> -ObjC should only load .o with .objc_ symbols
- * src/Options.cpp: remove warning from -ObjC and have it instead set fLoadAllObjcObjectsFromArchives
- * src/MachOReaderArchive.hpp: when -ObjC is used, preload all .o files from archives that contain .objc_ symbols
-
-
------ Tagged ld64-69
-
-2006-12-13 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4879913> prebound interior pointers must be non-zero
- * src/MachOWriterExecutable.hpp: in fixUpReference_powerpc() set lazy pointers bound to with the dylib to
- their target value. Properly set REFERENCE_FLAG_UNDEFINED_* flags in reference table and n_desc
-
-
-2006-12-09 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4868738> ld64 fails to detect error that ld_classic does
- * src/MachOWriterExecutable.hpp: check for absolute reloc to an external symbol
- * src/MachOReaderRelocatable.hpp: ignore -mlong-branch stubs in .o files
-
-
-2006-12-09 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4874209> symbols with REFERENCED_DYNAMICALLY should never be stripped
- * src/MachOWriterExecutable.hpp: update Writer<A>::shouldExport() to check for kSymbolTableInAndNeverStrip
- * unit-tests/test-cases/main-stripped: add test that dynamically referenced symbol cannot be stripped
-
-
-2006-12-08 Nick Kledzik <kledzik@apple.com>
-
- * unit-tests/test-cases/allowable-client: add variant test cases (e.g. CoreServices_profile)
- * src/ld.cpp: allow frameworks with variant install names (e.g. CoreServices_profile) to be private clients
-
-
-2006-12-08 Nick Kledzik <kledzik@apple.com>
-
- * doc/man/man1/ld.1: rewrite man page
- * src/Options.h: add warnObsolete()
- * src/Options.cpp: use warnObsolete() on many options. Make nonWeak the weak-mis-match default.
- Make -ObjC mean -all_load.
-
------ Tagged ld64-68.3
-
-2006-12-05 Nick Kledzik <kledzik@apple.com>
-
- * src/ld.cpp: allow umbrella frameworks to have variant install names (e.g. CoreServices_profile) and still link
-
-
------ Tagged ld64-68.2
-
-2006-12-05 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.cpp: Use N_PBUD in the symbol table for undefined symbols in prebound dylibs
-
-
------ Tagged ld64-68.1
-
-2006-12-01 Nick Kledzik <kledzik@apple.com>
-
- * src/Options.cpp: always generate module tables for 32-bit architectures so that ld_classic
- can link against them
-
-
------ Tagged ld64-68
-
-2006-12-01 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4858299> seg_addr_table needs matching fuzziness
- * src/Options.cpp: special case a how a dozen dylib are looked up in the seg_addr_table
-
-
-2006-12-01 Nick Kledzik <kledzik@apple.com>
-
- * src/Options.cpp: have all -static links for 32-bit archs roll over to ld_classic unless
- LD_NO_CLASSIC_LINKER_STATIC is set.
- * unit-tests/bin/make-recursive.pl: set LD_NO_CLASSIC_LINKER_STATIC for unit tests
-
-
-2006-11-29 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4855542> ld64-67: QTComponents fails to build
- * src/MachOReaderRelocatable.hpp: don't error out when a local non-lazy pointer does not point to a symbol
- * unit-tests/test-cases/strip_local: added test case
-
-
-2006-11-28 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4433496> Need a way to mark libraries usable by dynamic linker but unusable by static linker
- * src/Options.cpp: allow -client_name to be used with main executables
- * src/ld.cpp: generalize -allowable_client. Any dylib can now restrict who can link against it. As a convention
- linking with -allowable_client '!' will mean no one can statically link with the dylib. It can still be loaded
- dynamically, or by any existing clients, but no new clients can link with it.
- * unit-tests/test-cases/allowable-client/Makefile: enable previously commented out test cases. Add test cases
- of a dylib that allows no clients and just one client
-
-2006-11-27 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4795615> -final_output should be used if -install_name not used
- * src/Options.cpp: fall back to using -final_output for install name
-
-
------ Tagged ld64-67
-
-2006-11-17 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.hpp: support __IMPORT segment being slide independently of __DATA segment in shared cache
-
-
-2006-11-16 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4838262> 9a303: ld -filelist Bus Error
- * src/Options.cpp: add check that -filelist is followed by an argument
-
-
-2006-11-16 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.hpp: when building split-seg dylibs, LINKEDIT goes in read-only side
-
-
-2006-11-15 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.hpp: set proper attributes for __eh_frame in ld -r mode
- * unit-tests/test-cases/eh_frame: added test case
-
-
-2006-11-10 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: redirect references to static weak stubs to the real target
-
-
-2006-11-09 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.hpp: r_address is offset from first LC_SEGMENT vmaddr - not from segment with lowest address
-
-
------ Tagged ld64-66.1
-
-2006-11-09 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.hpp: initialize fModuleInfoAtom to zero
-
-
-2006-11-08 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4821985> FSF GCC's libjava doesn't link with Ochre ld64
- * src/MachOReaderRelocatable.hpp: ignore debug_line section if debug_info section is missing or empty
-
------ Tagged ld64-66
-
-2006-11-07 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4824368> SWB: d64-65 does not built usage split-seg dylibs
- * src/MachOWriterExecutable.hpp: when prebinding split-seg correctly set r_address fields and on
- disk values for external relocations
- * unit-tests/test-cases/prebound-split-seg: added test case
-
-
-2006-11-03 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderDylib.hpp: don't report dependent libraries if MH_NO_REEXPORTED_DYLIBS bit is set
- * src/MachOWriterExecutable.hpp: set MH_NO_REEXPORTED_DYLIBS bit if dylib does not logically re-export any other dylibs
- * unit-tests/test-cases/re-export-flag: added test case
- * src/machochecker.cpp: validate use of MH_NO_REEXPORTED_DYLIBS
-
-
-2006-11-02 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4814565> Mysterious messages from ld64 with MACOSX_DEPLOYMENT_TARGET = 10.5
- * src/MachOWriterExecutable.hpp: kPointerWeakImport is a valid reference type to cross segments
-
-
-2006-11-02 Nick Kledzik <kledzik@apple.com>
-
- * src/Options.cpp,h: Add support for -rpath
- * src/MachOFileAbstraction.hpp: add macho_rpath_command
- * src/MachOWriterExecutable.hpp: add RPathLoadCommandsAtom to create LC_RPATH for each -rpath
-
-
------ Tagged ld64-65
-
-2006-10-30 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4729162> x86_64 default stack_addr is wrong
- * src/Options.cpp: change default 64-bit stack location when using -stack_size
-
-
-2006-10-30 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4474316> dylibs need modules for 10.3 and for ld_classic in Salt
- * src/MachOWriterExecutable.hpp: add ModuleInfoLinkEditAtom to create module table stuff
- * src/Options.cpp,h: Add needsModuleTable()
- * src/MachOFileAbstraction.hpp: Add macho_dylib_module, macho_dylib_reference, and macho_dylib_table_of_contents
-
-
-2006-10-27 Nick Kledzik <kledzik@apple.com>
-
- * unit-tests/test-cases/no-uuid/Makefile: add -gstabs+ to be compatible with latest compiler
- * unit-tests/test-cases/stabs-coalesce/Makefile: add -gstabs+ to be compatible with latest compiler
-
-
-2006-10-26 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4585230> i386 -mdynamic-no-pic switch statement jump table is out of line
- * src/MachOWriterExecutable.hpp: for i386 don't check for direct references to weak symbols
-
-
-2006-10-26 Devang Patel <dpatel@apple.com>
-
- * src/LLVMReader.hpp: Supply final output file path to optimizer.
-
-2006-10-26 Devang Patel <dpatel@apple.com>
-
- * src/ObjectFile.h: Make setSection* methods virtual.
- * src/LLVMReader.hpp: Override setSection* methods.
-
-2006-10-26 Devang Patel <dpatel@apple.com>
-
- * unit-tests/test-case/llvm-integration/a13.h: New.
- * unit-tests/test-case/llvm-integration/a13.cc: New.
- * unit-tests/test-case/llvm-integration/main13.cc: New.
-
-2006-10-26 Devang Patel <dpatel@apple.com>
-
- * src/options.h, src/options.cpp: Add -save-temps command line option.
- * src/LLVMReader.hpp: Use saveTemps option.
-
-
-2006-10-26 Devang Patel <dpatel@apple.com>
-
- * src/LLVMReader.hpp: Remove invalid module from memory.
-
-2006-10-26 Devang Patel <dpatel@apple.com>
-
- * src/LLVMReader.hpp: Collect symbol alignment info from LLVM optimizer.
-
-2006-10-21 Eric Christopher <echristo@apple.com>
-
- * src/ld.cpp (Linker::Linker): Check for LD_NO_CLASSIC_LINKER before
- invoking ld_classic.
- * unit-tests/test-cases/relocs-literals/Makefile: Run for -mdynamic-no-pic
- and pic.
- * unit-tests/test-cases/static-executable/Makefile: Skip for 64-bit. Add
- -dead_strip to command line.
-
------ Tagged ld64-64.2
-
-2006-10-19 Nick Kledzik <kledzik@apple.com>
-
- * ld64.xcodeproj/project.pbxproj: stop copying LLVMReader.hpp into man1 directory
-
------ Tagged ld64-64.1
-
-2006-10-19 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4791643> ld64-63.1 erroneously coalesces an empty string with a non-empty string
- * src/MachOReaderRelocatable.hpp: rework cstring parsing to not assume all strings are start
- at section alignment boundaries, and when coalescing empty strings always use one with greatest
- alignment requirement
- * src/MachOWriterExecutable.hpp: in -r mode, don't pad end of cstring section
- * src/ObjectFile.h: correctly name leadingZeros() as trailingZeros()
- * src/ld.cpp: leadingZeros() --> trailingZeros()
-
-
-2006-10-18 Eric Christopher <echristo@apple.com>
-
- * unit-tests/test-cases/read-only-relocs/Makefile: Skip for x86_64.
- * unit-tests/test-cases/llvm-integration/Makefile: Skip if llvm isn't
- present.
-
-2006-10-18 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4783853> ld64 change required to go with assembler cstring change
- <rdar://problem/4732996> ld64 should error when a local relocation references an address outside its section
- * src/MachOReaderRelocatable.hpp: for x86_64 in order to work with local or external relocations to cstrings
- change parser to allow atoms with a pending name that is resolved after references are instantiated.
- Make direct references to kRegularDefinition atoms.
- * src/MachOWriterExecutable.hpp: in -r mode for x86_64 generate L* labels for cstrings and use external relocations
- * unit-tests/test-cases/relocs-literals/test.c: add two cases of cstring literal plus addend
-
-
-2006-10-06 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4786250> check MACOSX_DEPLOYMENT_TARGET if -macosx_version_min is not used
- * src/Options.cpp: if -macosx_version_min is not used, check MACOSX_DEPLOYMENT_TARGET, if
- that is unused, default to 10.5
-
------ Tagged ld64-64
-
-2006-10-06 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4756806> crash in ppc64 program - bl to saveFP, but saveFP is too far away?
- * src/MachOWriterExecutable.hpp: in addPPCBranchIslands(), properly account for growth of __text
-
-
-2006-10-06 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4769120> Linker-defined alias converts reference into definition and generates error.
- * src/MachOReaderRelocatable.hpp: only alias symbols actually in the symbol table
-
-
-2006-10-06 Nick Kledzik <kledzik@apple.com>
-
- * unit-tests/test-cases/dwarf-debug-notes/Makefile: crt1.o no longer has stabs, so don't need to strip it
- * unit-tests/test-cases/dwarf-debug-notes-r/Makefile: crt1.o no longer has stabs, so don't need to strip it
-
-
-2006-10-06 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: rework dwarf line parsing to fix warnings that starting
- showing up with gcc-5421
-
-
-2006-10-05 Eric Christopher <echristo@apple.com>
-
- <rdar://problem/4760935> ld64 needs to support libtool options
- * src/Options.cpp (Options::parse): Add -noall_load, -install_name,
- -current_version and -compatibility_version.
-
-2006-10-03 Eric Christopher <echristo@apple.com>
-
- * src/Options.cpp (Options::gotoClassicLinker): Use execvp
- to call ld_classic.
-
-2006-10-03 Eric Christopher <echristo@apple.com>
-
- * unit-tests/test-cases/tentative-to-real/Makefile: Clean up after tests.
-
-2006-10-03 Eric Christopher <echristo@apple.com>
-
- * unit-tests/include/common.makefile (VALID_ARCHS): Add x86_64.
- (OTOOL): Remove munging based on ARCH.
-
-2006-09-29 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4743925> problem merging .o files built with and without -fno-common
- src/Options.*: make MakeTentativeDefinitionsReal a reader option
- src/ObjectFile.h: make MakeTentativeDefinitionsReal a reader option
- src/MachOWriterExecutable.hpp: make MakeTentativeDefinitionsReal a reader option
- src/MachOReaderRelocatable.hpp: only assign a section name of __common to
- tentative defintions when making a final linked image
-
-
-2006-09-28 Nick Kledzik <kledzik@apple.com>
-
- src/Options.h/.cpp: add support for -segaddr option
- src/MachOWriterExecutable.hpp: In Writer::assignFileOffsets(), use -segaddr info
-
-
-2006-09-28 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4587349> Emit new CPU subtypes for ppc64 and x86-64 when targeting 10.5 or later
- src/MachOWriterExecutable.hpp: set high bit of cpusubtype of 64-bit main executables when targeting 10.5 or later
-
-
-2006-09-28 Devang Patel <dpatel@apple.com>
-
- Add LLVM LTO support
- src/LLVMReader.hpp: New file.
- src/ld.cpp: Add optimization phase. Use LLVM LTO.
- unit-tests/test-cases/llvm-integration: New tests.
-
-2006-09-27 Nick Kledzik <kledzik@apple.com>
-
- ld64.xcodeproj/project.pbxproj: remove accidental install of source file into man1
-
-
-2006-09-25 Nick Kledzik <kledzik@apple.com>
-
- src/Architectures.hpp: add kPointerDiff16 for ppc and ppc64
- src/MachOReaderRelocatable.hpp: support kPointerDiff16
- src/MachOWriterExecutable.hpp: support kPointerDiff16
-
------ Tagged ld64-63.1
-
-2006-09-22 Nick Kledzik <kledzik@apple.com>
-
- src/MachOWriterExecutable.hpp: include stubs in LC_SEGMENT_SPLIT_INFO
-
-
-2006-09-21 Nick Kledzik <kledzik@apple.com>
-
- src/Options.cpp: disable split-seg dylibs for 64-bit architectures
-
-
-2006-09-19 Nick Kledzik <kledzik@apple.com>
-
- src/MachOReaderRelocatable.hpp: rework __cstring parsing to better handle mixed alignment cstrings
- src/MachOWriterExecutable.hpp: in -r mode, make all __cstrings aligned to section alignment
-
-
-2006-09-19 Nick Kledzik <kledzik@apple.com>
-
- src/MachOWriterExecutable.hpp: rework encoding of LC_SEGMENT_SPLIT_INFO
-
-
-2006-09-19 Nick Kledzik <kledzik@apple.com>
-
- src/Options.cpp: check for -search_paths_first in first pass
-
-
------ Tagged ld64-63
-
-2006-09-15 Nick Kledzik <kledzik@apple.com>
-
- src/Options.cpp: since the ld64 will repeatedly search an archive, and some project list archives
- multiple times on command line to work with traditional linkers, automatically ignore duplicate libraries
- unit-tests/test-cases/archive-duplicate: added test case
-
-
-2006-09-15 Nick Kledzik <kledzik@apple.com>
-
- src/Options.cpp: support -r -static
- src/MachOWriterExecutable.hpp: support -r -static an don't generate LC_DYSYMTAB
-
-
-2006-09-14 Nick Kledzik <kledzik@apple.com>
-
- src/MachOWriterExecutable.hpp: in -r mode references to weak symbols should not create external relocations
- as that can cause nmedit to errror later.
-
-
-2006-09-13 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4718189> ld64: Handle .objc_class_name exports specially
- src/Options.cpp: add hack so that .objc_class_name_XXX in -exported_symbols_list imples _OBJC_CLASS_$_XXX
- src/ld.cpp: add hack to supporess errors about .objc_class_name_XXX or _OBJC_CLASS_$_XXX being undefined
-
-
-2006-09-12 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4474172> Support -prebind when targeting ppc and OS < 10.4
- src/Options.h: add splitSeg() and baseWritableAddress()
- src/Options.cpp: Add support for -seg_addr_table and LD_SEG_ADDR_TABLE, and -prebind and LD_PREBIND.
- src/src/MachOWriterExecutable.hpp: support split-seg and canonical prebound files to be generated
-
-
-2006-09-11 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4464904> Linking a dylib or binary from identical binaries should produce the same output
- src/MachOWriterExecutable.hpp: set the timestamps to be constant
-
-
-2006-09-11 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4070025> Linker support for ordering all sections and symbols
- src/Options.cpp: Add -order_file_statistics. Allow architecture prefixes in order files
- src/ld.cpp: Use fOptions.printOrderFileStatistics()
-
-
-2006-09-11 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/3894079> Support -sectorder
- unit-tests/test-cases/order_file: added test case
- src/ld.cpp: Implement order file support in Linker::sortAtoms()
- src/Options.h: add Options.orderedSymbols()
- src/Options.cpp: add parseOrderFile(), implement -order_file
-
-
-2006-09-07 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4637023> need -i for 64-bit (or equivalent)
- <rdar://problem/4014529> Support -i for aliasing exported symbols
- unit-tests/test-cases/alias-objects: added
- unit-tests/test-cases/alias-command-line: added
- src/ObjectFile.h: Added Atom::getOrdinal() as new way to sort atoms. Added ReaderOptions.fAliases
- src/MachOReaderRelocatable.hpp: Added SymbolAliasAtom to handle multiple symbols to same address
- src/MachOReaderArchive.hpp: implement Atom::getOrdinal() to space out atom ordinals across member objects
- src/Options.cpp: support -i, -alias, -alias_list. Move search of /Network/Library/Frameworks to after /System/Library/Frameworks
- src/MachOWriterExecutable.hpp: pad out seg_info data. Implement getOrdinal().
- src/ObjectDump.cpp: call constructors directly instead of using make() wrapper
-
-
-2006-09-01 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4458878> Need the ability to tag libraries/plug-ins with security attributes
- src/MachOReaderDylib.hpp: add warning if using -root_safe or -setuid_safe and link against dylib that is not
- src/ObjectFile.h: add ReaderOption fRootSafe and fSetuidSafe
- src/Options.cpp: handle -root_safe or -setuid_safe command line options
- src/MachOWriterExecutable.hpp: set MH_ROOT_SAFE and MH_SETUID_SAFE flags
-
-
-2006-08-31 Nick Kledzik <kledzik@apple.com>
-
- src/ld.cpp: Add Linker::processDTrace() for processing dtrace static probes
- src/OpaqueSection.hpp: renamed, add symbol name, add ability to add references
- ld64.xcodeproj/project.pbxproj: remove SectCreate.cpp, add OpaqueSection.hpp
-
-
-2006-08-28 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4571042> Add convention for removing symbols at link time
- <rdar://problem/3962731> Assembler -L option causes ld64 to split stubs
- unit-tests/test-cases/special-labels: added test case
- src/MachOReaderRelocatable.hpp: ignore L* labels, make l* labels as kSymbolTableNotIn
-
-
-2006-08-28 Nick Kledzik <kledzik@apple.com>
-
- src/lObjectFile.h: refactor isTargetUnbound() into getTargetBinding()
- src/ld.cpp: create __dof section in final linked images from dtrace static probes
- src/Architectures.hpp: add kDtraceProbe
- src/Options.h/cpp: Add support for -dtrace
- src/machochecker.cpp: support LC_SEGMENT_SPLIT_INFO
- src/MachOWriterExecutable.hpp: support kDtraceProbe
- src/MachOReaderRelocatable.hpp: suppport kDtraceProbe
-
-
-2006-08-25 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4701529> generate LC_SEGMENT_SPLIT_INFO for 10.5 or later dylibs
- src/Options.h&.cpp: implement sharedRegionEligible() to control when LC_SEGMENT_SPLIT_INFO is added
- src/MachOFileAbstraction.hpp: add macho_linkedit_data_command
- src/MachOWriterExecutable.hpp: generate LC_SEGMENT_SPLIT_INFO load command and linkedit content
-
------ Tagged ld64-62
-
-2006-08-15 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4681062> wrong error message when symbol is found in unused indirect library
- src/ld.cpp: remove indirect libraries if they are not re-exported
- unit-tests/test-cases/indirect-dylib: added test case
-
-
-2006-08-15 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/3930461> alignment needs to be richer
- src/ObjectFile.h: define ObjectFile::Alignment class for tracking rich alignment info
- src/ld.cpp: modify SymbolTable::add() to work with new Alignment type
- src/MachOReaderRelocatable.hpp: use new Alignment type. Remove alignAtLeast() and handleAnonymousNonLazyPointers()
- src/MachOWriterExecutable.hpp: update for new Alignment type, use modulus when calculating layout address
- src/ObjectDump.cpp: print richer Alignment info
- unit-tests/test-cases/align-modulus: added test case
-
-
-2006-08-11 Nick Kledzik <kledzik@apple.com>
-
- remove OPEN_SOURCE conditionals around x86_64 support
-
-
-2006-07-31 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4654131> ld64 while linking cc1 [ when dead_strip is ON]
- src/ld.cpp: Add ivar fAtomsWithUnresolvedReferences to track atoms not initially resolvable
- unit-tests/test-cases/dead_strip-archive: added test case
-
-
-2006-07-31 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4656617> x86_64: instructions with immediate and rip-relative operands need to use new relocation types
- src/MachOWriterExecutable.hpp: generate new reloc types in -r mode
- src/MachOReaderRelocatable.hpp: parse new reloc types
- unit-tests/test-cases/relocs-asm/relocs-asm.s: add test cases for new reloc type
-
-
-2006-07-18 Nick Kledzik <kledzik@apple.com>
-
- src/MachOReaderRelocatable.hpp: suppress warning about dwarf info parsing for one benign no-op case
- the compiler emits when there are not functions in the __text section
-
-
-2006-07-17 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4634840> faster debug note generation
- src/ld.cpp: rework collectDebugInfo() to produce all debug notes in one pass, intead of a
- pass per .o file. Added timing info for collectDebugInfo() to -print_statistics
- unit-tests/test-cases/dwarf-debug-notes-r/Makefile: add expliced -arch to ld -r
- unit-tests/test-cases/dwarf-debug-notes-r/expected-stabs: alter for new debug notes order
-
-
-2006-07-17 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4623994> ld64 VSIZE is 1.18GB when building Finder ppc64
- src/ld.cpp: fixed typo in createReader() that prevented dylibs from being unmapped
-
------ Tagged ld64-61.1
-
-2006-07-11 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4622049> ld64-61: gcc DejaGnu tests failing due to -arch followed by unknown architecture name
- src/Options.cpp: map ppc750, ppc7400, ppc7450, and ppc970 to ppc. Improve error message
-
-2006-07-11 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4622769> If -arch is missing, rollover to ld_classic does not happen
- src/Options.h: make gotoClassicLinker() public
- src/ld.cpp: call gotoClassicLinker() if the inferred architecture is ppc or i386
-
------ Tagged ld64-61
-
-2006-06-29 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4606628> ld64 should be renamed to ld
- src/Options.cpp: exec() ld_classic if -arch ppc or -arch i386 is seen
- src/ld.cpp: alter version string
- ld64.xcodeproj/project.pbxproj: change install location to /usr/bin/ld, add symlink from /usr/bin/ld64
- doc/man/man1/ld.1: added
-
------ Tagged ld64-60
-
-2006-06-28 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4604539> Can't link large ppc64 program: ld64 says "bl out of range"
- MachOWriterExecutable.hpp: fix branch island generation to work for weak_import functions
- and properly chain together branch islands
- MachOReaderRelocatable.hpp: improve performance of huge .o file reading by sorted references
- only when done
-
-2006-06-28 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4603454> MySQL-36 fails to build with ld64-59
- src/MachOReaderRelocatable.hpp: back out fix for 4585335
- src/MachOWriterExecutable.hpp: back out fix for 4585335
-
-2006-06-27 Nick Kledzik <kledzik@apple.com>
-
- src/MachOReaderRelocatable.hpp: handle N_GSYM without ending :G() since that is how
- dwarf debug notes are formed.
-
-2006-06-23 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4599239 objc class with no superclass causes bad undefined symbol
- src/MachOReaderRelocatable.hpp: handle NULL superclass in objc_class
- unit-tests/test-cases/relocs-objc/test.m: add case with no super class
-
-
-2006-06-23 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4313369> ld64 doesn't support variant linking -framework fw,_debug
- src/Options.cpp: enhance findFramework() to support suffixes
-
------ Tagged ld64-59
-
-2006-06-22 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4596726> ld64 lost DWARF debug notes
- src/MachOReaderRelocatable.hpp: add fHasUUID so kDebugInfoStabsUUID can be set later
- unit-tests/test-cases/dwarf-debug-notes-r: added test case
-
-2006-06-21 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4567995> python 64-bit address miscalculation
- src/MachOReaderRelocatable.hpp: change getTargetOffset() to sign extend the 32-bit value to 64-bits
-
-2006-06-21 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4535036> ld64 seems to offset things incorrectly when using -r
- src/MachOWriterExecutable.hpp: in -r mode, virtual sections should not increment address
-
-
------ Tagged ld64-58
-
-2006-06-16 Nick Kledzik <kledzik@apple.com>
-
- src/rebase.cpp: fix page alignment problem
- src/rebase.cpp: fix endianess problem with local non-lazy pointers
-
-2006-06-15 Nick Kledzik <kledzik@apple.com>
-
- src/rebase.cpp: fix to build in CurryWeed
- ld64.xcodeproj/project.pbxproj: fix to build properly in CurryWeed
-
-2006-06-15 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4495309> Support .objc_class_name_* symbols
- src/ObjectFile.h: Add kSymbolTableInAsAbsolute
- src/MachOReaderRelocatable.hpp: synthesize references to required objc classes
- src/MachOWriterExecutable.hpp: write objc_class_name as absolute symbol
- unit-tests/test-cases/objc-references: added
-
-2006-06-15 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4484369> SECTION_ATTRIBUTES unset in ppc64 mach-o header
- src/MachOWriterExecutable.hpp: add section attribute for sections with code
-
-2006-06-15 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4569407> ld64 bogus duplicate symbol name linking GNU libobjc
- src/MachOReaderRelocatable.hpp: only special case Apple objc runtime objc classes
-
-2006-06-15 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4582999> x86_64: ".align" directive not honored
- src/MachOReaderRelocatable.hpp: change code alignment to not depend on atom size
-
-2006-06-14 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4585335> jump table into middle of weak symbol causes error
- src/MachOReaderRelocatable.hpp: create direct references to the interior of weak symbols
- src/MachOWriterExecutable.hpp: do not error on absolute references to interior of weak symbols
-
-2006-06-13 Nick Kledzik <kledzik@apple.com>
-
- src/Options.cpp: allow -image_base as an alias for -seg1addr
-
-2006-06-13 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4585115> implement -d
- src/Options.h: add fMakeTentativeDefinitionsReal
- src/Options.cpp: set fMakeTentativeDefinitionsReal if -d option is found
- src/MachOWriterExecutable.hpp: turn tentative into real definition if makeTentativeDefinitionsReal
- unit-tests/test-cases/btentative-to-real: added test case
-
-2006-06-13 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4584355> implement -bundle_loader
- src/Options.h: add fBundleLoader bit to DynamicLibraryOptions
- src/Options.cpp: handle -bundle_loader
- src/ld.cpp: pass fBundleLoader bit to MachOReaderDylib
- src/MachOReaderDylib.hpp: support reading MH_EXECUTE files if fBundleLoader is set
- src/MachOWriterExecutable.hpp: set bundle loader ordinal as EXECUTABLE_ORDINAL
- unit-tests/test-cases/bundle_loader: added test case
-
-2006-06-12 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4583347> -syslibroot can cause "can't find ordinal for imported" error
- src/MachOReaderDylib.hpp: in Reader::reExports() compare install path in addition to load path
-
-
-2006-06-10 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4548935> Need rebasing tool
- src/rebase.cpp: added
- unit-tests/test-cases/rebase-basic: added
- doc/man/man1/rebase.1: added
- ld64.xcodeproj/project.pbxproj: added rebase target. changed all targets to build with dwarf
-
-
-2006-06-10 Nick Kledzik <kledzik@apple.com>
-
- src/machochecker.cpp: add some ppc reloc sanity checking
-
------ Tagged ld64-57
-
-2006-06-06 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4565088> ld64 is not adding a final '/' char on the initial directory-name SO stab debug map entry
- ld.cpp: Change Linker::synthesizeStabs() to assure directory SO always has a trailing slash
- unit-tests/test-cases/dwarf-debug-notes/expected-stabs: update with trailing /
-
-2006-06-06 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4572702> -sectcreate of a 0-byte section fails
- MachOWriterExecutable.cpp: Don't error out on zero length segments
- MachOWriterExecutable.cpp: For ppc64 reloc base address is the first writable segment iff
- there is a writable segment >4GB from base address
-
-2006-06-04 Eric Christopher <echristo@apple.com>
-
- Radar 4560240
- Radar 3964999
- * src/ld.cpp (createReader): Fixed error message.
- (resolve): Ditto.
- (resolveFrom): Ditto.
- (checkUndefines): Ditto.
-
------ Tagged ld64-56
-
-2006-05-23 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4558079> No debug notes for ObjC methods when linking with ld64
- ld.cpp: don't limit debug notes to functions starting with underscore
-
-2006-05-22 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4556982> ld64 spends much time in mach_o::relocatable::Reader<x86_64>::findAtomByName
- * src/MachOReaderRelocatable.hpp: add makeReferenceToSymbol() so that x86_64 does not need to do by-name lookups
-
-2006-05-22 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4535044> remove inferring warning
- * ld.cpp: Remove "inferring" warning. If a link failed and now arch was specifed add which arch was
- inferred to error message
-
-2006-05-19 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4544001> ld64 does not honor -arch_multiple
- * ld.cpp: If fOptions.printArchPrefix(), add architecture name to error message
-
-2006-05-19 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4555973> Support S_16BYTE_LITERALS section types
- * src/MachOReaderRelocatable.hpp: support S_16BYTE_LITERALS
- * src/MachOWriterExecutable.hpp: support S_16BYTE_LITERALS
-
-2006-05-19 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4548803> "warning can't parse dwarf compilation unit info" warnings building debug
- * src/MachOReaderRelocatable.hpp: fix bugs in dwarf line table parsing
-
------ Tagged ld64-55
-
-2006-05-18 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4534339> Default the pagezero size to 4GB for x86-64
- * src/Options.cpp: Chnage default the pagezero size to 4GB for x86-64
-
-2006-05-18 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4552825> x86_64 CarbonCore fails to link with "atom not found in symbolIndex"
- * src/MachOWriterExecutable.hpp: in buildObjectFileFixups() don't call addObjectRelocs() on kNoFixUp references
-
-2006-05-18 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4553555> ld64: .section defaults to read-only
- * src/MachOReaderRelocatable.hpp: default unknown segments to r/w
-
-2006-05-18 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4551990> -fvisibility=hidden causes crashes for x86_64
- * src/MachOWriterExecutable.hpp: properly handle RIP relative tentative definitions
-
-2006-05-12 Nick Kledzik <kledzik@apple.com>
-
- * src/Architectures.hpp: add x86::kAbsolute32
- * src/MachOReaderRelocatable.hpp: generate x86::kAbsolute32 for mdynamic-no-pic instructions
- * src/MachOWriterExecutable.hpp: process x86::kAbsolute32 reference kind
-
------ Tagged ld64-54
-
-2006-05-11 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4545108> CF-393 failes to link for x86_64
- * src/MachOWriterExecutable.cpp: fix sign extension for Rel32 relocs in Writer<x86_64>::fixUpReferenceRelocatable
-
-2006-05-11 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4501434> warning arch x86_64 not found using i386
- * src/ld.cpp: remove hack to allow x86_64 to link against i386 dylibs
-
-
-2006-05-10 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4543754> x86_64: .objc_class_name symbol names scrambled
- * src/MachOReaderRelocatable.hpp: properly compute alignment of __OBJC __class sections
-
-
-2006-05-08 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/3894083> Support -dead_strip
- * src/Options.h/cpp: implement -why_load and -why_live. Enable -dead_strip.
- * src/MachOReaderArchive.hpp: implement -why_load
- * src/MachOReaderRelocatable.hpp: suppress GCC_except_table* symbols in final output
- * src/ld.cpp: implement dead code stripping
- * unit-tests/test-cases/dead_strip: added
-
------ Tagged ld64-53
-
-2006-05-05 Nick Kledzik <kledzik@apple.com>
-
- * src/Options.cpp: make 10.4 be minimum OS version for newer architectures
-
-2006-05-05 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4147604> N_SO symbols in 64-bit builds have a zero address for n.n_value
- * src/ld.cpp: for SO stabs, associate first and last atom in the SO range
- * src/MachOWriterExecutable.hpp: use atom associated with SO stab to set ins n_value
-
-2006-05-05 Nick Kledzik <kledzik@apple.com>
-
- * MachOWriterExecutable.hpp: fix end FUN stab to have length of function
-
-
-2006-05-02 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4496250> 64-bit main executables should have 4GB zero page by default
- * src/Opptions.cpp: change default pagezero_size to 4GB for ppc64
- <rdar://problem/4492850> 64 bit: apps with -mdynamic-no-pic seg fault when page zero > 4GB
- * src/MachOWriterExecutable.cpp: rework pagezero for ppc64 so that if any mdynamic-no-pic code
- is found, the code is kept in the low 2GB, and a new segment is create to map away up to 4GB.
-
-2006-05-02 Nick Kledzik <kledzik@apple.com>
-
- * src/Opptions.cpp: remove warning about -stack_addr not specified. Add warning if 32-bit stack
- overlaps shared region
-
------ Tagged ld64-52.1
-
-2006-05-01 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.cpp: rework handleAnonymousNonLazyPointers() to handle anl's in the middle
- the __data section too.
-
------ Tagged ld64-52
-
-2006-04-28 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4513304> 64-bit: 9A152 TextEdit crashes in dlopen on bring-up
- * src/MachOReaderRelocatable.cpp: rework anonymous non-lazy-pointer detection
-
-2006-04-28 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4528054> 64 Bit: Development build of ppc64 TextEdit gets confused about static variables
- * src/MachOReaderRelocatable.cpp: mark non-lazy-pointer atoms as scopeTranslationUnit if targetting a static symbol
-
-
-
-2006-04-21 Nick Kledzik <kledzik@apple.com>
-
- * src/Options.cpp: fix default address for ppc64 custom stack
- * src/MachOWriterExecutable.cpp: fix set up of ppc64 custom stack
-
-
-2006-04-14 Nick Kledzik <kledzik@apple.com>
-
- * src/Options.cpp: fix -sub_library processing to work it dylib is specifed with leaf name
-
------ Tagged ld64-51.1
-
-2006-04-13 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4513304> 64-bit: 9A152 TextEdit crashes in dlopen on bring-up
- * src/MachOReaderRelocatable.hpp: when detecting anonymous non-lazy-pointers disqualify data
- that points to static or global symbols
- * src/ld.cpp: print version of ld64 in error messages
-
-
------ Tagged ld64-51
-
-2006-04-11 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4499168> exported symbols not properly stripped
- * src/MachOReaderRelocatable.hpp: enable AnonymousAtom::setScope()
-
-2006-03-31 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4498391> ld64 fails when linking debug ppc64 HIToolbox
- * src/MachOReaderRelocatable.hpp: handle anonymous non-lazy pointers encoded with local relocations
- * src/MachOWriterExecutable.hpp: in -r mode, only generated INDIRECT_SYMBOL_LOCAL for non-lazy targets that
-
-
-2006-03-31 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4496499> ld64 should remove generated file if link errors out
- * src/MachOWriterExecutable.hpp: catch exceptions in Writer<A>::write(), delete output file, and rethrow
-
-
------ Tagged ld64-50
-
-
-2006-03-29 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: synthesize .objc_class_name symbols
- * src/MachOFileAbstraction.hpp: use strncpy for sect/seg names to zero fill trailing space
-
-2006-03-28 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: fix spurious warning about dwarf line info
-
------ Tagged ld64-49.1
-
-2006-03-25 Nick Kledzik <kledzik@apple.com>
-
- * MachOWriterExecutable.hpp : don't complain about ppc64 dyld being based > 4GB
-
------ Tagged ld64-49
-
-2006-03-24 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.hpp: dyld is allowed to have synthesized non-lazy pointers
- <rdar://problem/4488113> ld64 is after processing bad GSYM stabs
- * src/MachOReaderRelocatable.hpp: if a GSYM is found that does not match any data symbol, suppress it
-
-2006-03-23 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.hpp: in Writer<x86>::fixUpReferenceFinal() fix when x86::kPointer is for an
- external relocation
-
-2006-03-23 Nick Kledzik <kledzik@apple.com>
-
- * src/Options.cpp: change macosx-min-version to default to a per-architecture setting
- add warning if -pagezero_size is not page aligned
- * src/MachOWriterExecutable.hpp: properly handle external relocations for ppc64 with 4GB pagezero
- * src/machochecker.cpp: sanity check relocation records
-
------ Tagged ld64-48
-
-2006-03-21 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4481406> 64bit: passing function pointer to another function passes the wrong function address
- * src/MachOReaderRelocatable.hpp: when processing a non-lazy pointer to a static function, don't accidentally
- match it to a STAB symbol.
-
-2006-03-21 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4180168> .eh symbols make up 13% of libstdc++'s stripped binary size
- * src/ObjectFile.h: add ReaderOptions.fForFinalLinkedImage
- * src/Options.cpp: setup ReaderOptions.fForFinalLinkedImage
- * src/MachOReaderRelocatable.hpp: mark .eh symbols kSymbolTableNotIn when building final linked image
-
-2006-03-21 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4473742> ld64 does not parse optional second argument to -filelist
- * unit-tests/test-cases/filelist: added
- * src/Options.cpp: in Options::loadFileList() handle comma option
-
-
------ Tagged ld64-47.1
-
-
------ Tagged ld64-47
-
-
------ Tagged ld64-46
-
-2006-03-10 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4419505> ld64 should figure out architecture from .o files
- * unit-tests/test-cases/auto-arch: added
- * src/ld.cpp: added Linker::inferArchitecture() to scan .o files are infer architecture to link
- * src/MachOReaderArchive.hpp: enhanced validFile() to look deeper into archive and really valdate
- * src/MachOWriterExecutable.hpp: stop using fOptions.architecture()
- * src/Options.cpp: stop defaulting to ppc64
-
-
-2006-03-09 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4465004> Need "intentionally left blank" dylib stubs
- * unit-tests/include/common.makefile: add VALID_ARCHS
- * unit-tests/run-all-unit-tests: set up VALID_ARCHS
- * unit-tests/test-cases/blank-stubs: add test case
- * src/ld.cpp: in addDylib(), detect and ignore blank stubs
- * src/MachOReaderDylib.hpp: in constructor, handle blank stubs
-
-2006-03-09 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4471424> crash in stub with 2GB pagezero
- * src/MachOWriterExecutable.hpp: StubAtom<ppc64> can't be no-pic if a large zero-page is used
-
-2006-03-06 Nick Kledzik <kledzik@apple.com>
-
- * src/Options.cpp: addSectionAlignment, warn if -sectalign alignment is not a power of two
-
------ Tagged ld64-45
-
-
-2006-03-06 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4466930> LP64/9A122: ld64: hang when trying to link DiscRecording framework
- * src/Options.cpp: addSectionAlignment, warn on zero. Use log2() for alignment conversion
-
-
------ Tagged ld64-44
-
-2006-03-04 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: fix again test for detection of anonymous non-lazy-pointer.
- Error out if .o file contains old __DWARFA style dwarf.
-
-2006-03-02 Nick Kledzik <kledzik@apple.com>
-
- * src/ld.cpp: only re-map page aligned sub-parts of a fat file. A conformat mmap() requires alignment.
-
------ Tagged ld64-43
-
-
-2006-03-02 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: <rdar://problem/4464370> tighten detection of anonymous non-lazy-pointer
-
------ Tagged ld64-42
-
-2006-02-28 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: fix x86 __IMPORT permissions for class Segment
-
-2006-02-28 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4461240> SWB: ld64-37 (can't resolve symbol ___dso_handle)
- * src/MachOWriterExecutable.hpp: add class DsoHandleAtom
-
-2006-02-28 Nick Kledzik <kledzik@apple.com>
-
- * unit-tests/test-cases/literals-coalesce-alignment: added test case
- * src/ld.cpp: when coalescing strings pick one with greater alignment
- <rdar://problem/4458660> ld64: CG link failed because lo14 reference to anonymous non-lazy-pointer not aligned
- * unit-tests/test-cases/relocs-c/test.c: tweak to fail like 4458660
- * src/MachOReaderRelocatable.hpp: detect anonymous non-lazy-pointer and transform into real non-lazy-pointers
-
------ Tagged ld64-41
-
-2006-02-24 Nick Kledzik <kledzik@apple.com>
-
- * src/Options.cpp: Warning about -no_dead_strip_inits_and_terms and -i options.
- Fix -weak-l option.
-
------ Tagged ld64-40
-
-2006-02-24 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4454698> Leopard9A113: ppc64 libstdc++.dylib initializer crashes in pthread_once
- * unit-tests/test-cases/multiple-entry-points: added
- * src/MachOReaderRelocatable.hpp: make sure that if there are multiple symbols with the same
- address, that we properly make zero length atoms for all but last symbol
-
-2006-02-24 Nick Kledzik <kledzik@apple.com>
-
- * src/Options.cpp: <rdar://problem/4456093> ld64 doesn't realpath(3) B&I tracing paths
-
-2006-02-24 Nick Kledzik <kledzik@apple.com>
-
- * src/Options.cpp: <rdar://problem/4457078> 9A110: ld64 can't deal with section names >16 chars
-
-2006-02-23 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.hpp: use vector.reserve() to minimize re-allocations
- * src/Options.cpp: use vector.reserve() to minimize re-allocations
- * src/MachOReaderRelocatable.hpp: use vector.reserve() to minimize re-allocations
- * src/MachOReaderDylib.hpp: use vector.reserve() to minimize re-allocations
- * src/ld.cpp: use vector.reserve() to minimize re-allocations
-
-2006-02-23 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4455927> ld64 creates corrupt executables (and has malloc errors) with -headerpad option
- * src/MachOWriterExecutable.hpp: Change LoadCommandsPaddingAtom<A>::setSize() to update fLargestAtomSize
- * unit-tests/test-cases/header-pad: added
-
-2006-02-23 Nick Kledzik <kledzik@apple.com>
-
- <rdar://problem/4455192> ld64 creates invalid static executables
- * src/MachOWriterExecutable.hpp: Change MachHeaderAtom<A>::copyRawContent() to create correct header
- for static executables. Change SymbolTableLoadCommandsAtom to skip LC_DYSYMTAB for static executables
- * src/machochecker.cpp: Add tests that static executables are well formed
- * unit-tests/test-cases/static-executable: added
-
-2006-02-22 Nick Kledzik <kledzik@apple.com>
-
- * src/Options.cpp: <rdar://problem/4453468> chnage printf on unknown arg to a throw
-
------ Tagged ld64-39
-
-2006-02-20 Nick Kledzik <kledzik@apple.com>
-
- * unit-tests/test-cases/read-only-relocs: added new test case
- * src/MachOWriterExecutable.hpp: <rdar://problem/4448922> detect and error on relocs in read-only sections
- * src/MachOReaderRelocatable.hpp: fix parsing of i386 absolute addressing relocs
-
-2006-02-20 Nick Kledzik <kledzik@apple.com>
-
- * unit-tests/test-cases/stabs-coalesce: added new test case
- * src/ld.cpp.hpp: <rdar://problem/4449226> in collectStabs removed unused stabs
-
------ Tagged ld64-38
-
-2006-02-17 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.hpp: <rdar://problem/4434578> set correct n_sect field of stabs
-
-2006-02-15 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderArchive.hpp: <rdar://problem/4441920> with -all_load skip over both kinds of SYMDEFs
- * unit-tests/test-cases/archive-basic/Makefile: add -all_load test case
-
------ Tagged ld64-37
-
-2006-02-13 Eric Christopher <echristo@apple.com>
-
- * src/MachOWriterExecutable.hpp (assignFileOffsets): Simplify. Add comments.
- Adjust whitespace.
-
-2006-02-13 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.hpp: in Writer<x86>::fixUpReferenceRelocatable() fix kPCRel32 for external case
-
-2006-02-13 Nick Kledzik <kledzik@apple.com>
-
- * unit-tests/test-cases/zero-fill: added
- * src/machochecker.cpp: check that S_ZEROFILL have no file offset
- * src/MachOWriterExecutable.hpp: rework assignFileOffsets() to fix rdar://problem/4441145
-
-2006-02-12 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: <rdar://problem/4440880> fix use of first zero-length c-string in .o file
-
-2006-02-12 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: <rdar://problem/4440905> fix uninitialized fAlignment
-
-2006-02-12 Nick Kledzik <kledzik@apple.com>
-
- * unit-tests/test-cases/relocs-asm/relocs-asm.s: add pointer-diff cases
- * src/Architectures.hpp: make size explicit in ppc/ppc64 kPointerDiff
- * src/MachOReaderRelocatable.hpp: don't allow kPointerDiff64 for ppc (just ppc64)
- * src/MachOWriterExecutable.cpp: set proper r_length for ld -r of kPointerDiff
-
------ Tagged ld64-36
-
-2006-02-08 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.cpp: rdar://problem/4438677 Handle when a .o file dwarf line info entries but no functions
-
-2006-02-08 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.cpp: Properly set address of first TEXT section
- Keep S_COALESCED attribute for __eh_frame
-
-2006-02-08 Nick Kledzik <kledzik@apple.com>
-
- * src/ld.cpp: Temporarily turn allowable client errors into warnings
- * unit-tests/test-cases/allowable-clientMakefile: Temporarily let warnings be ok for above
- * src/MachOWriterExecutable.hpp: fix ld -r to not use external relocations for symbols make static
-
-2006-02-08 Nick Kledzik <kledzik@apple.com>
-
- * src/ld.cpp: A sibling in an umbrella can always link with its other siblings
- * unit-tests/test-cases/allowable-client: add test case for above
-
-2006-02-08 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: support LOCAL non-lazy pointers to hidden symbols
- * src/machochecker.cpp: verify indirect symbol table
- * unit-tests/test-cases/private-non-lazy: added test case
-
-2006-02-07 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.hpp: fix calculation of file offsets in ld -r mode
- * src/machochecker.cpp: verify segment file offsets are within file
-
------ Tagged ld64-35
-
-2006-02-06 Nick Kledzik <kledzik@apple.com>
-
- * ld.cpp: allow parent of sub-framework to link
- * unit-tests/test-cases/allowable-client/Makefile: added cases for parent and clients of parent
-
-2006-02-04 Nick Kledzik <kledzik@apple.com>
-
- * unit-tests/test-cases/relocs-c/test.c: added some array cases
- * src/MachOReaderRelocatable.hpp: factor out makeReferenceToEH()
- * src/MachOWriterExecutable.hpp: add initial support for non-lazy pointer synthesis
-
------ Tagged ld64-34
-
-2006-02-04 Nick Kledzik <kledzik@apple.com>
-
- * src/ld.cpp: <rdar://problem/4432917> fix -no_arch_warnings
- <rdar://problem/4432932> fix -undefined warning
- Do BINCL/EINCL optimization for gfull stabs
- Implement "essential symbols" for stabs (-Sp)
- Fix allowable clients to only test on direct libraries
- * src/MachOReaderRelocatable.hpp: support BINCL/EINCL stabs
-
-2006-02-03 Nick Kledzik <kledzik@apple.com>
-
- * src/machochecker.cpp: add code to check load command alignment
- * src/MachOWriterExecutable.hpp: make load command alignment depend on architecture
-
-2006-02-03 Nick Kledzik <kledzik@apple.com>
-
- * unit-tests/test-cases/literals-coalesce: added
- * src/MachOReaderRelocatable.hpp: assure all targets of low14 ppc relocs are at least 4-byte alignmented
-
------ Tagged ld64-33
-
-2006-02-02 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: properly coalesce 8-byte literals
- * src/MachOWriterExecutable.hpp: support ppc64::kPointerDiff32
-
------ Tagged ld64-32
-
-2006-02-02 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: support anonymous zero fill atoms
-
-2006-02-02 Nick Kledzik <kledzik@apple.com>
-
- * src/ld.cpp: A weak definition is good enough, do not search archives for a non-weak one
- * unit-tests/test-cases/archive-weak: add test case for above
- * src/MachOReaderRelocatable.hpp: an atom should never have a by-name reference to itself
- * src/Options.cpp: prevent .eh symbols from being exported via a -exported_symbols_list
-
-2006-02-01 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: Support -macosx_version_min 10.5
-
-2006-02-01 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: don't try to parse debug_line dwarf if no symboled atoms
-
------ Tagged ld64-31
-
-2006-02-01 Eric Christopher <echristo@apple.com>
-
- * unit-tests/test-cases/allow-stack-execute/Makefile: Move otool handling...
- * unit-tests/include/common.makefile: ... here.
- * unit-tests/bin/fail-if-stdin.pl: New.
- * unit-tests/test-cases/no-uuid: Ditto.
- * src/ld.cpp (Linker::) Add fCreateUUID.
- (::Linker): Initialize.
- (::collectStabs): Use. Set if dwarf or we have a UUID already.
- (::writeOutput): Pass as argument to Writer::write along with option.
- * src/Options.h (Option::emitUUID): Declare.
- (Option::fEmitUUID): Ditto.
- * src/Options.cpp (Option::emitUUID): New.
- (parse): Handle -no_uuid.
- * src/MachOReaderRelocatable (Reader::Reader): Handle LC_UUID.
- * src/ExecutableFile.h (Writer::Write): Add createUUID boolean.
- * src/MachOWriterExecutable: Add UUID forward declaration.
- (fUUIDAtom): New.
- (UUIDLoadCommandAtom): Emit LC_UUID if fEmit. New function emit. Size
- to zero at start.
- (Writer::writer): Add handle for LC_UUID. If createUUID emit LC_UUID.
- (MachHeaderAtom::copyRawContent): Don't count a load command if its size is
- 0.
- (UUIDLoadCommandAtom::copyRawContent): Depend on fEmit.
-
-
-2006-01-31 Nick Kledzik <kledzik@apple.com>
-
- * unit-tests/test-cases/dwarf-debug-notes : Added
- * src/ld.cpp: don't generate debug note for .eh symbols
- * src/MachOReaderRelocatable.hpp: make dwarf line info to atom matching faster and better
-
-2006-01-31 Nick Kledzik <kledzik@apple.com>
-
- * ld64.xcodeproj/project.pbxproj : Make buildable on Leopard
- * src/MachOFileAbstraction.hpp: make buildable without latest cctools headers
-
-2006-01-31 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: better error message for bad relocs
- * src/ObjectDump.cpp: add emacs tab settings
- * src/SectCreate.h: ditto
- * src/SectCreate.cpp: ditto
- * src/machochecker.cpp: ditto
- * src/ExecutableFile.h: ditto
-
-2006-01-30 Eric Christopher <echristo@apple.com>
-
- * src/ExecutableFile.h: Indent.
-
-2006-01-30 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: performance improvements
- * src/ld.cpp: now that stubs are synthesized in write, don't need to special case anymore
-
-2006-01-30 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: fix parsing of pcc relocs
- * unit-tests/test-cases/relocs-asm/relocs-asm.s: add test case for above
-
-2006-01-29 Nick Kledzik <kledzik@apple.com>
-
- * unit-tests/test-cases/weak_import: added test case
- * src/ld.cpp: move code for weak_import mismatch to writer
- * src/ObjectFile.h: remove ImportWeakness methods
- * src/MachOReaderDylib.hpp: ditto
- * src/SectCreate.cpp: ditto
- * src/Architectures.hpp: add new ReferenceKinds for weak_imports
- * src/MachOReaderRelocatable.hpp: implement new ReferenceKinds
- * src/MachOWriterExecutable.hpp: handle new ReferenceKinds and weak_import mismatches
-
-2006-01-29 Nick Kledzik <kledzik@apple.com>
-
- * src/Options.cpp: verify -allow_stack_execute is only used on main executables
-
-2006-01-29 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: sync with latest dwarf reader from Geoff
- * src/debugline.c: sync with latest dwarf reader from Geoff
-
-2006-01-27 Eric Christopher <echristo@apple.com>
-
- * src/ld.cpp (Linker::syntesizeStabs): Correct spelling. Update all uses.
-
-2006-01-27 Eric Christopher <echristo@apple.com>
-
- * src/Options.h (Options): Add hasExecutableStack, fExecutableStack.
- * src/Options.cpp (Options::hasExecutableStack): New.
- (Options::parse): Parse -allow_stack_execute.
- * src/MachOWriterExecutable.hpp (MachHeaderAtom::copyRawContent):
- Implement MH_ALLOW_STACK_EXECUTION.
- * unit-tests/include/common.makefile (FAIL_IF_EMPTY): New.
- * unit-tests/bin/fail-if-no-stdin.pl: New file.
- * unit-tests/test-cases/allow-stack-execute: New directory.
-
-2006-01-27 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOFileAbstraction.hpp: rely on latest system headers
- * src/MachOWriterExecutable.hpp: fix ppc stubs.
- wrote new relocationNeededInFinalLinkedImage() to replace common code
-
-2006-01-27 Eric Christopher <echristo@apple.com>
-
- * src/ld.cpp (logTraceInfo): New.
- (Linker::addArchive): Use.
- (Linker::addDylib): Ditto.
- * src/ObjectFile (ReaderOptions::fTraceOutputFile): New.
- * src/MachOReaderArchive.hpp (Reader::Reader): Move trace
- logging to Linker::addArchive.
- * src/Options.cpp (parsePreCommandLineEnvironment): Check
- LD_PRINT_FILE if tracing dylibs or archives.
-
-2006-01-26 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.hpp: handle NULL strings in SO debug notes
-
-2006-01-26 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.hpp: fix header padding calculation and thread state
-
-2006-01-26 Nick Kledzik <kledzik@apple.com>
-
- Rewrite all stabs processing.
- Move sythesize of debug notes into ld.cpp
-
-2006-01-26 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.hpp: fix ppc and ppc64 stub relocs
-
-2006-01-25 Nick Kledzik <kledzik@apple.com>
-
- * ld64.xcodeproj/project.pbxproj: special case building in Curry
-
-2006-01-25 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.hpp: fix bugs in stub/lazy-pointer synthesis
-
-2006-01-24 Eric Christopher <echristo@apple.com>
-
- * src/ld.cpp (Linker::createReaders): Change logging title to XBS.
- (Linker::addDylib): Ditto.
- * src/MachOReaderArchive.hpp (Reader::Reader): Ditto.
- * src/Options.h (fPrintOptions): New.
- * src/Options.cpp (Options::Options): Initialize above.
- (Options::checkForFile): Change logging title to XBS.
- (Options::findFramework): Ditto.
- (Options::parse): Add log for options.
- (Options::parsePreCommandLineEnvironmentSettings): Add LD_TRACE_ARCHIVES,
- LD_TRACE_DYLIBS, and LD_PRINT_OPTIONS.
-
-2006-01-24 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: better C++ eh parsing
-
-2006-01-23 Eric Christopher <echristo@apple.com>
-
- * unit-tests/bin/fail-if-exit-zero.pl: New.
- * unit-tests/include/common.makefile (FAIL_IF_SUCCESS): Use.
- * unit-tests/allowable-client: New test.
- * src/ld.cpp (Linker::addDylib): Check allowable clients before adding dylib.
- * src/Options.h (allowableClients): New.
- (clientName): Ditto.
- (fAllowableClients): Ditto.
- (fClientName): Ditto.
- * src/Options.cpp: Implement above.
- (parse): Handle -allowable_client and -client_name.
- * src/MachOReaderDylib.hpp (getAllowableClients): New.
- (fAllowableClients): Ditto.
- (Reader): Process LC_SUB_CLIENT load command.
- * src/ObjectFile.h (parentUmbrella): New.
- (getAllowableClients): New.
- * src/MachOWriterExecutable.hpp (AllowableClientLoadCommandsAtom): New.
-
-2006-01-23 Nick Kledzik <kledzik@apple.com>
-
- * unit-tests/test-cases/archive-basic: added
- * src/ld.cpp: fix shadowed local variable
- * src/FileAbstraction.hpp: <rdar://problem/4417372> ld64 shouldn't inline when building debug
-
-2006-01-23 Nick Kledzik <kledzik@apple.com>
-
- * src/ld.cpp: fix symbol not found error message
- * src/MachOReaderDylib.hpp: add logging to hash table
- * src/MachOReaderRelocatable.hpp: enable stabs processing. Handle static functions with stubs
- handle labeled cstrings.
- * src/MachOWriterExecutable.hpp: properly suppress atoms not in symbol table. fix low14 error check.
- add StubAtomHelper.
- * unit-tests/test-cases/relocs-literals/test.c: add more interesting edge cases
-
-2006-01-17 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: tweaks to synthesizing debug notes
-
-2006-01-16 Nick Kledzik <kledzik@apple.com>
-
- * src/debugline.{sh}: added
- * src/MachOReaderRelocatable.hpp: synthesize debug notes SOL from dwarf
- * src/MachOWriterExecutable.hpp: fix lazy pointer section
- * src/ObjectDump.hpp: Fix conditionalization
- * unit-tests/test-cases/dwarf-strip: added
-
-2006-01-11 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: support Tiger crt1.o build with old ld64
- * src/ObjectDump.hpp: Support -arch option
-
-2006-01-10 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.hpp: fix stubs for ppc64
- * src/MachOFileAbstraction.hpp: fix typo for macho_routines
- * ld64.xcodeproj/project.pbxproj: add machochecker target
- * src/machochecker.cpp: new skeleton for checking mach-o file bit
- * unit-tests/: Add support for running machochecker
-
-2006-01-10 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: warn if dwarf can't be parsed
- * src/MachOReaderArchive.hpp: modTime for OSO stabs from archives is .a modTime
-
-2006-01-09 Nick Kledzik <kledzik@apple.com>
-
- * track modification time of .o files so that sythesized OSO stab will have it
-
-2006-01-09 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOFileAbstraction.hpp: add macho_uuid_command
- * src/MachOWriterExecutable.cpp: add UUID load command to generated files
-
-2006-01-09 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderDylib.hpp: no longer keep dylib memory mapped
- * src/ld.cpp: don't track dylib sizes because they are not longer memory mapped
-
-2006-01-05 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: support new relocations
-
-2006-01-05 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderDylib.hpp: support MH_DYLIB_STUB
- * src/MachOReaderRelocatable.hpp: Add Geoff's comp unit extractor
-
-2006-01-05 Nick Kledzik <kledzik@apple.com>
-
- refactor: transform Atom::dontStripName() to getSymbolTableInclusion()
- * src/ld.cpp: pass dyld_stub_binding_helper to writer
- * src/MachOReaderRelocatable.hpp: update synthesized stabs
- Ignore stubs and lazy pointers in .o files
- Support initializers and terminators
- * src/MachOWriterExecutable.hpp: synthesize stubs and lazy pointers as needed
- * ld64.xcodeproj/project.pbxproj: change Release target to build with dwarf
-
-2006-01-03 Eric Christopher <echristo@apple.com>
-
- * src/Options.h (multipleDefinitionsInDylibs): Declare.
- (overridingDefinitionInDependentDylib): Ditto.
- (warnOnMultipleDefinitionsInObjectFiles): Ditto.
- (multiplyDefined): Remove.
- (multiplyDefinedUnused): Ditto.
- (fMultiplyDefined): Ditto.
- (fWarnOnMultiplyDefined): New.
- (fMultiplyDefinedDynamic): Ditto.
- * src/Options.cpp (Options::Options): Initialize above.
- (overridingDefinitionInDependentDylib): New.
- (multipleDefinitionsInDylibs): Ditto.
- (warnOnMultipleDefinitionsInObjectFiles): Ditto.
- (parse): Update comments. Fix parsing of -y option.
- Update error message for -dead_strip. Parse above
- options.
-
-2006-01-02 Nick Kledzik <kledzik@apple.com>
-
- * Refactor: move Atom::writeContent() to Writer
-
-2005-12-23 Nick Kledzik <kledzik@apple.com>
-
- * Reworked, simplify, and document test harness
- * unit-tests/README: Added
-
-2005-12-23 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: fixes for Objective-C
- * unit-tests/test-cases/relocs-objc: Added
-
-2005-12-22 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: fix check that next reloc is pair
- * src/MachOReaderRelocatable.hpp: Add code to synthesize essential stabs from dwarf
-
-2005-12-21 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: Fix parsing of literal sections
- * src/MachOWriterExecutable.hpp: Fix writing of literal sections
- * unit-tests/test-cases/relocs-literals: Added
-
-2005-12-15 Eric Christopher <echristo@apple.com>
-
- * src/Options.h (enum Treatment): New.
- (enum PICTreatment): Delete.
- (enum VersionMin): New.
- (prebind): Declare.
- (macosxVersionMin): Ditto.
- (multiplyDefined): Ditto.
- (multiplyDefinedUnused): Ditto.
- (setVersionMin): Ditto.
- (setPICTreatment): Delete.
- (setReadOnlyRelocTreatment): Ditto.
- (picTreatment): Adjust return type.
- (parseTreatment): New.
- (fPrebind): Ditto.
- (fVersionMin): Ditto.
- (fPICTreatment): Change type.
- (fMultiplyDefined): New.
- (fMultiplyDefinedUnused): Ditto.
- (fLimitUndefinedSymbols): Ditto.
-
- * src/Options.cpp: Fix whitespace. Add comments on options.
- (Options::Options): Add initializers for new variables.
- (Options::prebind): New.
- (Options::macosxVersionMin): Ditto.
- (Options::parseTreatment): Ditto.
- (Options::setVersionMin): Ditto.
- (Options::setReadOnlyRelocTreatment): Delete.
- (Options::setPICTreatment): Ditto.
- (Options::Parse): Update for above. Add comments.
-
-2005-12-15 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: Add comments about dwarf
-
-2005-12-14 Nick Kledzik <kledzik@apple.com>
-
- * src/ELFFileAbstraction.hpp: Added
- * src/ELFReaderRelocatable.hpp: Added
- * Lot of fixes for new architecture
- * Added __OPEN_SOURCE__ to "Preprocessor Macros" to disable new architecture support by default
-
-2005-12-13 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: check for S_ATTR_DEBUG and ignore those sections
- * unit-tests/test-cases/dwarf-ignore: added
-
-2005-12-12 Nick Kledzik <kledzik@apple.com>
-
- * Added test harness and three initial tests:
- relocs-asm, relocs-c, and hello-world
-
-2005-12-12 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOReaderRelocatable.hpp: Massive refactoring:
- Now there are three Atom classes, Chopping into Atoms
- is done on label boundaries or by knowledge of special
- sections, Share lots of ppc/ppc64 code.
- Stabs process code is temporarily disabled.
-
-2005-12-12 Nick Kledzik <kledzik@apple.com>
-
- * src/ObjectDump.cpp: Add command line options: -no_content, -stabs, -no_sort
-
-2005-12-11 Eric Christopher <echristo@apple.com>
-
- * src/Options.cpp: Reformat.
- * src/Options.h: Ditto.
-
-2005-12-07 Eric Christopher <echristo@apple.com>
-
- * src/MachOReaderRelocatable.hpp (Atom::getAlignment):
- When calculating alignment of an Atom, take into account
- the alignment from which we pulled the Atom.
-
-2005-12-06 Nick Kledzik <kledzik@apple.com>
-
- * src/Options.cpp src/Options.h: Add design comments
-
-2005-12-05 Eric Christopher <echristo@apple.com>
-
- * src/ld.cpp (Linker::createWriter): Uncomment ppc64 and
- i386 linkers.
-
-2005-12-05 Eric Christopher <echristo@apple.com>
-
- * ChangeLog: New file.
-
-2005-12-02 Nick Kledzik <kledzik@apple.com>
-
- * src/ObjectFile.h: Add design comments
-
-2005-11-30 Nick Kledzik <kledzik@apple.com>
-
- * Fix uses of __OPEN_SOURCE__
-
-2005-11-28 Nick Kledzik <kledzik@apple.com>
-
- * Refactor Atom to use getDefinitionKind()
-
-2005-11-21 Nick Kledzik <kledzik@apple.com>
-
- * src/MachOWriterExecutable.hpp: don't generate section for commons in -r mode
-
-2005-11-18 Nick Kledzik <kledzik@apple.com>
-
- * x86 tweaks
-
-2005-11-18 Nick Kledzik <kledzik@apple.com>
-
- * src/ObjectDump.cpp: make work with command line arguments
-
-2005-11-18 Nick Kledzik <kledzik@apple.com>
-
- * Massive rework to remove preprocessor conditionals and use templates
-
-2005-11-14 Nick Kledzik <kledzik@apple.com>
-
- * Created new Subversion repository for ld64 from cvs tag ld64-27.2