[lld] r190608 - [lld][LayoutPass] Order the atoms that are in the same chain
Shankar Easwaran
shankare at codeaurora.org
Thu Sep 12 08:43:09 PDT 2013
Author: shankare
Date: Thu Sep 12 10:43:09 2013
New Revision: 190608
URL: http://llvm.org/viewvc/llvm-project?rev=190608&view=rev
Log:
[lld][LayoutPass] Order the atoms that are in the same chain
We need to order atoms that exist in the same chain. This is to make sure that
the command line order is preserved when we emit the atoms to the output file.
Credits: BigCheese for finding the bug.
Adds a test which otherwise would fail.
Added:
lld/trunk/test/elf/X86_64/Inputs/layoutpass/
lld/trunk/test/elf/X86_64/Inputs/layoutpass/1.c
lld/trunk/test/elf/X86_64/Inputs/layoutpass/1.o
lld/trunk/test/elf/X86_64/Inputs/layoutpass/2.c
lld/trunk/test/elf/X86_64/Inputs/layoutpass/2.o
lld/trunk/test/elf/X86_64/Inputs/layoutpass/3.c
lld/trunk/test/elf/X86_64/Inputs/layoutpass/3.o
lld/trunk/test/elf/X86_64/Inputs/layoutpass/lib2.a
lld/trunk/test/elf/X86_64/layoutpass-order.test
Modified:
lld/trunk/lib/Passes/LayoutPass.cpp
lld/trunk/test/elf/Hexagon/dynlib-gotoff.test
lld/trunk/test/elf/X86_64/dontignorezerosize-sections.test
lld/trunk/test/elf/X86_64/multi-weak-syms-order.test
lld/trunk/test/elf/X86_64/nmagic.test
lld/trunk/test/elf/X86_64/omagic.test
lld/trunk/test/elf/X86_64/orderatoms-by-override.test
lld/trunk/test/elf/X86_64/undef.test
lld/trunk/test/elf/check.test
lld/trunk/test/elf/checkrodata.test
lld/trunk/test/elf/dynamic.test
lld/trunk/test/elf/gotpcrel.test
lld/trunk/test/elf/hexagon-quickdata-sort.test
lld/trunk/test/elf/hexagon-quickdata-sortcommon.test
lld/trunk/test/elf/ifunc.test
lld/trunk/test/elf/quickdata.test
lld/trunk/test/elf/tls.test
lld/trunk/test/elf/x86-64-dynamic.test
lld/trunk/test/pecoff/importlib.test
Modified: lld/trunk/lib/Passes/LayoutPass.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Passes/LayoutPass.cpp?rev=190608&r1=190607&r2=190608&view=diff
==============================================================================
--- lld/trunk/lib/Passes/LayoutPass.cpp (original)
+++ lld/trunk/lib/Passes/LayoutPass.cpp Thu Sep 12 10:43:09 2013
@@ -52,22 +52,15 @@ bool LayoutPass::CompareAtoms::operator(
AtomToOrdinalT::const_iterator lPos = _layout._ordinalOverrideMap.find(left);
AtomToOrdinalT::const_iterator rPos = _layout._ordinalOverrideMap.find(right);
AtomToOrdinalT::const_iterator end = _layout._ordinalOverrideMap.end();
- if (lPos != end) {
- if (rPos != end) {
- // both left and right are overridden, so compare overridden ordinals
- if (lPos->second != rPos->second)
- return lPos->second < rPos->second;
- } else {
- // left is overridden and right is not, so left < right
- return true;
- }
- } else {
- if (rPos != end) {
- // right is overridden and left is not, so right < left
- return false;
- } else {
- // neither are overridden,
- // fall into default sorting below
+
+ // Sort atoms by their ordinal overrides only if they fall in the same
+ // chain.
+ const DefinedAtom *leftAtom = _layout._followOnRoots.find(left)->second;
+ const DefinedAtom *rightAtom = _layout._followOnRoots.find(right)->second;
+
+ if (leftAtom == rightAtom) {
+ if ((lPos != end) && (rPos != end)) {
+ return lPos->second < rPos->second;
}
}
@@ -91,8 +84,6 @@ bool LayoutPass::CompareAtoms::operator(
if (leftType != rightType)
return leftType < rightType;
- // TO DO: Sort atoms in customs sections together.
-
// Sort by .o order.
const File *leftFile = &left->file();
const File *rightFile = &right->file();
@@ -393,8 +384,6 @@ void LayoutPass::buildOrdinalOverrideMap
_ordinalOverrideMap[nextAtom] = index++;
}
}
- } else {
- _ordinalOverrideMap[atom] = index++;
}
}
}
Modified: lld/trunk/test/elf/Hexagon/dynlib-gotoff.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/Hexagon/dynlib-gotoff.test?rev=190608&r1=190607&r2=190608&view=diff
==============================================================================
--- lld/trunk/test/elf/Hexagon/dynlib-gotoff.test (original)
+++ lld/trunk/test/elf/Hexagon/dynlib-gotoff.test Thu Sep 12 10:43:09 2013
@@ -3,85 +3,72 @@ RUN: lld -flavor gnu -target hexagon %p/
RUN: -o %t -emit-yaml -shared --noinhibit-exec
RUN: FileCheck -check-prefix=CHECKGOTPLT %s < %t
-CHECKGOTPLT: - ref-name: {{[0-9A-Z]+}}
+ - name: __got0
+CHECKGOTPLT: type: got
+CHECKGOTPLT: content: [ 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00,
+CHECKGOTPLT: 00, 00, 00, 00 ]
+CHECKGOTPLT: alignment: 2^3
+CHECKGOTPLT: section-name: .got.plt
+CHECKGOTPLT: permissions: rw-
+ - name: __got_c
+CHECKGOTPLT: type: got
+CHECKGOTPLT: content: [ 00, 00, 00, 00 ]
CHECKGOTPLT: alignment: 2^2
-CHECKGOTPLT: section-name: .text
+CHECKGOTPLT: section-name: .got
+CHECKGOTPLT: permissions: rw-
CHECKGOTPLT: references:
-CHECKGOTPLT: - kind: layout-after
+CHECKGOTPLT: - kind: R_HEX_GLOB_DAT
CHECKGOTPLT: offset: 0
-CHECKGOTPLT: target: fn2
-CHECKGOTPLT: - name: fn2
-CHECKGOTPLT: scope: global
-CHECKGOTPLT: content: [ 00, C0, 9D, A0, 00, C0, 00, 78, 1E, C0, 1E, 96 ]
+CHECKGOTPLT: target: c
+ - name: __got_shankar
+CHECKGOTPLT: type: got
+CHECKGOTPLT: content: [ 00, 00, 00, 00 ]
CHECKGOTPLT: alignment: 2^2
-CHECKGOTPLT: section-name: .text
-CHECKGOTPLT: - name: fn1
-CHECKGOTPLT: scope: global
-CHECKGOTPLT: content: [ 00, C0, 9D, A0, 00, C0, 00, 78, 1E, C0, 1E, 96 ]
+CHECKGOTPLT: section-name: .got
+CHECKGOTPLT: permissions: rw-
+CHECKGOTPLT: references:
+CHECKGOTPLT: - kind: R_HEX_GLOB_DAT
+CHECKGOTPLT: offset: 0
+CHECKGOTPLT: target: shankar
+ - name: __got_fn
+CHECKGOTPLT: type: got
+CHECKGOTPLT: content: [ 00, 00, 00, 00 ]
CHECKGOTPLT: alignment: 2^2
-CHECKGOTPLT: section-name: .text
-CHECKGOTPLT: - name: fn
-CHECKGOTPLT: scope: global
-CHECKGOTPLT: content: [ 01, C0, 9D, A0, 01, D8, 9D, A1, 00, 40, 00, 00,
-CHECKGOTPLT: 18, C0, 49, 6A, 00, 40, 00, 00, 00, C0, 49, 6A,
-CHECKGOTPLT: 0A, C0, 40, 3C, 00, 40, 00, 00, 00, C0, 49, 6A,
-CHECKGOTPLT: 14, C0, 40, 3C, 00, 40, 00, 00, 00, C0, 98, 91,
-CHECKGOTPLT: 0A, C0, 40, 3C, 00, 40, 00, 00, 00, C0, 98, 91,
-CHECKGOTPLT: 14, C0, 40, 3C, 00, C0, 00, 78, 38, C0, 9D, 91,
-CHECKGOTPLT: 1E, C0, 1E, 96 ]
+CHECKGOTPLT: section-name: .got.plt
+CHECKGOTPLT: permissions: rw-
+CHECKGOTPLT: references:
+CHECKGOTPLT: - kind: R_HEX_JMP_SLOT
+CHECKGOTPLT: offset: 0
+CHECKGOTPLT: target: fn
+CHECKGOTPLT: - kind: R_HEX_32
+CHECKGOTPLT: offset: 0
+CHECKGOTPLT: target: .PLT0
+ - name: __got_fn1
+CHECKGOTPLT: type: got
+CHECKGOTPLT: content: [ 00, 00, 00, 00 ]
CHECKGOTPLT: alignment: 2^2
-CHECKGOTPLT: section-name: .text
+CHECKGOTPLT: section-name: .got.plt
+CHECKGOTPLT: permissions: rw-
CHECKGOTPLT: references:
-CHECKGOTPLT: - kind: R_HEX_B32_PCREL_X
-CHECKGOTPLT: offset: 8
-CHECKGOTPLT: target: _GLOBAL_OFFSET_TABLE_
-CHECKGOTPLT: - kind: R_HEX_6_PCREL_X
-CHECKGOTPLT: offset: 12
-CHECKGOTPLT: target: _GLOBAL_OFFSET_TABLE_
-CHECKGOTPLT: addend: 4
-CHECKGOTPLT: - kind: R_HEX_B32_PCREL_X
-CHECKGOTPLT: offset: 16
-CHECKGOTPLT: target: [[SBSS:[-a-zA-Z0-9_]+]]
-CHECKGOTPLT: - kind: R_HEX_6_PCREL_X
-CHECKGOTPLT: offset: 20
-CHECKGOTPLT: target: [[SBSS]]
-CHECKGOTPLT: addend: 4
-CHECKGOTPLT: - kind: R_HEX_B32_PCREL_X
-CHECKGOTPLT: offset: 28
-CHECKGOTPLT: target: [[SBSS]]
-CHECKGOTPLT: addend: 4
-CHECKGOTPLT: - kind: R_HEX_6_PCREL_X
-CHECKGOTPLT: offset: 32
-CHECKGOTPLT: target: [[SBSS]]
-CHECKGOTPLT: addend: 8
-CHECKGOTPLT: - kind: R_HEX_GOT_32_6_X
-CHECKGOTPLT: offset: 40
- target: __got_c
-CHECKGOTPLT: - kind: R_HEX_GOT_11_X
-CHECKGOTPLT: offset: 44
- target: __got_c
-CHECKGOTPLT: - kind: R_HEX_GOT_32_6_X
-CHECKGOTPLT: offset: 52
- target: __got_shankar
-CHECKGOTPLT: - kind: R_HEX_GOT_11_X
-CHECKGOTPLT: offset: 56
- target: __got_shankar
-CHECKGOTPLT: - name: fn3
-CHECKGOTPLT: scope: global
-CHECKGOTPLT: content: [ 00, C0, 9D, A0, 00, C0, 00, 5A, 00, C0, 00, 5A,
-CHECKGOTPLT: 00, C0, 00, 5A, 00, C0, 00, 78, 1E, C0, 1E, 96 ]
+CHECKGOTPLT: - kind: R_HEX_JMP_SLOT
+CHECKGOTPLT: offset: 0
+CHECKGOTPLT: target: fn1
+CHECKGOTPLT: - kind: R_HEX_32
+CHECKGOTPLT: offset: 0
+CHECKGOTPLT: target: .PLT0
+ - name: __got_fn2
+CHECKGOTPLT: type: got
+CHECKGOTPLT: content: [ 00, 00, 00, 00 ]
CHECKGOTPLT: alignment: 2^2
-CHECKGOTPLT: section-name: .text
+CHECKGOTPLT: section-name: .got.plt
+CHECKGOTPLT: permissions: rw-
CHECKGOTPLT: references:
-CHECKGOTPLT: - kind: R_HEX_B22_PCREL
-CHECKGOTPLT: offset: 4
- target: __plt_fn
-CHECKGOTPLT: - kind: R_HEX_B22_PCREL
-CHECKGOTPLT: offset: 8
- target: __plt_fn1
-CHECKGOTPLT: - kind: R_HEX_B22_PCREL
-CHECKGOTPLT: offset: 12
- target: __plt_fn2
+CHECKGOTPLT: - kind: R_HEX_JMP_SLOT
+CHECKGOTPLT: offset: 0
+CHECKGOTPLT: target: fn2
+CHECKGOTPLT: - kind: R_HEX_32
+CHECKGOTPLT: offset: 0
+CHECKGOTPLT: target: .PLT0
- name: .PLT0
CHECKGOTPLT: type: stub
CHECKGOTPLT: content: [ 00, 40, 00, 00, 1C, C0, 49, 6A, 0E, 42, 9C, E2,
@@ -96,6 +83,7 @@ CHECKGOTPLT: offset: 0
CHECKGOTPLT: - kind: R_HEX_6_PCREL_X
CHECKGOTPLT: offset: 4
target: __got0
+CHECKGOTPLT: addend: 4
- name: __plt_fn
CHECKGOTPLT: type: stub
CHECKGOTPLT: content: [ 00, 40, 00, 00, 0E, C0, 49, 6A, 1C, C0, 8E, 91,
@@ -138,68 +126,3 @@ CHECKGOTPLT: - kind: R_H
CHECKGOTPLT: offset: 4
target: __got_fn2
CHECKGOTPLT: addend: 4
- - name: __got0
-CHECKGOTPLT: type: got
-CHECKGOTPLT: content: [ 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00,
-CHECKGOTPLT: 00, 00, 00, 00 ]
-CHECKGOTPLT: alignment: 2^3
-CHECKGOTPLT: section-name: .got.plt
- - name: __got_c
-CHECKGOTPLT: type: got
-CHECKGOTPLT: content: [ 00, 00, 00, 00 ]
-CHECKGOTPLT: alignment: 2^2
-CHECKGOTPLT: section-name: .got
-CHECKGOTPLT: permissions: rw-
-CHECKGOTPLT: references:
-CHECKGOTPLT: - kind: R_HEX_GLOB_DAT
-CHECKGOTPLT: offset: 0
-CHECKGOTPLT: target: c
- - name: __got_shankar
-CHECKGOTPLT: type: got
-CHECKGOTPLT: content: [ 00, 00, 00, 00 ]
-CHECKGOTPLT: alignment: 2^2
-CHECKGOTPLT: section-name: .got
-CHECKGOTPLT: permissions: rw-
-CHECKGOTPLT: references:
-CHECKGOTPLT: - kind: R_HEX_GLOB_DAT
-CHECKGOTPLT: offset: 0
-CHECKGOTPLT: target: shankar
- - name: __got_fn
-CHECKGOTPLT: type: got
-CHECKGOTPLT: content: [ 00, 00, 00, 00 ]
-CHECKGOTPLT: alignment: 2^2
-CHECKGOTPLT: section-name: .got.plt
-CHECKGOTPLT: permissions: rw-
-CHECKGOTPLT: references:
-CHECKGOTPLT: - kind: R_HEX_JMP_SLOT
-CHECKGOTPLT: offset: 0
-CHECKGOTPLT: target: fn
-CHECKGOTPLT: - kind: R_HEX_32
-CHECKGOTPLT: offset: 0
- target: .PLT0
- - name: __got_fn1
-CHECKGOTPLT: type: got
-CHECKGOTPLT: content: [ 00, 00, 00, 00 ]
-CHECKGOTPLT: alignment: 2^2
-CHECKGOTPLT: section-name: .got.plt
-CHECKGOTPLT: permissions: rw-
-CHECKGOTPLT: references:
-CHECKGOTPLT: - kind: R_HEX_JMP_SLOT
-CHECKGOTPLT: offset: 0
-CHECKGOTPLT: target: fn1
-CHECKGOTPLT: - kind: R_HEX_32
-CHECKGOTPLT: offset: 0
- target: .PLT0
- - name: __got_fn2
-CHECKGOTPLT: type: got
-CHECKGOTPLT: content: [ 00, 00, 00, 00 ]
-CHECKGOTPLT: alignment: 2^2
-CHECKGOTPLT: section-name: .got.plt
-CHECKGOTPLT: permissions: rw-
-CHECKGOTPLT: references:
-CHECKGOTPLT: - kind: R_HEX_JMP_SLOT
-CHECKGOTPLT: offset: 0
-CHECKGOTPLT: target: fn2
-CHECKGOTPLT: - kind: R_HEX_32
-CHECKGOTPLT: offset: 0
- target: .PLT0
Added: lld/trunk/test/elf/X86_64/Inputs/layoutpass/1.c
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/X86_64/Inputs/layoutpass/1.c?rev=190608&view=auto
==============================================================================
--- lld/trunk/test/elf/X86_64/Inputs/layoutpass/1.c (added)
+++ lld/trunk/test/elf/X86_64/Inputs/layoutpass/1.c Thu Sep 12 10:43:09 2013
@@ -0,0 +1,8 @@
+int main() {
+ a();
+ return 0;
+}
+
+int b() {
+ return 0;
+}
Added: lld/trunk/test/elf/X86_64/Inputs/layoutpass/1.o
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/X86_64/Inputs/layoutpass/1.o?rev=190608&view=auto
==============================================================================
Binary files lld/trunk/test/elf/X86_64/Inputs/layoutpass/1.o (added) and lld/trunk/test/elf/X86_64/Inputs/layoutpass/1.o Thu Sep 12 10:43:09 2013 differ
Added: lld/trunk/test/elf/X86_64/Inputs/layoutpass/2.c
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/X86_64/Inputs/layoutpass/2.c?rev=190608&view=auto
==============================================================================
--- lld/trunk/test/elf/X86_64/Inputs/layoutpass/2.c (added)
+++ lld/trunk/test/elf/X86_64/Inputs/layoutpass/2.c Thu Sep 12 10:43:09 2013
@@ -0,0 +1,7 @@
+int a() {
+ return 0;
+}
+
+int c() {
+ return 0;
+}
Added: lld/trunk/test/elf/X86_64/Inputs/layoutpass/2.o
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/X86_64/Inputs/layoutpass/2.o?rev=190608&view=auto
==============================================================================
Binary files lld/trunk/test/elf/X86_64/Inputs/layoutpass/2.o (added) and lld/trunk/test/elf/X86_64/Inputs/layoutpass/2.o Thu Sep 12 10:43:09 2013 differ
Added: lld/trunk/test/elf/X86_64/Inputs/layoutpass/3.c
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/X86_64/Inputs/layoutpass/3.c?rev=190608&view=auto
==============================================================================
--- lld/trunk/test/elf/X86_64/Inputs/layoutpass/3.c (added)
+++ lld/trunk/test/elf/X86_64/Inputs/layoutpass/3.c Thu Sep 12 10:43:09 2013
@@ -0,0 +1,3 @@
+int d() {
+ return 0;
+}
Added: lld/trunk/test/elf/X86_64/Inputs/layoutpass/3.o
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/X86_64/Inputs/layoutpass/3.o?rev=190608&view=auto
==============================================================================
Binary files lld/trunk/test/elf/X86_64/Inputs/layoutpass/3.o (added) and lld/trunk/test/elf/X86_64/Inputs/layoutpass/3.o Thu Sep 12 10:43:09 2013 differ
Added: lld/trunk/test/elf/X86_64/Inputs/layoutpass/lib2.a
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/X86_64/Inputs/layoutpass/lib2.a?rev=190608&view=auto
==============================================================================
Binary files lld/trunk/test/elf/X86_64/Inputs/layoutpass/lib2.a (added) and lld/trunk/test/elf/X86_64/Inputs/layoutpass/lib2.a Thu Sep 12 10:43:09 2013 differ
Modified: lld/trunk/test/elf/X86_64/dontignorezerosize-sections.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/X86_64/dontignorezerosize-sections.test?rev=190608&r1=190607&r2=190608&view=diff
==============================================================================
--- lld/trunk/test/elf/X86_64/dontignorezerosize-sections.test (original)
+++ lld/trunk/test/elf/X86_64/dontignorezerosize-sections.test Thu Sep 12 10:43:09 2013
@@ -3,9 +3,9 @@ RUN: lld -flavor gnu -target x86_64-linu
RUN: --noinhibit-exec -emit-yaml -o %t
RUN: FileCheck %s < %t
-CHECK: section-name: .text
CHECK: section-name: .data
CHECK: references:
CHECK: - kind: R_X86_64_16
CHECK: offset: 0
CHECK: target: L000
+CHECK: section-name: .text
Added: lld/trunk/test/elf/X86_64/layoutpass-order.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/X86_64/layoutpass-order.test?rev=190608&view=auto
==============================================================================
--- lld/trunk/test/elf/X86_64/layoutpass-order.test (added)
+++ lld/trunk/test/elf/X86_64/layoutpass-order.test Thu Sep 12 10:43:09 2013
@@ -0,0 +1,14 @@
+# This test checks that we follow the command line order of layouting
+# symbols in the output file
+
+RUN: lld -flavor gnu -target x86_64 %p/Inputs/layoutpass/1.o \
+RUN: %p/Inputs/layoutpass/lib2.a %p/Inputs/layoutpass/3.o -o %t \
+RUN: --noinhibit-exec -static
+
+RUN: llvm-nm -n %t | FileCheck -check-prefix=SYMBOLSORDER %s
+
+SYMBOLSORDER: 004000b0 T main
+SYMBOLSORDER: 004000c5 T b
+SYMBOLSORDER: 004000d0 T a
+SYMBOLSORDER: 004000db T c
+SYMBOLSORDER: 004000e8 T d
Modified: lld/trunk/test/elf/X86_64/multi-weak-syms-order.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/X86_64/multi-weak-syms-order.test?rev=190608&r1=190607&r2=190608&view=diff
==============================================================================
--- lld/trunk/test/elf/X86_64/multi-weak-syms-order.test (original)
+++ lld/trunk/test/elf/X86_64/multi-weak-syms-order.test Thu Sep 12 10:43:09 2013
@@ -10,8 +10,4 @@ WEAKORDER: {{[0-9a-f]+}} T g
WEAKORDER: {{[0-9a-f]+}} T main
WEAKATOMSORDER: - name: f
-WEAKATOMSORDER: - ref-name: {{[A-Z0-9]+}}
WEAKATOMSORDER: - name: g
-WEAKATOMSORDER: - ref-name: {{[A-Z0-9]+}}
-
-
Modified: lld/trunk/test/elf/X86_64/nmagic.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/X86_64/nmagic.test?rev=190608&r1=190607&r2=190608&view=diff
==============================================================================
--- lld/trunk/test/elf/X86_64/nmagic.test (original)
+++ lld/trunk/test/elf/X86_64/nmagic.test Thu Sep 12 10:43:09 2013
@@ -6,207 +6,71 @@ RUN: --noinhibit-exec -o %t --nmagic -st
RUN: llvm-readobj -sections %t | FileCheck -check-prefix=NMAGICSECTIONS %s
RUN: llvm-readobj -program-headers %t | FileCheck -check-prefix=NMAGICPROGRAMHEADERS %s
-NMAGICSECTIONS: Sections [
NMAGICSECTIONS: Section {
NMAGICSECTIONS: Index: 0
NMAGICSECTIONS: Name: (0)
NMAGICSECTIONS: Type: SHT_NULL (0x0)
-NMAGICSECTIONS: Flags [ (0x0)
-NMAGICSECTIONS: ]
-NMAGICSECTIONS: Address: 0x0
-NMAGICSECTIONS: Offset: 0x0
-NMAGICSECTIONS: Size: 0
-NMAGICSECTIONS: Link: 0
-NMAGICSECTIONS: Info: 0
-NMAGICSECTIONS: AddressAlignment: 0
-NMAGICSECTIONS: EntrySize: 0
NMAGICSECTIONS: }
NMAGICSECTIONS: Section {
NMAGICSECTIONS: Index: 1
-NMAGICSECTIONS: Name: .text (1)
+NMAGICSECTIONS: Name: .note.GNU-stack (1)
NMAGICSECTIONS: Type: SHT_PROGBITS (0x1)
-NMAGICSECTIONS: Flags [ (0x6)
-NMAGICSECTIONS: SHF_ALLOC (0x2)
-NMAGICSECTIONS: SHF_EXECINSTR (0x4)
-NMAGICSECTIONS: ]
-NMAGICSECTIONS: Address: 0x4000B0
-NMAGICSECTIONS: Offset: 0xB0
-NMAGICSECTIONS: Size: 11
-NMAGICSECTIONS: Link: 0
-NMAGICSECTIONS: Info: 0
-NMAGICSECTIONS: AddressAlignment: 4
-NMAGICSECTIONS: EntrySize: 0
NMAGICSECTIONS: }
NMAGICSECTIONS: Section {
NMAGICSECTIONS: Index: 2
-NMAGICSECTIONS: Name: .note.GNU-stack (7)
+NMAGICSECTIONS: Name: .text (17)
NMAGICSECTIONS: Type: SHT_PROGBITS (0x1)
-NMAGICSECTIONS: Flags [ (0x2)
-NMAGICSECTIONS: SHF_ALLOC (0x2)
-NMAGICSECTIONS: ]
-NMAGICSECTIONS: Address: 0x4000BB
-NMAGICSECTIONS: Offset: 0xBB
-NMAGICSECTIONS: Size: 0
-NMAGICSECTIONS: Link: 0
-NMAGICSECTIONS: Info: 0
-NMAGICSECTIONS: AddressAlignment: 1
-NMAGICSECTIONS: EntrySize: 0
NMAGICSECTIONS: }
NMAGICSECTIONS: Section {
NMAGICSECTIONS: Index: 3
NMAGICSECTIONS: Name: .comment (23)
NMAGICSECTIONS: Type: SHT_PROGBITS (0x1)
-NMAGICSECTIONS: Flags [ (0x2)
-NMAGICSECTIONS: SHF_ALLOC (0x2)
-NMAGICSECTIONS: ]
-NMAGICSECTIONS: Address: 0x4000BB
-NMAGICSECTIONS: Offset: 0xBB
-NMAGICSECTIONS: Size: 43
-NMAGICSECTIONS: Link: 0
-NMAGICSECTIONS: Info: 0
-NMAGICSECTIONS: AddressAlignment: 1
-NMAGICSECTIONS: EntrySize: 0
NMAGICSECTIONS: }
NMAGICSECTIONS: Section {
NMAGICSECTIONS: Index: 4
NMAGICSECTIONS: Name: .eh_frame (32)
NMAGICSECTIONS: Type: SHT_PROGBITS (0x1)
-NMAGICSECTIONS: Flags [ (0x2)
-NMAGICSECTIONS: SHF_ALLOC (0x2)
-NMAGICSECTIONS: ]
-NMAGICSECTIONS: Address: 0x4000E8
-NMAGICSECTIONS: Offset: 0xE8
-NMAGICSECTIONS: Size: 56
-NMAGICSECTIONS: Link: 0
-NMAGICSECTIONS: Info: 0
-NMAGICSECTIONS: AddressAlignment: 8
-NMAGICSECTIONS: EntrySize: 0
NMAGICSECTIONS: }
NMAGICSECTIONS: Section {
NMAGICSECTIONS: Index: 5
NMAGICSECTIONS: Name: .tdata (42)
NMAGICSECTIONS: Type: SHT_PROGBITS (0x1)
-NMAGICSECTIONS: Flags [ (0x403)
-NMAGICSECTIONS: SHF_ALLOC (0x2)
-NMAGICSECTIONS: SHF_TLS (0x400)
-NMAGICSECTIONS: SHF_WRITE (0x1)
-NMAGICSECTIONS: ]
-NMAGICSECTIONS: Address: 0x401000
-NMAGICSECTIONS: Offset: 0x1000
-NMAGICSECTIONS: Size: 4
-NMAGICSECTIONS: Link: 0
-NMAGICSECTIONS: Info: 0
-NMAGICSECTIONS: AddressAlignment: 4
-NMAGICSECTIONS: EntrySize: 0
NMAGICSECTIONS: }
NMAGICSECTIONS: Section {
NMAGICSECTIONS: Index: 6
NMAGICSECTIONS: Name: .tbss (49)
NMAGICSECTIONS: Type: SHT_NOBITS (0x8)
-NMAGICSECTIONS: Flags [ (0x403)
-NMAGICSECTIONS: SHF_ALLOC (0x2)
-NMAGICSECTIONS: SHF_TLS (0x400)
-NMAGICSECTIONS: SHF_WRITE (0x1)
-NMAGICSECTIONS: ]
-NMAGICSECTIONS: Address: 0x401004
-NMAGICSECTIONS: Offset: 0x1004
-NMAGICSECTIONS: Size: 8
-NMAGICSECTIONS: Link: 0
-NMAGICSECTIONS: Info: 0
-NMAGICSECTIONS: AddressAlignment: 4
-NMAGICSECTIONS: EntrySize: 0
NMAGICSECTIONS: }
NMAGICSECTIONS: Section {
NMAGICSECTIONS: Index: 7
NMAGICSECTIONS: Name: .got.plt (55)
NMAGICSECTIONS: Type: SHT_PROGBITS (0x1)
-NMAGICSECTIONS: Flags [ (0x3)
-NMAGICSECTIONS: SHF_ALLOC (0x2)
-NMAGICSECTIONS: SHF_WRITE (0x1)
-NMAGICSECTIONS: ]
-NMAGICSECTIONS: Address: 0x401008
-NMAGICSECTIONS: Offset: 0x1008
-NMAGICSECTIONS: Size: 0
-NMAGICSECTIONS: Link: 0
-NMAGICSECTIONS: Info: 0
-NMAGICSECTIONS: AddressAlignment: 8
-NMAGICSECTIONS: EntrySize: 0
NMAGICSECTIONS: }
NMAGICSECTIONS: Section {
NMAGICSECTIONS: Index: 8
NMAGICSECTIONS: Name: .data (64)
NMAGICSECTIONS: Type: SHT_PROGBITS (0x1)
-NMAGICSECTIONS: Flags [ (0x3)
-NMAGICSECTIONS: SHF_ALLOC (0x2)
-NMAGICSECTIONS: SHF_WRITE (0x1)
-NMAGICSECTIONS: ]
-NMAGICSECTIONS: Address: 0x401008
-NMAGICSECTIONS: Offset: 0x1008
-NMAGICSECTIONS: Size: 4
-NMAGICSECTIONS: Link: 0
-NMAGICSECTIONS: Info: 0
-NMAGICSECTIONS: AddressAlignment: 4
-NMAGICSECTIONS: EntrySize: 0
NMAGICSECTIONS: }
NMAGICSECTIONS: Section {
NMAGICSECTIONS: Index: 9
NMAGICSECTIONS: Name: .bss (70)
NMAGICSECTIONS: Type: SHT_NOBITS (0x8)
-NMAGICSECTIONS: Flags [ (0x3)
-NMAGICSECTIONS: SHF_ALLOC (0x2)
-NMAGICSECTIONS: SHF_WRITE (0x1)
-NMAGICSECTIONS: ]
-NMAGICSECTIONS: Address: 0x40100C
-NMAGICSECTIONS: Offset: 0x100C
-NMAGICSECTIONS: Size: 0
-NMAGICSECTIONS: Link: 0
-NMAGICSECTIONS: Info: 0
-NMAGICSECTIONS: AddressAlignment: 4
-NMAGICSECTIONS: EntrySize: 0
NMAGICSECTIONS: }
NMAGICSECTIONS: Section {
NMAGICSECTIONS: Index: 10
NMAGICSECTIONS: Name: .shstrtab (75)
NMAGICSECTIONS: Type: SHT_STRTAB (0x3)
-NMAGICSECTIONS: Flags [ (0x0)
-NMAGICSECTIONS: ]
-NMAGICSECTIONS: Address: 0x0
-NMAGICSECTIONS: Offset: 0x100C
-NMAGICSECTIONS: Size: 101
-NMAGICSECTIONS: Link: 0
-NMAGICSECTIONS: Info: 0
-NMAGICSECTIONS: AddressAlignment: 1
-NMAGICSECTIONS: EntrySize: 0
NMAGICSECTIONS: }
NMAGICSECTIONS: Section {
NMAGICSECTIONS: Index: 11
NMAGICSECTIONS: Name: .symtab (85)
NMAGICSECTIONS: Type: SHT_SYMTAB (0x2)
-NMAGICSECTIONS: Flags [ (0x0)
-NMAGICSECTIONS: ]
-NMAGICSECTIONS: Address: 0x0
-NMAGICSECTIONS: Offset: 0x1078
-NMAGICSECTIONS: Size: 528
-NMAGICSECTIONS: Link: 12
-NMAGICSECTIONS: Info: 2
-NMAGICSECTIONS: AddressAlignment: 8
-NMAGICSECTIONS: EntrySize: 24
NMAGICSECTIONS: }
NMAGICSECTIONS: Section {
NMAGICSECTIONS: Index: 12
NMAGICSECTIONS: Name: .strtab (93)
NMAGICSECTIONS: Type: SHT_STRTAB (0x3)
-NMAGICSECTIONS: Flags [ (0x0)
-NMAGICSECTIONS: ]
-NMAGICSECTIONS: Address: 0x0
-NMAGICSECTIONS: Offset: 0x1288
-NMAGICSECTIONS: Size: 246
-NMAGICSECTIONS: Link: 0
-NMAGICSECTIONS: Info: 0
-NMAGICSECTIONS: AddressAlignment: 1
-NMAGICSECTIONS: EntrySize: 0
NMAGICSECTIONS: }
-NMAGICSECTIONS: ]
NMAGICPROGRAMHEADERS: ProgramHeaders [
NMAGICPROGRAMHEADERS: ProgramHeader {
Modified: lld/trunk/test/elf/X86_64/omagic.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/X86_64/omagic.test?rev=190608&r1=190607&r2=190608&view=diff
==============================================================================
--- lld/trunk/test/elf/X86_64/omagic.test (original)
+++ lld/trunk/test/elf/X86_64/omagic.test Thu Sep 12 10:43:09 2013
@@ -6,207 +6,205 @@ RUN: --noinhibit-exec -o %t --omagic -st
RUN: llvm-readobj -sections %t | FileCheck -check-prefix=OMAGICSECTIONS %s
RUN: llvm-readobj -program-headers %t | FileCheck -check-prefix=OMAGICPROGRAMHEADERS %s
-OMAGICSECTIONS: Sections [
-OMAGICSECTIONS: Section {
-OMAGICSECTIONS: Index: 0
-OMAGICSECTIONS: Name: (0)
-OMAGICSECTIONS: Type: SHT_NULL (0x0)
-OMAGICSECTIONS: Flags [ (0x0)
-OMAGICSECTIONS: ]
-OMAGICSECTIONS: Address: 0x0
-OMAGICSECTIONS: Offset: 0x0
-OMAGICSECTIONS: Size: 0
-OMAGICSECTIONS: Link: 0
-OMAGICSECTIONS: Info: 0
-OMAGICSECTIONS: AddressAlignment: 0
-OMAGICSECTIONS: EntrySize: 0
-OMAGICSECTIONS: }
-OMAGICSECTIONS: Section {
-OMAGICSECTIONS: Index: 1
-OMAGICSECTIONS: Name: .text (1)
-OMAGICSECTIONS: Type: SHT_PROGBITS (0x1)
-OMAGICSECTIONS: Flags [ (0x6)
-OMAGICSECTIONS: SHF_ALLOC (0x2)
-OMAGICSECTIONS: SHF_EXECINSTR (0x4)
-OMAGICSECTIONS: ]
-OMAGICSECTIONS: Address: 0x4000B0
-OMAGICSECTIONS: Offset: 0xB0
-OMAGICSECTIONS: Size: 11
-OMAGICSECTIONS: Link: 0
-OMAGICSECTIONS: Info: 0
-OMAGICSECTIONS: AddressAlignment: 4
-OMAGICSECTIONS: EntrySize: 0
-OMAGICSECTIONS: }
-OMAGICSECTIONS: Section {
-OMAGICSECTIONS: Index: 2
-OMAGICSECTIONS: Name: .note.GNU-stack (7)
-OMAGICSECTIONS: Type: SHT_PROGBITS (0x1)
-OMAGICSECTIONS: Flags [ (0x2)
-OMAGICSECTIONS: SHF_ALLOC (0x2)
-OMAGICSECTIONS: ]
-OMAGICSECTIONS: Address: 0x4000BB
-OMAGICSECTIONS: Offset: 0xBB
-OMAGICSECTIONS: Size: 0
-OMAGICSECTIONS: Link: 0
-OMAGICSECTIONS: Info: 0
-OMAGICSECTIONS: AddressAlignment: 1
-OMAGICSECTIONS: EntrySize: 0
-OMAGICSECTIONS: }
-OMAGICSECTIONS: Section {
-OMAGICSECTIONS: Index: 3
-OMAGICSECTIONS: Name: .comment (23)
-OMAGICSECTIONS: Type: SHT_PROGBITS (0x1)
-OMAGICSECTIONS: Flags [ (0x2)
-OMAGICSECTIONS: SHF_ALLOC (0x2)
-OMAGICSECTIONS: ]
-OMAGICSECTIONS: Address: 0x4000BB
-OMAGICSECTIONS: Offset: 0xBB
-OMAGICSECTIONS: Size: 43
-OMAGICSECTIONS: Link: 0
-OMAGICSECTIONS: Info: 0
-OMAGICSECTIONS: AddressAlignment: 1
-OMAGICSECTIONS: EntrySize: 0
-OMAGICSECTIONS: }
-OMAGICSECTIONS: Section {
-OMAGICSECTIONS: Index: 4
-OMAGICSECTIONS: Name: .eh_frame (32)
-OMAGICSECTIONS: Type: SHT_PROGBITS (0x1)
-OMAGICSECTIONS: Flags [ (0x2)
-OMAGICSECTIONS: SHF_ALLOC (0x2)
-OMAGICSECTIONS: ]
-OMAGICSECTIONS: Address: 0x4000E8
-OMAGICSECTIONS: Offset: 0xE8
-OMAGICSECTIONS: Size: 56
-OMAGICSECTIONS: Link: 0
-OMAGICSECTIONS: Info: 0
-OMAGICSECTIONS: AddressAlignment: 8
-OMAGICSECTIONS: EntrySize: 0
-OMAGICSECTIONS: }
-OMAGICSECTIONS: Section {
-OMAGICSECTIONS: Index: 5
-OMAGICSECTIONS: Name: .tdata (42)
-OMAGICSECTIONS: Type: SHT_PROGBITS (0x1)
-OMAGICSECTIONS: Flags [ (0x403)
-OMAGICSECTIONS: SHF_ALLOC (0x2)
-OMAGICSECTIONS: SHF_TLS (0x400)
-OMAGICSECTIONS: SHF_WRITE (0x1)
-OMAGICSECTIONS: ]
-OMAGICSECTIONS: Address: 0x400120
-OMAGICSECTIONS: Offset: 0x120
-OMAGICSECTIONS: Size: 4
-OMAGICSECTIONS: Link: 0
-OMAGICSECTIONS: Info: 0
-OMAGICSECTIONS: AddressAlignment: 4
-OMAGICSECTIONS: EntrySize: 0
-OMAGICSECTIONS: }
-OMAGICSECTIONS: Section {
-OMAGICSECTIONS: Index: 6
-OMAGICSECTIONS: Name: .tbss (49)
-OMAGICSECTIONS: Type: SHT_NOBITS (0x8)
-OMAGICSECTIONS: Flags [ (0x403)
-OMAGICSECTIONS: SHF_ALLOC (0x2)
-OMAGICSECTIONS: SHF_TLS (0x400)
-OMAGICSECTIONS: SHF_WRITE (0x1)
-OMAGICSECTIONS: ]
-OMAGICSECTIONS: Address: 0x400124
-OMAGICSECTIONS: Offset: 0x124
-OMAGICSECTIONS: Size: 8
-OMAGICSECTIONS: Link: 0
-OMAGICSECTIONS: Info: 0
-OMAGICSECTIONS: AddressAlignment: 4
-OMAGICSECTIONS: EntrySize: 0
-OMAGICSECTIONS: }
-OMAGICSECTIONS: Section {
-OMAGICSECTIONS: Index: 7
-OMAGICSECTIONS: Name: .got.plt (55)
-OMAGICSECTIONS: Type: SHT_PROGBITS (0x1)
-OMAGICSECTIONS: Flags [ (0x3)
-OMAGICSECTIONS: SHF_ALLOC (0x2)
-OMAGICSECTIONS: SHF_WRITE (0x1)
-OMAGICSECTIONS: ]
-OMAGICSECTIONS: Address: 0x400128
-OMAGICSECTIONS: Offset: 0x128
-OMAGICSECTIONS: Size: 0
-OMAGICSECTIONS: Link: 0
-OMAGICSECTIONS: Info: 0
-OMAGICSECTIONS: AddressAlignment: 8
-OMAGICSECTIONS: EntrySize: 0
-OMAGICSECTIONS: }
-OMAGICSECTIONS: Section {
-OMAGICSECTIONS: Index: 8
-OMAGICSECTIONS: Name: .data (64)
-OMAGICSECTIONS: Type: SHT_PROGBITS (0x1)
-OMAGICSECTIONS: Flags [ (0x3)
-OMAGICSECTIONS: SHF_ALLOC (0x2)
-OMAGICSECTIONS: SHF_WRITE (0x1)
-OMAGICSECTIONS: ]
-OMAGICSECTIONS: Address: 0x400128
-OMAGICSECTIONS: Offset: 0x128
-OMAGICSECTIONS: Size: 4
-OMAGICSECTIONS: Link: 0
-OMAGICSECTIONS: Info: 0
-OMAGICSECTIONS: AddressAlignment: 4
-OMAGICSECTIONS: EntrySize: 0
-OMAGICSECTIONS: }
-OMAGICSECTIONS: Section {
-OMAGICSECTIONS: Index: 9
-OMAGICSECTIONS: Name: .bss (70)
-OMAGICSECTIONS: Type: SHT_NOBITS (0x8)
-OMAGICSECTIONS: Flags [ (0x3)
-OMAGICSECTIONS: SHF_ALLOC (0x2)
-OMAGICSECTIONS: SHF_WRITE (0x1)
-OMAGICSECTIONS: ]
-OMAGICSECTIONS: Address: 0x40012C
-OMAGICSECTIONS: Offset: 0x12C
-OMAGICSECTIONS: Size: 0
-OMAGICSECTIONS: Link: 0
-OMAGICSECTIONS: Info: 0
-OMAGICSECTIONS: AddressAlignment: 4
-OMAGICSECTIONS: EntrySize: 0
-OMAGICSECTIONS: }
-OMAGICSECTIONS: Section {
-OMAGICSECTIONS: Index: 10
-OMAGICSECTIONS: Name: .shstrtab (75)
-OMAGICSECTIONS: Type: SHT_STRTAB (0x3)
-OMAGICSECTIONS: Flags [ (0x0)
-OMAGICSECTIONS: ]
-OMAGICSECTIONS: Address: 0x0
-OMAGICSECTIONS: Offset: 0x12C
-OMAGICSECTIONS: Size: 101
-OMAGICSECTIONS: Link: 0
-OMAGICSECTIONS: Info: 0
-OMAGICSECTIONS: AddressAlignment: 1
-OMAGICSECTIONS: EntrySize: 0
-OMAGICSECTIONS: }
-OMAGICSECTIONS: Section {
-OMAGICSECTIONS: Index: 11
-OMAGICSECTIONS: Name: .symtab (85)
-OMAGICSECTIONS: Type: SHT_SYMTAB (0x2)
-OMAGICSECTIONS: Flags [ (0x0)
-OMAGICSECTIONS: ]
-OMAGICSECTIONS: Address: 0x0
-OMAGICSECTIONS: Offset: 0x198
-OMAGICSECTIONS: Size: 528
-OMAGICSECTIONS: Link: 12
-OMAGICSECTIONS: Info: 2
-OMAGICSECTIONS: AddressAlignment: 8
-OMAGICSECTIONS: EntrySize: 24
-OMAGICSECTIONS: }
-OMAGICSECTIONS: Section {
-OMAGICSECTIONS: Index: 12
-OMAGICSECTIONS: Name: .strtab (93)
-OMAGICSECTIONS: Type: SHT_STRTAB (0x3)
-OMAGICSECTIONS: Flags [ (0x0)
-OMAGICSECTIONS: ]
-OMAGICSECTIONS: Address: 0x0
-OMAGICSECTIONS: Offset: 0x3A8
-OMAGICSECTIONS: Size: 246
-OMAGICSECTIONS: Link: 0
-OMAGICSECTIONS: Info: 0
-OMAGICSECTIONS: AddressAlignment: 1
-OMAGICSECTIONS: EntrySize: 0
-OMAGICSECTIONS: }
-OMAGICSECTIONS: ]
+OMAGICSECTIONS: Section {
+OMAGICSECTIONS: Index: 0
+OMAGICSECTIONS: Name: (0)
+OMAGICSECTIONS: Type: SHT_NULL (0x0)
+OMAGICSECTIONS: Flags [ (0x0)
+OMAGICSECTIONS: ]
+OMAGICSECTIONS: Address: 0x0
+OMAGICSECTIONS: Offset: 0x0
+OMAGICSECTIONS: Size: 0
+OMAGICSECTIONS: Link: 0
+OMAGICSECTIONS: Info: 0
+OMAGICSECTIONS: AddressAlignment: 0
+OMAGICSECTIONS: EntrySize: 0
+OMAGICSECTIONS: }
+OMAGICSECTIONS: Section {
+OMAGICSECTIONS: Index: 1
+OMAGICSECTIONS: Name: .note.GNU-stack (1)
+OMAGICSECTIONS: Type: SHT_PROGBITS (0x1)
+OMAGICSECTIONS: Flags [ (0x2)
+OMAGICSECTIONS: SHF_ALLOC (0x2)
+OMAGICSECTIONS: ]
+OMAGICSECTIONS: Address: 0x4000B0
+OMAGICSECTIONS: Offset: 0xB0
+OMAGICSECTIONS: Size: 0
+OMAGICSECTIONS: Link: 0
+OMAGICSECTIONS: Info: 0
+OMAGICSECTIONS: AddressAlignment: 1
+OMAGICSECTIONS: EntrySize: 0
+OMAGICSECTIONS: }
+OMAGICSECTIONS: Section {
+OMAGICSECTIONS: Index: 2
+OMAGICSECTIONS: Name: .text (17)
+OMAGICSECTIONS: Type: SHT_PROGBITS (0x1)
+OMAGICSECTIONS: Flags [ (0x6)
+OMAGICSECTIONS: SHF_ALLOC (0x2)
+OMAGICSECTIONS: SHF_EXECINSTR (0x4)
+OMAGICSECTIONS: ]
+OMAGICSECTIONS: Address: 0x4000B0
+OMAGICSECTIONS: Offset: 0xB0
+OMAGICSECTIONS: Size: 11
+OMAGICSECTIONS: Link: 0
+OMAGICSECTIONS: Info: 0
+OMAGICSECTIONS: AddressAlignment: 4
+OMAGICSECTIONS: EntrySize: 0
+OMAGICSECTIONS: }
+OMAGICSECTIONS: Section {
+OMAGICSECTIONS: Index: 3
+OMAGICSECTIONS: Name: .comment (23)
+OMAGICSECTIONS: Type: SHT_PROGBITS (0x1)
+OMAGICSECTIONS: Flags [ (0x2)
+OMAGICSECTIONS: SHF_ALLOC (0x2)
+OMAGICSECTIONS: ]
+OMAGICSECTIONS: Address: 0x4000BB
+OMAGICSECTIONS: Offset: 0xBB
+OMAGICSECTIONS: Size: 43
+OMAGICSECTIONS: Link: 0
+OMAGICSECTIONS: Info: 0
+OMAGICSECTIONS: AddressAlignment: 1
+OMAGICSECTIONS: EntrySize: 0
+OMAGICSECTIONS: }
+OMAGICSECTIONS: Section {
+OMAGICSECTIONS: Index: 4
+OMAGICSECTIONS: Name: .eh_frame (32)
+OMAGICSECTIONS: Type: SHT_PROGBITS (0x1)
+OMAGICSECTIONS: Flags [ (0x2)
+OMAGICSECTIONS: SHF_ALLOC (0x2)
+OMAGICSECTIONS: ]
+OMAGICSECTIONS: Address: 0x4000E8
+OMAGICSECTIONS: Offset: 0xE8
+OMAGICSECTIONS: Size: 56
+OMAGICSECTIONS: Link: 0
+OMAGICSECTIONS: Info: 0
+OMAGICSECTIONS: AddressAlignment: 8
+OMAGICSECTIONS: EntrySize: 0
+OMAGICSECTIONS: }
+OMAGICSECTIONS: Section {
+OMAGICSECTIONS: Index: 5
+OMAGICSECTIONS: Name: .tdata (42)
+OMAGICSECTIONS: Type: SHT_PROGBITS (0x1)
+OMAGICSECTIONS: Flags [ (0x403)
+OMAGICSECTIONS: SHF_ALLOC (0x2)
+OMAGICSECTIONS: SHF_TLS (0x400)
+OMAGICSECTIONS: SHF_WRITE (0x1)
+OMAGICSECTIONS: ]
+OMAGICSECTIONS: Address: 0x400120
+OMAGICSECTIONS: Offset: 0x120
+OMAGICSECTIONS: Size: 4
+OMAGICSECTIONS: Link: 0
+OMAGICSECTIONS: Info: 0
+OMAGICSECTIONS: AddressAlignment: 4
+OMAGICSECTIONS: EntrySize: 0
+OMAGICSECTIONS: }
+OMAGICSECTIONS: Section {
+OMAGICSECTIONS: Index: 6
+OMAGICSECTIONS: Name: .tbss (49)
+OMAGICSECTIONS: Type: SHT_NOBITS (0x8)
+OMAGICSECTIONS: Flags [ (0x403)
+OMAGICSECTIONS: SHF_ALLOC (0x2)
+OMAGICSECTIONS: SHF_TLS (0x400)
+OMAGICSECTIONS: SHF_WRITE (0x1)
+OMAGICSECTIONS: ]
+OMAGICSECTIONS: Address: 0x400124
+OMAGICSECTIONS: Offset: 0x124
+OMAGICSECTIONS: Size: 8
+OMAGICSECTIONS: Link: 0
+OMAGICSECTIONS: Info: 0
+OMAGICSECTIONS: AddressAlignment: 4
+OMAGICSECTIONS: EntrySize: 0
+OMAGICSECTIONS: }
+OMAGICSECTIONS: Section {
+OMAGICSECTIONS: Index: 7
+OMAGICSECTIONS: Name: .got.plt (55)
+OMAGICSECTIONS: Type: SHT_PROGBITS (0x1)
+OMAGICSECTIONS: Flags [ (0x3)
+OMAGICSECTIONS: SHF_ALLOC (0x2)
+OMAGICSECTIONS: SHF_WRITE (0x1)
+OMAGICSECTIONS: ]
+OMAGICSECTIONS: Address: 0x400128
+OMAGICSECTIONS: Offset: 0x128
+OMAGICSECTIONS: Size: 0
+OMAGICSECTIONS: Link: 0
+OMAGICSECTIONS: Info: 0
+OMAGICSECTIONS: AddressAlignment: 8
+OMAGICSECTIONS: EntrySize: 0
+OMAGICSECTIONS: }
+OMAGICSECTIONS: Section {
+OMAGICSECTIONS: Index: 8
+OMAGICSECTIONS: Name: .data (64)
+OMAGICSECTIONS: Type: SHT_PROGBITS (0x1)
+OMAGICSECTIONS: Flags [ (0x3)
+OMAGICSECTIONS: SHF_ALLOC (0x2)
+OMAGICSECTIONS: SHF_WRITE (0x1)
+OMAGICSECTIONS: ]
+OMAGICSECTIONS: Address: 0x400128
+OMAGICSECTIONS: Offset: 0x128
+OMAGICSECTIONS: Size: 4
+OMAGICSECTIONS: Link: 0
+OMAGICSECTIONS: Info: 0
+OMAGICSECTIONS: AddressAlignment: 4
+OMAGICSECTIONS: EntrySize: 0
+OMAGICSECTIONS: }
+OMAGICSECTIONS: Section {
+OMAGICSECTIONS: Index: 9
+OMAGICSECTIONS: Name: .bss (70)
+OMAGICSECTIONS: Type: SHT_NOBITS (0x8)
+OMAGICSECTIONS: Flags [ (0x3)
+OMAGICSECTIONS: SHF_ALLOC (0x2)
+OMAGICSECTIONS: SHF_WRITE (0x1)
+OMAGICSECTIONS: ]
+OMAGICSECTIONS: Address: 0x40012C
+OMAGICSECTIONS: Offset: 0x12C
+OMAGICSECTIONS: Size: 0
+OMAGICSECTIONS: Link: 0
+OMAGICSECTIONS: Info: 0
+OMAGICSECTIONS: AddressAlignment: 4
+OMAGICSECTIONS: EntrySize: 0
+OMAGICSECTIONS: }
+OMAGICSECTIONS: Section {
+OMAGICSECTIONS: Index: 10
+OMAGICSECTIONS: Name: .shstrtab (75)
+OMAGICSECTIONS: Type: SHT_STRTAB (0x3)
+OMAGICSECTIONS: Flags [ (0x0)
+OMAGICSECTIONS: ]
+OMAGICSECTIONS: Address: 0x0
+OMAGICSECTIONS: Offset: 0x12C
+OMAGICSECTIONS: Size: 101
+OMAGICSECTIONS: Link: 0
+OMAGICSECTIONS: Info: 0
+OMAGICSECTIONS: AddressAlignment: 1
+OMAGICSECTIONS: EntrySize: 0
+OMAGICSECTIONS: }
+OMAGICSECTIONS: Section {
+OMAGICSECTIONS: Index: 11
+OMAGICSECTIONS: Name: .symtab (85)
+OMAGICSECTIONS: Type: SHT_SYMTAB (0x2)
+OMAGICSECTIONS: Flags [ (0x0)
+OMAGICSECTIONS: ]
+OMAGICSECTIONS: Address: 0x0
+OMAGICSECTIONS: Offset: 0x198
+OMAGICSECTIONS: Size: 528
+OMAGICSECTIONS: Link: 12
+OMAGICSECTIONS: Info: 2
+OMAGICSECTIONS: AddressAlignment: 8
+OMAGICSECTIONS: EntrySize: 24
+OMAGICSECTIONS: }
+OMAGICSECTIONS: Section {
+OMAGICSECTIONS: Index: 12
+OMAGICSECTIONS: Name: .strtab (93)
+OMAGICSECTIONS: Type: SHT_STRTAB (0x3)
+OMAGICSECTIONS: Flags [ (0x0)
+OMAGICSECTIONS: ]
+OMAGICSECTIONS: Address: 0x0
+OMAGICSECTIONS: Offset: 0x3A8
+OMAGICSECTIONS: Size: 246
+OMAGICSECTIONS: Link: 0
+OMAGICSECTIONS: Info: 0
+OMAGICSECTIONS: AddressAlignment: 1
+OMAGICSECTIONS: EntrySize: 0
+OMAGICSECTIONS: }
OMAGICPROGRAMHEADERS: ProgramHeaders [
OMAGICPROGRAMHEADERS: ProgramHeader {
Modified: lld/trunk/test/elf/X86_64/orderatoms-by-override.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/X86_64/orderatoms-by-override.test?rev=190608&r1=190607&r2=190608&view=diff
==============================================================================
--- lld/trunk/test/elf/X86_64/orderatoms-by-override.test (original)
+++ lld/trunk/test/elf/X86_64/orderatoms-by-override.test Thu Sep 12 10:43:09 2013
@@ -4,5 +4,5 @@ RUN: lld -flavor gnu -target x86_64 %p/I
RUN: %p/Inputs/constint.o -emit-yaml -o %t --noinhibit-exec
RUN: FileCheck %s -check-prefix=CHECKORDER < %t
-CHECKORDER: - name: a
CHECKORDER: - name: b
+CHECKORDER: - name: a
Modified: lld/trunk/test/elf/X86_64/undef.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/X86_64/undef.test?rev=190608&r1=190607&r2=190608&view=diff
==============================================================================
--- lld/trunk/test/elf/X86_64/undef.test (original)
+++ lld/trunk/test/elf/X86_64/undef.test Thu Sep 12 10:43:09 2013
@@ -7,13 +7,12 @@ RUN: lld -flavor gnu -target x86_64 %p/I
RUN: llvm-readobj -symbols %t | FileCheck %s
SYMFROMARCHIVE: Symbol {
-SYMFROMARCHIVE: Name: fn (16)
-SYMFROMARCHIVE: Value: 0x4001A4
+SYMFROMARCHIVE: Name: fn (1)
SYMFROMARCHIVE: Size: 11
SYMFROMARCHIVE: Binding: Global (0x1)
SYMFROMARCHIVE: Type: Function (0x2)
SYMFROMARCHIVE: Other: 0
-SYMFROMARCHIVE: Section: .text (0x5)
+SYMFROMARCHIVE: Section: .text (0x6)
SYMFROMARCHIVE: }
CHECK-NOT: Name: fn
Modified: lld/trunk/test/elf/check.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/check.test?rev=190608&r1=190607&r2=190608&view=diff
==============================================================================
--- lld/trunk/test/elf/check.test (original)
+++ lld/trunk/test/elf/check.test Thu Sep 12 10:43:09 2013
@@ -4,110 +4,40 @@ RUN: lld -flavor gnu -target i386 -e glo
RUN: %p/Inputs/object-test.elf-i386 -o %t
RUN: FileCheck %s -check-prefix ELF-i386 < %t
RUN: lld -flavor gnu -target hexagon -e global_func --noinhibit-exec -emit-yaml \
-RUN: %p/Inputs/object-test.elf-hexagon | FileCheck %s -check-prefix ELF-hexagon
+RUN: %p/Inputs/object-test.elf-hexagon -o %t1
+RUN: FileCheck %s -check-prefix ELF-hexagon < %t1
-ELF-i386:defined-atoms:
-ELF-i386: - name: common_symbol
-ELF-i386: scope: global
-ELF-i386: type: zero-fill
-ELF-i386: merge: as-tentative
-
-ELF-i386: - name: tentative
-ELF-i386: scope: global
-ELF-i386: type: zero-fill
-ELF-i386: merge: as-tentative
-
-ELF-i386: - name: global_func
-ELF-i386: scope: global
-ELF-i386: content: [ 55, 89, E5, 83, EC, 18, C7, 04, 24, 00, 00, 00,
-ELF-i386: 00, E8, FC, FF, FF, FF, C9, C3 ]
-
-ELF-i386: - name: static_func
-ELF-i386: content: [ 55, 89, E5, 83, EC, 18, C7, 04, 24, 07, 00, 00,
-ELF-i386: 00, E8, FC, FF, FF, FF, C9, C3 ]
-
-ELF-i386: - name: weak_func
-ELF-i386: scope: global
-ELF-i386: merge: as-weak
-ELF-i386: content: [ 55, 89, E5, 83, EC, 18, C7, 04, 24, 0E, 00, 00,
-ELF-i386: 00, E8, FC, FF, FF, FF, C9, C3 ]
-
-ELF-i386: - name: hidden_func
-ELF-i386: scope: hidden
-ELF-i386: content: [ 55, 89, E5, 83, EC, 18, C7, 04, 24, 13, 00, 00,
-ELF-i386: 00, E8, FC, FF, FF, FF, C9, C3 ]
-
-ELF-i386: - name: no_dead_strip
-ELF-i386: scope: global
-ELF-i386: content: [ 55, 89, E5, 5D, C3 ]
-
-ELF-i386: - name: no_special_section_func
-ELF-i386: scope: global
-ELF-i386: content: [ 55, 89, E5, 5D, C3 ]
-
-ELF-i386: - name: special_section_func
-ELF-i386: scope: global
-ELF-i386: content: [ 55, 89, E5, 5D, C3 ]
-ELF-i386: section-choice: custom-required
-ELF-i386: section-name: special_section
-
-
-ELF-i386:undefined-atoms:
-ELF-i386: - name: puts
-
-ELF-i386:absolute-atoms:
-ELF-i386: - name: sample.c
-ELF-i386: value: 0x0
-
-ELF-hexagon:defined-atoms:
-
-ELF-hexagon: - name: common_symbol
-ELF-hexagon: scope: global
-ELF-hexagon: type: zero-fill
-ELF-hexagon: merge: as-tentative
-
-ELF-hexagon: - name: tentative
-ELF-hexagon: scope: global
-ELF-hexagon: type: zero-fill
-ELF-hexagon: merge: as-tentative
-
-ELF-hexagon: - name: global_func
-ELF-hexagon: scope: global
-ELF-hexagon: content: [ 00, C0, 9D, A0, 00, 40, 00, 00, 00, C0, 00, 78,
-ELF-hexagon: 00, C0, 00, 5A, 1E, C0, 1E, 96 ]
-
-ELF-hexagon: - name: static_func
-ELF-hexagon: content: [ 00, C0, 9D, A0, 00, 40, 00, 00, 00, C0, 00, 78,
-ELF-hexagon: 00, C0, 00, 5A, 1E, C0, 1E, 96 ]
-
-ELF-hexagon: - name: weak_func
-ELF-hexagon: scope: global
-ELF-hexagon: merge: as-weak
-ELF-hexagon: content: [ 00, C0, 9D, A0, 00, 40, 00, 00, 00, C0, 00, 78,
-ELF-hexagon: 00, C0, 00, 5A, 1E, C0, 1E, 96 ]
-
-ELF-hexagon: - name: hidden_func
-ELF-hexagon: scope: hidden
-ELF-hexagon: content: [ 00, C0, 9D, A0, 00, 40, 00, 00, 00, C0, 00, 78,
-ELF-hexagon: 00, C0, 00, 5A, 1E, C0, 1E, 96 ]
-
-ELF-hexagon: - name: no_dead_strip
-ELF-hexagon: scope: global
-ELF-hexagon: content: [ 00, C0, 9D, A0, 1E, C0, 1E, 96 ]
-
-ELF-hexagon: - name: no_special_section_func
-ELF-hexagon: scope: global
-ELF-hexagon: content: [ 00, C0, 9D, A0, 1E, C0, 1E, 96 ]
-
-ELF-hexagon: - name: special_section_func
-ELF-hexagon: scope: global
-ELF-hexagon: content: [ 00, C0, 9D, A0, 1E, C0, 1E, 96 ]
-ELF-hexagon: section-choice: custom-required
-ELF-hexagon: section-name: special_section
-
-ELF-hexagon: undefined-atoms:
-ELF-hexagon: - name: puts
-
-ELF-hexagon: absolute-atoms:
-ELF-hexagon: - name: sample.c
-ELF-hexagon: value: 0x0
+ELF-i386: defined-atoms:
+ELF-i386: - name: global_variable
+ELF-i386: - name: common_symbol
+ELF-i386: - name: tentative
+ELF-i386: - name: uninitialized_static_variable
+ELF-i386: - name: global_func
+ELF-i386: - name: static_func
+ELF-i386: - name: weak_func
+ELF-i386: - name: hidden_func
+ELF-i386: - name: no_dead_strip
+ELF-i386: - name: no_special_section_func
+ELF-i386: - name: special_section_func
+ELF-i386: undefined-atoms:
+ELF-i386: - name: puts
+ELF-i386: absolute-atoms:
+ELF-i386: - name: sample.c
+
+ELF-hexagon: - name: global_variable
+ELF-hexagon: - name: tentative
+ELF-hexagon: - name: common_symbol
+ELF-hexagon: - name: uninitialized_static_variable
+ELF-hexagon: - name: global_func
+ELF-hexagon: - name: static_func
+ELF-hexagon: - name: weak_func
+ELF-hexagon: - name: hidden_func
+ELF-hexagon: - name: no_dead_strip
+ELF-hexagon: - name: no_special_section_func
+ELF-hexagon: - name: special_section_func
+ELF-hexagon: undefined-atoms:
+ELF-hexagon: - name: puts
+ELF-hexagon: absolute-atoms:
+ELF-hexagon: - name: sample.c
+ELF-hexagon: scope: static
+ELF-hexagon: value: 0x0000000000000000
Modified: lld/trunk/test/elf/checkrodata.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/checkrodata.test?rev=190608&r1=190607&r2=190608&view=diff
==============================================================================
--- lld/trunk/test/elf/checkrodata.test (original)
+++ lld/trunk/test/elf/checkrodata.test Thu Sep 12 10:43:09 2013
@@ -4,6 +4,6 @@ RUN: llvm-objdump -section-headers %t1 |
RUN: lld -flavor gnu -target hexagon -o %t2 %p/Inputs/rodata-test.hexagon --noinhibit-exec
RUN: llvm-objdump -section-headers %t2 | FileCheck -check-prefix=hexagon %s
-i386: .rodata 00000004 0000000000000114 DATA
+i386: .rodata 00000004 0000000000000111 DATA
-hexagon: .rodata 00000004 0000000000000114 DATA
+hexagon: .rodata 00000004 0000000000000111 DATA
Modified: lld/trunk/test/elf/dynamic.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/dynamic.test?rev=190608&r1=190607&r2=190608&view=diff
==============================================================================
--- lld/trunk/test/elf/dynamic.test (original)
+++ lld/trunk/test/elf/dynamic.test Thu Sep 12 10:43:09 2013
@@ -9,6 +9,10 @@ RUN: llvm-objdump -p %t >> %t2
RUN: llvm-readobj -s -dyn-symbols -dynamic-table %t >> %t2
RUN: FileCheck %s < %t2
+CHECK: type: got
+CHECK: references:
+CHECK: kind: R_X86_64_JUMP_SLOT
+
CHECK: name: main
CHECK: kind: R_X86_64_PC32
CHECK: offset: 18
@@ -17,10 +21,6 @@ CHECK: target: [[PLTNAME:[-a-zA-Z0-9_]+
CHECK: name: [[PLTNAME]]
CHECK: type: stub
-CHECK: type: got
-CHECK: references:
-CHECK: kind: R_X86_64_JUMP_SLOT
-
CHECK: shared-library-atoms:
CHECK: name: foo
CHECK: load-name: shared.so-x86-64
Modified: lld/trunk/test/elf/gotpcrel.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/gotpcrel.test?rev=190608&r1=190607&r2=190608&view=diff
==============================================================================
--- lld/trunk/test/elf/gotpcrel.test (original)
+++ lld/trunk/test/elf/gotpcrel.test Thu Sep 12 10:43:09 2013
@@ -3,19 +3,20 @@ RUN: lld -flavor gnu -target x86_64-linu
RUN: --noinhibit-exec %p/Inputs/gotpcrel.x86-64 \
RUN: | FileCheck %s -check-prefix=YAML
+YAML: name: [[NULLGOT:[a-zA-Z0-9_]+]]
+YAML: content: [ 00, 00, 00, 00, 00, 00, 00, 00 ]
+YAML-NOT: references:
+
+YAML: name: [[MAINGOT:[a-zA-Z0-9_]+]]
+YAML: kind: R_X86_64_64
+YAML: target: main
+
YAML: name: main
YAML: references:
YAML: kind: R_X86_64_PC32
YAML: offset: 3
-YAML: target: [[NULLGOT:[a-zA-Z0-9_]+]]
+YAML: target: [[NULLGOT]]
YAML: kind: R_X86_64_PC32
YAML: offset: 10
-YAML: target: [[MAINGOT:[a-zA-Z0-9_]+]]
+YAML: target: [[MAINGOT]]
-YAML: name: [[NULLGOT]]
-YAML: content: [ 00, 00, 00, 00, 00, 00, 00, 00 ]
-YAML-NOT: references:
-
-YAML: name: [[MAINGOT]]
-YAML: kind: R_X86_64_64
-YAML: target: main
Modified: lld/trunk/test/elf/hexagon-quickdata-sort.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/hexagon-quickdata-sort.test?rev=190608&r1=190607&r2=190608&view=diff
==============================================================================
--- lld/trunk/test/elf/hexagon-quickdata-sort.test (original)
+++ lld/trunk/test/elf/hexagon-quickdata-sort.test Thu Sep 12 10:43:09 2013
@@ -1,12 +1,12 @@
RUN: lld -flavor gnu -target hexagon %p/Inputs/quickdata-sort-test.o.elf-hexagon -o %t1 --noinhibit-exec
RUN: llvm-nm -n %t1 | FileCheck %s -check-prefix=quickdataSort
-quickdataSort: 00002000 D A1
-quickdataSort: 00002001 D AA1
-quickdataSort: 00002002 D B1
-quickdataSort: 00002004 D BB1
-quickdataSort: 00002008 D C1
-quickdataSort: 0000200c D CC1
-quickdataSort: 00002010 D D1
-quickdataSort: 00002018 D DD1
+quickdataSort: 00002000 D AA1
+quickdataSort: 00002001 D A1
+quickdataSort: 00002002 D BB1
+quickdataSort: 00002004 D B1
+quickdataSort: 00002008 D CC1
+quickdataSort: 0000200c D C1
+quickdataSort: 00002010 D DD1
+quickdataSort: 00002018 D D1
Modified: lld/trunk/test/elf/hexagon-quickdata-sortcommon.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/hexagon-quickdata-sortcommon.test?rev=190608&r1=190607&r2=190608&view=diff
==============================================================================
--- lld/trunk/test/elf/hexagon-quickdata-sortcommon.test (original)
+++ lld/trunk/test/elf/hexagon-quickdata-sortcommon.test Thu Sep 12 10:43:09 2013
@@ -2,16 +2,15 @@ RUN: lld -flavor gnu -target hexagon -o
RUN: %p/Inputs/quickdata-sortcommon-test.o.elf-hexagon
RUN: llvm-nm -n %t1 | FileCheck %s -check-prefix=quickdataSortCommon
-quickdataSortCommon: 00002000 D A1
-quickdataSortCommon: 00002001 D AA1
+quickdataSortCommon: 00002000 D AA1
+quickdataSortCommon: 00002001 D A1
quickdataSortCommon: 00002002 D AAA1
-quickdataSortCommon: 00002004 D B1
-quickdataSortCommon: 00002006 D BB1
+quickdataSortCommon: 00002004 D BB1
+quickdataSortCommon: 00002006 D B1
quickdataSortCommon: 00002008 D BBB1
-quickdataSortCommon: 0000200c D C1
-quickdataSortCommon: 00002010 D CC1
+quickdataSortCommon: 0000200c D CC1
+quickdataSortCommon: 00002010 D C1
quickdataSortCommon: 00002014 D CCC1
-quickdataSortCommon: 00002018 D D1
-quickdataSortCommon: 00002020 D DD1
+quickdataSortCommon: 00002018 D DD1
+quickdataSortCommon: 00002020 D D1
quickdataSortCommon: 00002028 D DDD1
-
Modified: lld/trunk/test/elf/ifunc.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/ifunc.test?rev=190608&r1=190607&r2=190608&view=diff
==============================================================================
--- lld/trunk/test/elf/ifunc.test (original)
+++ lld/trunk/test/elf/ifunc.test Thu Sep 12 10:43:09 2013
@@ -14,6 +14,12 @@ RUN: llvm-readobj -r %t | FileCheck %s -
PLT: defined-atoms:
+// Make sure there's a got entry with a IRELATIVE relocation.
+PLT: type: got
+PLT: references:
+PLT: kind: R_X86_64_IRELATIVE
+PLT: target: hey
+
PLT: name: plt
PLT: scope: global
PLT: references:
@@ -36,12 +42,6 @@ PLT: type: stub
PLT: references
PLT: kind: R_X86_64_PC32
-// Make sure there's a got entry with a IRELATIVE relocation.
-PLT: type: got
-PLT: references:
-PLT: kind: R_X86_64_IRELATIVE
-PLT: target: hey
-
CHECK: name: hey
CHECK: scope: global
CHECK: type: resolver
Modified: lld/trunk/test/elf/quickdata.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/quickdata.test?rev=190608&r1=190607&r2=190608&view=diff
==============================================================================
--- lld/trunk/test/elf/quickdata.test (original)
+++ lld/trunk/test/elf/quickdata.test Thu Sep 12 10:43:09 2013
@@ -1,14 +1,14 @@
RUN: lld -flavor gnu -target hexagon -emit-yaml %p/Inputs/quickdata-test.elf-hexagon \
RUN: --noinhibit-exec | FileCheck %s -check-prefix hexagon
+hexagon: - name: init
+hexagon: scope: global
+hexagon: type: quick-data
hexagon: - name: ac1
hexagon: scope: global
hexagon: type: zero-fill-quick
hexagon: size: 1
hexagon: merge: as-tentative
-hexagon: - name: init
-hexagon: scope: global
-hexagon: type: quick-data
hexagon: - name: bss1
hexagon: scope: global
hexagon: type: zero-fill-quick
Modified: lld/trunk/test/elf/tls.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/tls.test?rev=190608&r1=190607&r2=190608&view=diff
==============================================================================
--- lld/trunk/test/elf/tls.test (original)
+++ lld/trunk/test/elf/tls.test Thu Sep 12 10:43:09 2013
@@ -7,6 +7,11 @@ RUN: --noinhibit-exec -e main -static
// Verify that the TLS accesses have the correct offsets.
+YAML: type: got
+YAML: references:
+YAML: kind: R_X86_64_TPOFF64
+YAML: target: tls2
+
YAML: name: main
YAML: references:
YAML: kind: R_X86_64_TPOFF32
@@ -23,11 +28,6 @@ YAML: name: GOTTPOFF
YAML: kind: R_X86_64_PC32
YAML: target: [[GOTNAME:[a-zA-Z0-9_]+]]
-YAML: type: got
-YAML: references:
-YAML: kind: R_X86_64_TPOFF64
-YAML: target: tls2
-
// main
CHECK: addl %fs:-4
Modified: lld/trunk/test/elf/x86-64-dynamic.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/x86-64-dynamic.test?rev=190608&r1=190607&r2=190608&view=diff
==============================================================================
--- lld/trunk/test/elf/x86-64-dynamic.test (original)
+++ lld/trunk/test/elf/x86-64-dynamic.test Thu Sep 12 10:43:09 2013
@@ -5,6 +5,15 @@ RUN: %p/Inputs/shared.so-x86-64 -emit-
RUN: FileCheck %s < %t1
// Don't check the GOT and PLT names as they are only present in assert builds.
+CHECK: type: got
+CHECK: content: [ 00, 00, 00, 00, 00, 00, 00, 00 ]
+CHECK: section-choice: custom-required
+CHECK: section-name: .got.dyn
+CHECK: permissions: rw-
+CHECK: references:
+CHECK: - kind: R_X86_64_GLOB_DAT
+CHECK: offset: 0
+CHECK: target: i
CHECK: - name: main
CHECK: scope: global
@@ -53,16 +62,6 @@ CHECK: - kind: R_X86_64_
CHECK: offset: 12
target: .PLT0
CHECK: addend: -4
-CHECK: name: [[GOTNAME]]
-CHECK: type: got
-CHECK: content: [ 00, 00, 00, 00, 00, 00, 00, 00 ]
-CHECK: section-choice: custom-required
-CHECK: section-name: .got.dyn
-CHECK: permissions: rw-
-CHECK: references:
-CHECK: - kind: R_X86_64_GLOB_DAT
-CHECK: offset: 0
-CHECK: target: i
Modified: lld/trunk/test/pecoff/importlib.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/importlib.test?rev=190608&r1=190607&r2=190608&view=diff
==============================================================================
--- lld/trunk/test/pecoff/importlib.test (original)
+++ lld/trunk/test/pecoff/importlib.test Thu Sep 12 10:43:09 2013
@@ -27,11 +27,11 @@ CHECK-NEXT: .text:
CHECK-NEXT: 1000: 55 pushl %ebp
CHECK-NEXT: 1001: 8b ec movl %esp, %ebp
CHECK-NEXT: 1003: 56 pushl %esi
-CHECK-NEXT: 1004: ff 15 78 20 40 00 calll *4202616
-CHECK-NEXT: 100a: 8b 0d 7c 20 40 00 movl 4202620, %ecx
+CHECK-NEXT: 1004: ff 15 22 20 40 00 calll *4202530
+CHECK-NEXT: 100a: 8b 0d 26 20 40 00 movl 4202534, %ecx
CHECK-NEXT: 1010: 8b 31 movl (%ecx), %esi
CHECK-NEXT: 1012: 03 f0 addl %eax, %esi
-CHECK-NEXT: 1014: ff 15 74 20 40 00 calll *4202612
+CHECK-NEXT: 1014: ff 15 1e 20 40 00 calll *4202526
CHECK-NEXT: 101a: 03 c6 addl %esi, %eax
CHECK-NEXT: 101c: 5e popl %esi
CHECK-NEXT: 101d: 5d popl %ebp
More information about the llvm-commits
mailing list