[lld] r190608 - [lld][LayoutPass] Order the atoms that are in the same chain
Rui Ueyama
ruiu at google.com
Fri Sep 13 15:47:52 PDT 2013
This patch seems to break IdataPass in COFF writer. The COFF writer creates
atoms for DLL import table in the pass. Because the atoms created in the
pass do not really belong to any input file, the linker uses MutableFile
representing the linking result as a dummy value of the file for the atoms.
It did work until this patch.
The MutableFile did not have input ordinal value, so it now fails with the
assertion at include/lld/Core/File.h:72 checking _ordinal != UINT64_MAX in
the layout pass.
I think there are many ways to fix this. One way would be to create another
dummy input file and use it for the atoms created by the IdataPass. It
should work, but I don't think that's a good way because the dummy file is
really dummy and does not do anything useful. It feels like the restriction
that atoms must have associated input files is too strict.
So I'd want to make _file field optional for the atom. What do you guys
think?
On Thu, Sep 12, 2013 at 8:43 AM, Shankar Easwaran
<shankare at codeaurora.org>wrote:
> 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
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130913/b61173a4/attachment.html>
More information about the llvm-commits
mailing list