<div dir="ltr">Nice. Thanks!</div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Apr 11, 2016 at 7:24 PM, Rafael Espindola via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: rafael<br>
Date: Mon Apr 11 21:24:43 2016<br>
New Revision: 266037<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=266037&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=266037&view=rev</a><br>
Log:<br>
Devide _gp in the same spot as other mips symbols. NFC.<br>
<br>
The test changes are just because of the symbol order.<br>
<br>
Modified:<br>
    lld/trunk/ELF/Driver.cpp<br>
    lld/trunk/ELF/Writer.cpp<br>
    lld/trunk/test/ELF/duplicate-internal.s<br>
    lld/trunk/test/ELF/mips-dynamic.s<br>
    lld/trunk/test/ELF/mips-got-relocs.s<br>
    lld/trunk/test/ELF/mips-hilo-gp-disp.s<br>
<br>
Modified: lld/trunk/ELF/Driver.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Driver.cpp?rev=266037&r1=266036&r2=266037&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Driver.cpp?rev=266037&r1=266036&r2=266037&view=diff</a><br>
==============================================================================<br>
--- lld/trunk/ELF/Driver.cpp (original)<br>
+++ lld/trunk/ELF/Driver.cpp Mon Apr 11 21:24:43 2016<br>
@@ -415,14 +415,6 @@ template <class ELFT> void LinkerDriver:<br>
       Config->EntrySym = Symtab.addUndefined(S);<br>
   }<br>
<br>
-  if (Config->EMachine == EM_MIPS) {<br>
-    // Define _gp for MIPS. st_value of _gp symbol will be updated by Writer<br>
-    // so that it points to an absolute address which is relative to GOT.<br>
-    // See "Global Data Symbols" in Chapter 6 in the following document:<br>
-    // <a href="ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/mipsabi.pdf" rel="noreferrer" target="_blank">ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/mipsabi.pdf</a><br>
-    ElfSym<ELFT>::MipsGp = Symtab.addAbsolute("_gp", STV_DEFAULT);<br>
-  }<br>
-<br>
   for (std::unique_ptr<InputFile> &F : Files)<br>
     Symtab.addFile(std::move(F));<br>
   if (HasError)<br>
