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