[lld] r268060 - Fix producing undefined reference to __progname.
Rui Ueyama via llvm-commits
llvm-commits at lists.llvm.org
Fri Apr 29 10:47:18 PDT 2016
This seems to have broken self hosting on Linux. Can you verify?
On Fri, Apr 29, 2016 at 9:34 AM, Rui Ueyama <ruiu at google.com> wrote:
> Please check in the source code of the so file and leave a comment how to
> build it.
>
> On Fri, Apr 29, 2016 at 9:23 AM, Rafael Espindola via llvm-commits <
> llvm-commits at lists.llvm.org> wrote:
>
>> Author: rafael
>> Date: Fri Apr 29 11:23:31 2016
>> New Revision: 268060
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=268060&view=rev
>> Log:
>> Fix producing undefined reference to __progname.
>>
>> We were not producing them if the library had version info.
>>
>> Added:
>> lld/trunk/test/ELF/Inputs/progname-ver.so (with props)
>> Modified:
>> lld/trunk/ELF/InputFiles.cpp
>> lld/trunk/test/ELF/progname.s
>>
>> Modified: lld/trunk/ELF/InputFiles.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/InputFiles.cpp?rev=268060&r1=268059&r2=268060&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/ELF/InputFiles.cpp (original)
>> +++ lld/trunk/ELF/InputFiles.cpp Fri Apr 29 11:23:31 2016
>> @@ -490,6 +490,12 @@ template <class ELFT> void SharedFile<EL
>> uint32_t NumSymbols = std::distance(Syms.begin(), Syms.end());
>> SymbolBodies.reserve(NumSymbols);
>> for (const Elf_Sym &Sym : Syms) {
>> + StringRef Name = check(Sym.getName(this->StringTable));
>> + if (Sym.isUndefined()) {
>> + Undefs.push_back(Name);
>> + continue;
>> + }
>> +
>> unsigned VersymIndex = 0;
>> if (Versym) {
>> VersymIndex = Versym->vs_index;
>> @@ -498,11 +504,7 @@ template <class ELFT> void SharedFile<EL
>> if (VersymIndex == 0 || (VersymIndex & VERSYM_HIDDEN))
>> continue;
>> }
>> - StringRef Name = check(Sym.getName(this->StringTable));
>> - if (Sym.isUndefined())
>> - Undefs.push_back(Name);
>> - else
>> - SymbolBodies.emplace_back(this, Name, Sym, Verdefs[VersymIndex]);
>> + SymbolBodies.emplace_back(this, Name, Sym, Verdefs[VersymIndex]);
>> }
>> }
>>
>>
>> Added: lld/trunk/test/ELF/Inputs/progname-ver.so
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/Inputs/progname-ver.so?rev=268060&view=auto
>>
>> ==============================================================================
>> Binary files lld/trunk/test/ELF/Inputs/progname-ver.so (added) and
>> lld/trunk/test/ELF/Inputs/progname-ver.so Fri Apr 29 11:23:31 2016 differ
>>
>> Propchange: lld/trunk/test/ELF/Inputs/progname-ver.so
>>
>> ------------------------------------------------------------------------------
>> svn:executable = *
>>
>> Modified: lld/trunk/test/ELF/progname.s
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/progname.s?rev=268060&r1=268059&r2=268060&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/ELF/progname.s (original)
>> +++ lld/trunk/test/ELF/progname.s Fri Apr 29 11:23:31 2016
>> @@ -5,6 +5,9 @@
>> // RUN: ld.lld -o %t %t.o %t2.so
>> // RUN: llvm-readobj -dyn-symbols %t | FileCheck %s
>>
>> +// RUN: ld.lld -o %t %t.o %p/Inputs/progname-ver.so
>> +// RUN: llvm-readobj -dyn-symbols %t | FileCheck %s
>> +
>> // CHECK: Name: __progname@
>> // CHECK-NEXT: Value: 0x11000
>> // CHECK-NEXT: Size: 0
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160429/face673d/attachment.html>
More information about the llvm-commits
mailing list