[lld] r221587 - [ELF] Fix values of linker created dynamic variables.

Shankar Easwaran shankare at codeaurora.org
Mon Nov 10 06:55:08 PST 2014


Author: shankare
Date: Mon Nov 10 08:55:07 2014
New Revision: 221587

URL: http://llvm.org/viewvc/llvm-project?rev=221587&view=rev
Log:
[ELF] Fix values of linker created dynamic variables.

The value of _DYNAMIC should be pointing at the start of the .dynamic segment.
This was pointing to the end of the dynamic segment. Similarly the value of
_GLOBAL_OFFSET_TABLE_ was not proper too.

Modified:
    lld/trunk/lib/ReaderWriter/ELF/DefaultLayout.h
    lld/trunk/test/elf/dynamic-segorder.test
    lld/trunk/test/elf/entry.objtxt

Modified: lld/trunk/lib/ReaderWriter/ELF/DefaultLayout.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/DefaultLayout.h?rev=221587&r1=221586&r2=221587&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/DefaultLayout.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/DefaultLayout.h Mon Nov 10 08:55:07 2014
@@ -359,6 +359,9 @@ Layout::SectionOrder DefaultLayout<ELFT>
     return llvm::StringSwitch<Layout::SectionOrder>(name)
         .StartsWith(".init_array", ORDER_INIT_ARRAY)
         .StartsWith(".fini_array", ORDER_FINI_ARRAY)
+        .StartsWith(".dynamic", ORDER_DYNAMIC)
+        .StartsWith(".got", ORDER_GOT)
+        .StartsWith(".got.plt", ORDER_GOT_PLT)
         .Default(ORDER_DATA);
 
   case DefinedAtom::typeZeroFill:

Modified: lld/trunk/test/elf/dynamic-segorder.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/dynamic-segorder.test?rev=221587&r1=221586&r2=221587&view=diff
==============================================================================
--- lld/trunk/test/elf/dynamic-segorder.test (original)
+++ lld/trunk/test/elf/dynamic-segorder.test Mon Nov 10 08:55:07 2014
@@ -12,6 +12,6 @@ CHECK: flags r-x
 CHECK: LOAD
 CHECK: flags rw-
 CHECK: DYNAMIC
-CHECK: flags r--
+CHECK: flags rw-
 CHECK: TLS
 CHECK: flags rw-

Modified: lld/trunk/test/elf/entry.objtxt
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/entry.objtxt?rev=221587&r1=221586&r2=221587&view=diff
==============================================================================
--- lld/trunk/test/elf/entry.objtxt (original)
+++ lld/trunk/test/elf/entry.objtxt Mon Nov 10 08:55:07 2014
@@ -12,7 +12,7 @@
 # RUN: llvm-nm -n %t1 | FileCheck %s
 #
 # CHECK:  004001e0 T main
-# CHECK:  00401080 D _DYNAMIC
+# CHECK:  00401000 D _DYNAMIC
 # CHECK:  00401080 A _end
 # CHECK:  00401080 A end
 # CHECK:           U _entrypoint





More information about the llvm-commits mailing list