<br>
Modified: lld/trunk/ELF/Writer.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Writer.cpp?rev=266037&r1=266036&r2=266037&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Writer.cpp?rev=266037&r1=266036&r2=266037&view=diff</a><br>
==============================================================================<br>
--- lld/trunk/ELF/Writer.cpp (original)<br>
+++ lld/trunk/ELF/Writer.cpp Mon Apr 11 21:24:43 2016<br>
@@ -928,6 +928,12 @@ OutputSectionFactory<ELFT>::createKey(In<br>
 // the linking result. This function defines such symbols.<br>
 template <class ELFT> void Writer<ELFT>::addReservedSymbols() {<br>
   if (Config->EMachine == EM_MIPS) {<br>
+    // Define _gp for MIPS. st_value of _gp symbol will be updated by Writer<br>
+    // so that it points to an absolute address which is relative to GOT.<br>
+    // See "Global Data Symbols" in Chapter 6 in the following document:<br>
+    // <a href="ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/mipsabi.pdf" rel="noreferrer" target="_blank">ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/mipsabi.pdf</a><br>
+    ElfSym<ELFT>::MipsGp = Symtab.addAbsolute("_gp", STV_DEFAULT);<br>
+<br>
     // On MIPS O32 ABI, _gp_disp is a magic symbol designates offset between<br>
     // start of function and 'gp' pointer into GOT.<br>
     ElfSym<ELFT>::MipsGpDisp = Symtab.addIgnored("_gp_disp");<br>
<br>
Modified: lld/trunk/test/ELF/duplicate-internal.s<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/duplicate-internal.s?rev=266037&r1=266036&r2=266037&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/duplicate-internal.s?rev=266037&r1=266036&r2=266037&view=diff</a><br>
==============================================================================<br>
--- lld/trunk/test/ELF/duplicate-internal.s (original)<br>
+++ lld/trunk/test/ELF/duplicate-internal.s Mon Apr 11 21:24:43 2016<br>
@@ -3,7 +3,7 @@<br>
 # RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o<br>
 # RUN: not ld.lld -shared %t.o -o %t.so 2>&1 | FileCheck %s<br>
<br>
-# CHECK: duplicate symbol: _gp in (internal) and {{.*}}<br>
+# CHECK: duplicate symbol: _gp in {{.*}} and (internal)<br>
<br>
 # REQUIRES: mips<br>
<br>
<br>
Modified: lld/trunk/test/ELF/mips-dynamic.s<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-dynamic.s?rev=266037&r1=266036&r2=266037&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-dynamic.s?rev=266037&r1=266036&r2=266037&view=diff</a><br>
==============================================================================<br>
--- lld/trunk/test/ELF/mips-dynamic.s (original)<br>
+++ lld/trunk/test/ELF/mips-dynamic.s Mon Apr 11 21:24:43 2016<br>
@@ -71,9 +71,9 @@<br>
 # DSO:      ]<br>
 # DSO:      DynamicSymbols [<br>
 # DSO:          Name: @<br>
-# DSO:          Name: _gp@<br>
 # DSO:          Name: __start@<br>
 # DSO:          Name: _foo@<br>
+# DSO:          Name: _gp@<br>
 # DSO:      ]<br>
 # DSO:      DynamicSection [<br>
 # DSO-NEXT:   Tag        Type                 Name/Value<br>
<br>
Modified: lld/trunk/test/ELF/mips-got-relocs.s<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-got-relocs.s?rev=266037&r1=266036&r2=266037&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-got-relocs.s?rev=266037&r1=266036&r2=266037&view=diff</a><br>
==============================================================================<br>
--- lld/trunk/test/ELF/mips-got-relocs.s (original)<br>
+++ lld/trunk/test/ELF/mips-got-relocs.s Mon Apr 11 21:24:43 2016<br>
@@ -47,9 +47,10 @@ v1:<br>
 # EXE_SYM: Sections:<br>
 # EXE_SYM: .got 0000000c 0000000000030000 DATA<br>
 # EXE_SYM: SYMBOL TABLE:<br>
+# EXE_SYM: 00040000 g       .data               00000004 v1<br>
 # EXE_SYM: 00037ff0         *ABS*               00000000 _gp<br>
 #          ^-- .got + GP offset (0x7ff0)<br>
-# EXE_SYM: 00040000 g       .data               00000004 v1<br>
+<br>
<br>
 # EXE_GOT_BE: Contents of section .got:<br>
 # EXE_GOT_BE:  30000 00000000 80000000 00040000<br>
@@ -70,9 +71,9 @@ v1:<br>
 # DSO_SYM: Sections:<br>
 # DSO_SYM: .got 0000000c 0000000000020000 DATA<br>
 # DSO_SYM: SYMBOL TABLE:<br>
+# DSO_SYM: 00030000 g       .data               00000004 v1<br>
 # DSO_SYM: 00027ff0         *ABS*               00000000 _gp<br>
 #          ^-- .got + GP offset (0x7ff0)<br>
-# DSO_SYM: 00030000 g       .data               00000004 v1<br>
<br>
 # DSO_GOT_BE: Contents of section .got:<br>
 # DSO_GOT_BE:  20000 00000000 80000000 00030000<br>
<br>
Modified: lld/trunk/test/ELF/mips-hilo-gp-disp.s<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-hilo-gp-disp.s?rev=266037&r1=266036&r2=266037&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-hilo-gp-disp.s?rev=266037&r1=266036&r2=266037&view=diff</a><br>
==============================================================================<br>
--- lld/trunk/test/ELF/mips-hilo-gp-disp.s (original)<br>
+++ lld/trunk/test/ELF/mips-hilo-gp-disp.s Mon Apr 11 21:24:43 2016<br>
@@ -26,8 +26,8 @@ __start:<br>
<br>
 # EXE: SYMBOL TABLE:<br>
 # EXE: 00020000     .text   00000000 __start<br>
-# EXE: 00037ff0     *ABS*   00000000 _gp<br>
 # EXE: 00020010     .text   00000000 _foo<br>
+# EXE: 00037ff0     *ABS*   00000000 _gp<br>
<br>
 # SO:      Disassembly of section .text:<br>
 # SO-NEXT: __start:<br>
@@ -37,6 +37,6 @@ __start:<br>
 #                                                 ^-- %lo(0x27ff0-0x10004+4)<br>
<br>
 # SO: SYMBOL TABLE:<br>
-# SO: 00027ff0     *ABS*   00000000 _gp<br>
 # SO: 00010000     .text   00000000 __start<br>
 # SO: 00010010     .text   00000000 _foo<br>
+# SO: 00027ff0     *ABS*   00000000 _gp<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div>