Introducing the "linker_weak" linkage type. This will be used for Objective-C
authorBill Wendling <isanbard@gmail.com>
Tue, 29 Jun 2010 21:24:00 +0000 (21:24 +0000)
committerBill Wendling <isanbard@gmail.com>
Tue, 29 Jun 2010 21:24:00 +0000 (21:24 +0000)
commit207855cff9b4811004b9720f28a5bd0adf3784b7
tree341cb2f4392d2d0af87f4cd7b694a87333c47cc7
parent147b7cad2fefa3260e2da8f7cfe31ac07f352ceb
Introducing the "linker_weak" linkage type. This will be used for Objective-C
metadata types which should be marked as "weak", but which the linker will
remove upon final linkage. For example, the "objc_msgSend_fixup_alloc" symbol is
defined like this:

       .globl l_objc_msgSend_fixup_alloc
       .weak_definition l_objc_msgSend_fixup_alloc
       .section __DATA, __objc_msgrefs, coalesced
       .align 3
l_objc_msgSend_fixup_alloc:
        .quad   _objc_msgSend_fixup
        .quad   L_OBJC_METH_VAR_NAME_1

This is different from the "linker_private" linkage type, because it can't have
the metadata defined with ".weak_definition".

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107205 91177308-0d34-0410-b5e6-96231b3b80d8
26 files changed:
bindings/ada/llvm/llvm.ads
docs/LangRef.html
include/llvm-c/Core.h
include/llvm/CodeGen/AsmPrinter.h
include/llvm/CodeGen/MachineFunction.h
include/llvm/GlobalValue.h
include/llvm/MC/MCAsmInfo.h
include/llvm/Target/Mangler.h
lib/AsmParser/LLLexer.cpp
lib/AsmParser/LLParser.cpp
lib/AsmParser/LLToken.h
lib/Bitcode/Reader/BitcodeReader.cpp
lib/Bitcode/Writer/BitcodeWriter.cpp
lib/CodeGen/AsmPrinter/AsmPrinter.cpp
lib/CodeGen/MachineFunction.cpp
lib/CodeGen/TargetLoweringObjectFileImpl.cpp
lib/Linker/LinkModules.cpp
lib/MC/MCAsmInfo.cpp
lib/MC/MCAsmInfoDarwin.cpp
lib/Target/CppBackend/CPPBackend.cpp
lib/Target/Mangler.cpp
lib/Target/XCore/AsmPrinter/XCoreAsmPrinter.cpp
lib/Transforms/IPO/MergeFunctions.cpp
lib/VMCore/AsmWriter.cpp
lib/VMCore/Core.cpp
tools/llvm-nm/llvm-nm.cpp