[llvm-commits] [llvm] r76385 - in /llvm/trunk: docs/ include/llvm-c/ include/llvm/ include/llvm/Support/ lib/AsmParser/ lib/Bitcode/Reader/ lib/Bitcode/Writer/ lib/CodeGen/ lib/Linker/ lib/Target/ lib/Target/ARM/AsmPrinter/ lib/Target/Alpha/AsmPrinter/ lib/Target/CellSPU/AsmPrinter/ lib/Target/CppBackend/ lib/Target/IA64/AsmPrinter/ lib/Target/MSP430/ lib/Target/Mips/AsmPrinter/ lib/Target/PowerPC/AsmPrinter/ lib/Target/Sparc/AsmPrinter/ lib/Target/SystemZ/AsmPrinter/ lib/Target/X86/AsmPrinter/ lib/Target/XCore/ lib/Tr...
Bill Wendling
isanbard at gmail.com
Sun Jul 19 22:01:43 PDT 2009
On Jul 19, 2009, at 9:29 PM, Duncan Sands wrote:
> Hi Bill,
>
>> Add plumbing for the `linker_private' linkage type. This type is
>> meant for
>> "private" symbols which the assember shouldn't strip, but which the
>> linker may
>> remove after evaluation. This is mostly useful for Objective-C
>> metadata.
>
> is it really necessary to have both "private" and "linker_private"
> linkage? What's the difference between them exactly?
>
My understanding is that "private" allows the assembler to strip the
symbols. But "linker_private" only allows the linker to strip the
symbols (the assembler must assume that they're used). Basically, the
linker uses a bunch of "l_OBJC_*" symbols (as opposed to "L_OBJC_*"
symbols) when performing linking. Yes, it's really the difference
between an 'l' and 'L' prefix on symbols. :-)
-bw
More information about the llvm-commits
mailing list