[lld] r265293 - Don't store an Elf_Sym for most symbols.
Rafael EspĂndola via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 5 12:56:52 PDT 2016
Can you open a bug? This is odd, it looks like a local symbol from a .so...
Cheers,
Rafael
On 5 April 2016 at 14:37, Ed Maste <emaste at freebsd.org> wrote:
> On 4 April 2016 at 10:04, Rafael Espindola via llvm-commits
> <llvm-commits at lists.llvm.org> wrote:
>> Author: rafael
>> Date: Mon Apr 4 09:04:16 2016
>> New Revision: 265293
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=265293&view=rev
>> Log:
>> Don't store an Elf_Sym for most symbols.
>>
>> [...]
>> @@ -70,14 +70,21 @@ public:
>> bool isCommon() const { return SymbolKind == DefinedCommonKind; }
>> bool isLazy() const { return SymbolKind == LazyKind; }
>> bool isShared() const { return SymbolKind == SharedKind; }
>> - bool isLocal() const { return IsLocal; }
>> + bool isLocal() const { return Binding == llvm::ELF::STB_LOCAL; }
>> bool isUsedInRegularObj() const { return IsUsedInRegularObj; }
>> bool isPreemptible() const;
>>
>> // Returns the symbol name.
>> - StringRef getName() const { return Name; }
>> + StringRef getName() const {
>> + assert(!isLocal());
>> + return Name;
>> + }
>
> A quick heads-up that the FreeBSD base system lld-as-ld build trips
> over this new assert.
>
> (lldb) frame sel 4
> frame #4: 0x00000000005b1a74 ld`SymbolBody(this=0x00000008068ea140,
> K=SharedKind, Name=StringRef at 0x00007fffffffc798, Binding='\0',
> StOther='\0', Type='\0') + 276 at Symbols.h:134
> 131 : SymbolKind(K), MustBeInDynSym(false), NeedsCopyOrPltAddr(false),
> 132 Type(Type), Binding(Binding), StOther(StOther),
> 133 Name({Name.data(), Name.size()}) {
> -> 134 assert(!isLocal());
> 135 IsUsedInRegularObj =
> 136 K != SharedKind && K != LazyKind && K != DefinedBitcodeKind;
> 137 }
> (lldb) p Name
> (lld::elf::SymbolBody::Str) $1 = (S = "__start_set_kvm_arch", Len = 20)
>
> __start_set_kvm_arch is a generated linker set symbol for the
> set_kvm_arch section from libkvm.so:
>
> [22] set_kvm_arch PROGBITS 0000000000010300 00010300
> 0000000000000058 0000000000000000 WA 0 0 8
More information about the llvm-commits
mailing list