diff --git a/lld/test/ELF/aarch64-gnu-ifunc.s b/lld/test/ELF/aarch64-gnu-ifunc.s index e0a51aa1c3c6f..a7f9806e5513d 100644 --- a/lld/test/ELF/aarch64-gnu-ifunc.s +++ b/lld/test/ELF/aarch64-gnu-ifunc.s @@ -47,8 +47,8 @@ // CHECK-NEXT: Section: .text // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: __rela_iplt_end -// CHECK-NEXT: Value: 0x200188 +// CHECK-NEXT: Name: __rela_iplt_start +// CHECK-NEXT: Value: 0x200158 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Local // CHECK-NEXT: Type: None @@ -58,8 +58,8 @@ // CHECK-NEXT: Section: .rela.dyn // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: __rela_iplt_start -// CHECK-NEXT: Value: 0x200158 +// CHECK-NEXT: Name: __rela_iplt_end +// CHECK-NEXT: Value: 0x200188 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Local // CHECK-NEXT: Type: None @@ -69,11 +69,11 @@ // CHECK-NEXT: Section: .rela.dyn // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: _start -// CHECK-NEXT: Value: 0x210190 +// CHECK-NEXT: Name: foo +// CHECK-NEXT: Value: 0x210188 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Global -// CHECK-NEXT: Type: None +// CHECK-NEXT: Type: GNU_IFunc // CHECK-NEXT: Other: 0 // CHECK-NEXT: Section: .text // CHECK-NEXT: } @@ -87,11 +87,11 @@ // CHECK-NEXT: Section: .text // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: foo -// CHECK-NEXT: Value: 0x210188 +// CHECK-NEXT: Name: _start +// CHECK-NEXT: Value: 0x210190 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Global -// CHECK-NEXT: Type: GNU_IFunc +// CHECK-NEXT: Type: None // CHECK-NEXT: Other: 0 // CHECK-NEXT: Section: .text // CHECK-NEXT: } diff --git a/lld/test/ELF/aarch64-nopic-plt.s b/lld/test/ELF/aarch64-nopic-plt.s index 2ab220a28aee0..91d150d44b756 100644 --- a/lld/test/ELF/aarch64-nopic-plt.s +++ b/lld/test/ELF/aarch64-nopic-plt.s @@ -10,18 +10,18 @@ _start: adrp x8, foo bl bar -// CHECK: Name: bar -// CHECK-NEXT: Value: 0x0 +// CHECK: Name: foo +// CHECK-NEXT: Value: 0x2102F0 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Global -// CHECK-NEXT: Type: None +// CHECK-NEXT: Type: Function // CHECK-NEXT: Other: 0 // CHECK-NEXT: Section: Undefined -// CHECK: Name: foo -// CHECK-NEXT: Value: 0x2102F0 +// CHECK: Name: bar +// CHECK-NEXT: Value: 0x0 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Global -// CHECK-NEXT: Type: Function +// CHECK-NEXT: Type: None // CHECK-NEXT: Other: 0 // CHECK-NEXT: Section: Undefined diff --git a/lld/test/ELF/amdgpu-relocs.s b/lld/test/ELF/amdgpu-relocs.s index caee617cf85e7..2de7d9ae306f7 100644 --- a/lld/test/ELF/amdgpu-relocs.s +++ b/lld/test/ELF/amdgpu-relocs.s @@ -98,19 +98,19 @@ foo: # CHECK-NEXT: R_AMDGPU_ABS64 common_var0 0x0 # CHECK-NEXT: R_AMDGPU_ABS64 common_var1 0x0 # CHECK-NEXT: R_AMDGPU_ABS64 common_var2 0x0 -# CHECK-NEXT: R_AMDGPU_ABS64 extern_var0 0x0 -# CHECK-NEXT: R_AMDGPU_ABS64 extern_var1 0x0 -# CHECK-NEXT: R_AMDGPU_ABS64 extern_var2 0x0 # CHECK-NEXT: R_AMDGPU_ABS64 global_var0 0x0 # CHECK-NEXT: R_AMDGPU_ABS64 global_var1 0x0 # CHECK-NEXT: R_AMDGPU_ABS64 global_var2 0x0 -# CHECK-NEXT: R_AMDGPU_ABS64 temp 0x0 +# CHECK-NEXT: R_AMDGPU_ABS64 extern_var0 0x0 +# CHECK-NEXT: R_AMDGPU_ABS64 extern_var1 0x0 +# CHECK-NEXT: R_AMDGPU_ABS64 extern_var2 0x0 # CHECK-NEXT: R_AMDGPU_ABS64 weak_var0 0x0 # CHECK-NEXT: R_AMDGPU_ABS64 weak_var1 0x0 # CHECK-NEXT: R_AMDGPU_ABS64 weak_var2 0x0 # CHECK-NEXT: R_AMDGPU_ABS64 weakref_alias_var0 0x0 # CHECK-NEXT: R_AMDGPU_ABS64 weakref_alias_var1 0x0 # CHECK-NEXT: R_AMDGPU_ABS64 weakref_alias_var2 0x0 +# CHECK-NEXT: R_AMDGPU_ABS64 temp 0x0 # CHECK-NEXT: } # CHECK-NEXT: ] diff --git a/lld/test/ELF/arm-gnu-ifunc.s b/lld/test/ELF/arm-gnu-ifunc.s index 51027e40578c7..de7a196ea5daa 100644 --- a/lld/test/ELF/arm-gnu-ifunc.s +++ b/lld/test/ELF/arm-gnu-ifunc.s @@ -62,9 +62,8 @@ _start: // CHECK-NEXT: 0x30154 R_ARM_IRELATIVE // CHECK-NEXT: } // CHECK-NEXT: ] -// CHECK: Symbol { -// CHECK: Name: __rel_iplt_end -// CHECK-NEXT: Value: 0x10104 +// CHECK: Name: __rel_iplt_start +// CHECK-NEXT: Value: 0x100F4 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Local // CHECK-NEXT: Type: None @@ -74,8 +73,8 @@ _start: // CHECK-NEXT: Section: .rel.dyn // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: __rel_iplt_start -// CHECK-NEXT: Value: 0x100F4 +// CHECK-NEXT: Name: __rel_iplt_end +// CHECK-NEXT: Value: 0x10104 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Local // CHECK-NEXT: Type: None @@ -85,15 +84,6 @@ _start: // CHECK-NEXT: Section: .rel.dyn // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: _start -// CHECK-NEXT: Value: 0x2010C -// CHECK-NEXT: Size: 0 -// CHECK-NEXT: Binding: Global -// CHECK-NEXT: Type: None -// CHECK-NEXT: Other: -// CHECK-NEXT: Section: .text -// CHECK-NEXT: } -// CHECK-NEXT: Symbol { // CHECK-NEXT: Name: bar // CHECK-NEXT: Value: 0x20108 // CHECK-NEXT: Size: 0 @@ -111,6 +101,15 @@ _start: // CHECK-NEXT: Other: 0 // CHECK-NEXT: Section: .text // CHECK-NEXT: } +// CHECK-NEXT: Symbol { +// CHECK-NEXT: Name: _start +// CHECK-NEXT: Value: 0x2010C +// CHECK-NEXT: Size: 0 +// CHECK-NEXT: Binding: Global +// CHECK-NEXT: Type: None +// CHECK-NEXT: Other: +// CHECK-NEXT: Section: .text +// CHECK-NEXT: } // DISASM: Disassembly of section .text: // DISASM-EMPTY: diff --git a/lld/test/ELF/arm-static-defines.s b/lld/test/ELF/arm-static-defines.s index 5a5988589aacd..d367e952c8980 100644 --- a/lld/test/ELF/arm-static-defines.s +++ b/lld/test/ELF/arm-static-defines.s @@ -22,23 +22,22 @@ _start: .cantunwind .fnend -// CHECK: Name: __exidx_end -// CHECK-NEXT: Value: 0x100E4 +// CHECK: Name: __exidx_start +// CHECK-NEXT: Value: 0x100D4 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Local // CHECK-NEXT: Type: None // CHECK-NEXT: Other [ // CHECK-NEXT: STV_HIDDEN // CHECK-NEXT: ] -// CHECK-NEXT: Section: .ARM.exidx -// CHECK: Name: __exidx_start -// CHECK-NEXT: Value: 0x100D4 +// CHECK: Name: __exidx_end +// CHECK-NEXT: Value: 0x100E4 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Local // CHECK-NEXT: Type: None // CHECK-NEXT: Other [ // CHECK-NEXT: STV_HIDDEN // CHECK-NEXT: ] -// CHECK-NEXT: Section: .ARM.exidx +// CHECK-NEXT: Section: .ARM.exidx // CHECK: Symbol { // CHECK-NEXT: Name: __tls_get_addr diff --git a/lld/test/ELF/assignment-archive.s b/lld/test/ELF/assignment-archive.s index f71c331f1743f..784685e469eea 100644 --- a/lld/test/ELF/assignment-archive.s +++ b/lld/test/ELF/assignment-archive.s @@ -15,8 +15,8 @@ # RUN: echo "SECTIONS { zed = foo; }" > %t2.script # RUN: ld.lld -o %t2.exe --script %t2.script %tar.a %t.o # RUN: llvm-readobj --symbols %t2.exe | FileCheck %s --check-prefix=SYMS -# SYMS: bar # SYMS: foo +# SYMS: bar .text .globl foo diff --git a/lld/test/ELF/cgprofile-icf.s b/lld/test/ELF/cgprofile-icf.s index c27a7b2566db0..a9de5613917cb 100644 --- a/lld/test/ELF/cgprofile-icf.s +++ b/lld/test/ELF/cgprofile-icf.s @@ -34,20 +34,20 @@ A: mov $42, %rax retq -# CHECK: Name: A -# CHECK-NEXT: Value: 0x201120 -# CHECK: Name: B -# CHECK-NEXT: Value: 0x201130 -# CHECK: Name: C -# CHECK-NEXT: Value: 0x201128 # CHECK: Name: D # CHECK-NEXT: Value: 0x201128 +# CHECK: Name: C +# CHECK-NEXT: Value: 0x201128 +# CHECK: Name: B +# CHECK-NEXT: Value: 0x201130 +# CHECK: Name: A +# CHECK-NEXT: Value: 0x201120 -# NOICF: Name: A -# NOICF-NEXT: Value: 0x201120 -# NOICF: Name: B -# NOICF-NEXT: Value: 0x201128 -# NOICF: Name: C -# NOICF-NEXT: Value: 0x201130 # NOICF: Name: D # NOICF-NEXT: Value: 0x201138 +# NOICF: Name: C +# NOICF-NEXT: Value: 0x201130 +# NOICF: Name: B +# NOICF-NEXT: Value: 0x201128 +# NOICF: Name: A +# NOICF-NEXT: Value: 0x201120 diff --git a/lld/test/ELF/cgprofile-obj.s b/lld/test/ELF/cgprofile-obj.s index 57a4967ed7d54..f56f3bcbf0c3c 100644 --- a/lld/test/ELF/cgprofile-obj.s +++ b/lld/test/ELF/cgprofile-obj.s @@ -34,11 +34,11 @@ Aa: .cg_profile C, D, 90 # CHECK: 0000000000201123 t D -# CHECK: 0000000000201120 T A -# CHECK: 0000000000201121 T B # CHECK: 0000000000201122 T C +# CHECK: 0000000000201121 T B +# CHECK: 0000000000201120 T A # NO-CG: 0000000000201120 t D -# NO-CG: 0000000000201123 T A -# NO-CG: 0000000000201122 T B # NO-CG: 0000000000201121 T C +# NO-CG: 0000000000201122 T B +# NO-CG: 0000000000201123 T A diff --git a/lld/test/ELF/cgprofile-txt.s b/lld/test/ELF/cgprofile-txt.s index 2bc18376caebe..99cbfa5745325 100644 --- a/lld/test/ELF/cgprofile-txt.s +++ b/lld/test/ELF/cgprofile-txt.s @@ -140,20 +140,20 @@ TooManyPreds10: # CHECK-NEXT: Value: 0x201124 # CHECK: Name: TooManyPreds10 # CHECK-NEXT: Value: 0x201138 -# CHECK: Name: A -# CHECK-NEXT: Value: 0x201120 -# CHECK: Name: B -# CHECK-NEXT: Value: 0x201121 # CHECK: Name: C # CHECK-NEXT: Value: 0x201122 -# CHECK: Name: GB -# CHECK-NEXT: Value: 0x20113F +# CHECK: Name: B +# CHECK-NEXT: Value: 0x201121 +# CHECK: Name: A +# CHECK-NEXT: Value: 0x201120 +# CHECK: Name: TS +# CHECK-NEXT: Value: 0x20113D # CHECK: Name: PP # CHECK-NEXT: Value: 0x20113C # CHECK: Name: QC # CHECK-NEXT: Value: 0x20113E -# CHECK: Name: TS -# CHECK-NEXT: Value: 0x20113D +# CHECK: Name: GB +# CHECK-NEXT: Value: 0x20113F # CHECK: Name: _init # CHECK-NEXT: Value: 0x201140 # CHECK: Name: _init2 @@ -165,20 +165,20 @@ TooManyPreds10: # NOSORT-NEXT: Value: 0x201124 # NOSORT: Name: TooManyPreds10 # NOSORT-NEXT: Value: 0x201138 -# NOSORT: Name: A -# NOSORT-NEXT: Value: 0x201123 -# NOSORT: Name: B -# NOSORT-NEXT: Value: 0x201122 # NOSORT: Name: C # NOSORT-NEXT: Value: 0x201121 -# NOSORT: Name: GB -# NOSORT-NEXT: Value: 0x20113C +# NOSORT: Name: B +# NOSORT-NEXT: Value: 0x201122 +# NOSORT: Name: A +# NOSORT-NEXT: Value: 0x201123 +# NOSORT: Name: TS +# NOSORT-NEXT: Value: 0x201139 # NOSORT: Name: PP # NOSORT-NEXT: Value: 0x20113A # NOSORT: Name: QC # NOSORT-NEXT: Value: 0x20113B -# NOSORT: Name: TS -# NOSORT-NEXT: Value: 0x201139 +# NOSORT: Name: GB +# NOSORT-NEXT: Value: 0x20113C # NOSORT: Name: _init # NOSORT-NEXT: Value: 0x20113D # NOSORT: Name: _init2 diff --git a/lld/test/ELF/copy-rel-abs.s b/lld/test/ELF/copy-rel-abs.s index de6fbc48a8976..2843882816210 100644 --- a/lld/test/ELF/copy-rel-abs.s +++ b/lld/test/ELF/copy-rel-abs.s @@ -6,8 +6,8 @@ # RUN: ld.lld -shared %t1.o -o %t1.so # RUN: llvm-readelf --dyn-syms %t1.so | FileCheck --check-prefix=SYMS %s -# SYMS: [[ADDR:[0-9a-f]+]] {{.*}} 5 bar -# SYMS: [[ADDR]] {{.*}} 5 foo +# SYMS: [[ADDR:[0-9a-f]+]] {{.*}} 5 foo +# SYMS: [[ADDR]] {{.*}} 5 bar # SYMS: [[ADDR]] {{.*}} ABS zed # RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t2.o diff --git a/lld/test/ELF/copy-rel.s b/lld/test/ELF/copy-rel.s index c93e5b04ca3d4..7a957d2c290c2 100644 --- a/lld/test/ELF/copy-rel.s +++ b/lld/test/ELF/copy-rel.s @@ -14,8 +14,8 @@ # CHECK: Relocations [ # CHECK-NEXT: .rela.dyn { -# CHECK-NEXT: R_X86_64_COPY bar 0x0 # CHECK-NEXT: R_X86_64_COPY foo 0x0 +# CHECK-NEXT: R_X86_64_COPY bar 0x0 # CHECK-NEXT: } # CHECK-NEXT: ] diff --git a/lld/test/ELF/cref.s b/lld/test/ELF/cref.s index 2a82f4252e84b..a5ad748983332 100644 --- a/lld/test/ELF/cref.s +++ b/lld/test/ELF/cref.s @@ -10,11 +10,11 @@ // RUN: ld.lld -o /dev/null %t1.so %t2.o %t3.o %t.a -gc-sections -cref | FileCheck -strict-whitespace %s // CHECK: Symbol File -// CHECK-NEXT: bar {{.*}}2.o -// CHECK-NEXT: {{.*}}3.o // CHECK-NEXT: foo {{.*}}1.so // CHECK-NEXT: {{.*}}2.o // CHECK-NEXT: {{.*}}3.o +// CHECK-NEXT: bar {{.*}}2.o +// CHECK-NEXT: {{.*}}3.o // CHECK-NEXT: _start {{.*}}3.o // CHECK-NEXT: baz {{.*}}3.o // CHECK-NEXT: zed {{.*}}.a({{.*}}a.o) diff --git a/lld/test/ELF/dynamic-list-preempt.s b/lld/test/ELF/dynamic-list-preempt.s index 024f9302a0081..a4c072e5a91c4 100644 --- a/lld/test/ELF/dynamic-list-preempt.s +++ b/lld/test/ELF/dynamic-list-preempt.s @@ -30,7 +30,7 @@ # DYNSYMS-NEXT: Section: Undefined # DYNSYMS-NEXT: } # DYNSYMS-NEXT: Symbol { -# DYNSYMS-NEXT: Name: bar +# DYNSYMS-NEXT: Name: foo # DYNSYMS-NEXT: Value: # DYNSYMS-NEXT: Size: # DYNSYMS-NEXT: Binding: Global @@ -39,7 +39,7 @@ # DYNSYMS-NEXT: Section: # DYNSYMS-NEXT: } # DYNSYMS-NEXT: Symbol { -# DYNSYMS-NEXT: Name: ext +# DYNSYMS-NEXT: Name: bar # DYNSYMS-NEXT: Value: # DYNSYMS-NEXT: Size: # DYNSYMS-NEXT: Binding: Global @@ -48,7 +48,7 @@ # DYNSYMS-NEXT: Section: # DYNSYMS-NEXT: } # DYNSYMS-NEXT: Symbol { -# DYNSYMS-NEXT: Name: foo +# DYNSYMS-NEXT: Name: ext # DYNSYMS-NEXT: Value: # DYNSYMS-NEXT: Size: # DYNSYMS-NEXT: Binding: Global diff --git a/lld/test/ELF/export-symbols.s b/lld/test/ELF/export-symbols.s index 13612390fb676..5b59ac5134724 100644 --- a/lld/test/ELF/export-symbols.s +++ b/lld/test/ELF/export-symbols.s @@ -26,10 +26,10 @@ # EXPORT: Symbol table '.dynsym' contains 8 entries: # EXPORT: GLOBAL DEFAULT {{.*}} shared # EXPORT-NEXT: WEAK DEFAULT {{.*}} undef_weak -# EXPORT-NEXT: GLOBAL PROTECTED {{.*}} _start -# EXPORT-NEXT: GLOBAL DEFAULT ABS abs -# EXPORT-NEXT: GLOBAL DEFAULT {{.*}} common # EXPORT-NEXT: WEAK DEFAULT {{.*}} weak_default +# EXPORT-NEXT: GLOBAL DEFAULT {{.*}} common +# EXPORT-NEXT: GLOBAL DEFAULT ABS abs +# EXPORT-NEXT: GLOBAL PROTECTED {{.*}} _start # EXPORT-NEXT: GLOBAL DEFAULT {{.*}} defsym .weak undef_weak diff --git a/lld/test/ELF/gnu-ifunc-dso.s b/lld/test/ELF/gnu-ifunc-dso.s index c448c1f05785a..dee5246494ab2 100644 --- a/lld/test/ELF/gnu-ifunc-dso.s +++ b/lld/test/ELF/gnu-ifunc-dso.s @@ -12,8 +12,8 @@ # RUN: llvm-readobj --dyn-relocations %t.so | FileCheck %s # CHECK: Dynamic Relocations { -# CHECK-NEXT: R_X86_64_64 bar 0x0 # CHECK-NEXT: R_X86_64_GLOB_DAT foo 0x0 +# CHECK-NEXT: R_X86_64_64 bar 0x0 # CHECK-NEXT: } .data diff --git a/lld/test/ELF/gnu-ifunc-empty.s b/lld/test/ELF/gnu-ifunc-empty.s index b3efabd64e534..90097d917dfe0 100644 --- a/lld/test/ELF/gnu-ifunc-empty.s +++ b/lld/test/ELF/gnu-ifunc-empty.s @@ -10,8 +10,8 @@ // CHECK: Name Type Address Off // CHECK: .text PROGBITS 0000000000201120 000120 // CHECK: Value Size Type Bind Vis Ndx Name -// CHECK: 0000000000200000 0 NOTYPE LOCAL HIDDEN 1 __rela_iplt_end // CHECK: 0000000000200000 0 NOTYPE LOCAL HIDDEN 1 __rela_iplt_start +// CHECK: 0000000000200000 0 NOTYPE LOCAL HIDDEN 1 __rela_iplt_end .globl _start _start: diff --git a/lld/test/ELF/gnu-ifunc-i386.s b/lld/test/ELF/gnu-ifunc-i386.s index 41fcd79b5c421..f19f40b8c6417 100644 --- a/lld/test/ELF/gnu-ifunc-i386.s +++ b/lld/test/ELF/gnu-ifunc-i386.s @@ -39,8 +39,8 @@ // CHECK-NEXT: Section: Undefined // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: __rel_iplt_end -// CHECK-NEXT: Value: 0x4000E4 +// CHECK-NEXT: Name: __rel_iplt_start +// CHECK-NEXT: Value: [[RELA]] // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Local // CHECK-NEXT: Type: None @@ -50,8 +50,8 @@ // CHECK-NEXT: Section: .rel.dyn // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: __rel_iplt_start -// CHECK-NEXT: Value: [[RELA]] +// CHECK-NEXT: Name: __rel_iplt_end +// CHECK-NEXT: Value: 0x4000E4 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Local // CHECK-NEXT: Type: None @@ -61,15 +61,6 @@ // CHECK-NEXT: Section: .rel.dyn // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: _start -// CHECK-NEXT: Value: 0x4010E6 -// CHECK-NEXT: Size: 0 -// CHECK-NEXT: Binding: Global -// CHECK-NEXT: Type: None -// CHECK-NEXT: Other: 0 -// CHECK-NEXT: Section: .text -// CHECK-NEXT: } -// CHECK-NEXT: Symbol { // CHECK-NEXT: Name: bar // CHECK-NEXT: Value: 0x401110 // CHECK-NEXT: Size: 0 @@ -80,7 +71,7 @@ // CHECK-NEXT: } // CHECK-NEXT: Symbol { // CHECK-NEXT: Name: bar_resolver -// CHECK-NEXT: Value: 0x4010E5 +// CHECK-NEXT: Value: 0x4010E4 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Global // CHECK-NEXT: Type: Function @@ -98,20 +89,29 @@ // CHECK-NEXT: } // CHECK-NEXT: Symbol { // CHECK-NEXT: Name: foo_resolver -// CHECK-NEXT: Value: 0x4010E4 +// CHECK-NEXT: Value: 0x4010E5 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Global // CHECK-NEXT: Type: Function // CHECK-NEXT: Other: 0 // CHECK-NEXT: Section: .text // CHECK-NEXT: } +// CHECK-NEXT: Symbol { +// CHECK-NEXT: Name: _start +// CHECK-NEXT: Value: 0x4010E6 +// CHECK-NEXT: Size: 0 +// CHECK-NEXT: Binding: Global +// CHECK-NEXT: Type: None +// CHECK-NEXT: Other: 0 +// CHECK-NEXT: Section: .text +// CHECK-NEXT: } // CHECK-NEXT:] // DISASM: Disassembly of section .text: // DISASM-EMPTY: -// DISASM-NEXT: : +// DISASM-NEXT: : // DISASM-NEXT: 4010e4: retl -// DISASM: : +// DISASM: : // DISASM-NEXT: 4010e5: retl // DISASM: <_start>: // DISASM-NEXT: 4010e6: calll 0x401100 @@ -130,6 +130,14 @@ // DISASM-NEXT: pushl $8 // DISASM-NEXT: jmp 0x0 +.type bar STT_GNU_IFUNC +.globl bar +bar: +.type bar_resolver STT_FUNC +.globl bar_resolver +bar_resolver: + ret + .text .type foo STT_GNU_IFUNC .globl foo @@ -139,14 +147,6 @@ foo: foo_resolver: ret -.type bar STT_GNU_IFUNC -.globl bar -bar: -.type bar_resolver STT_FUNC -.globl bar_resolver -bar_resolver: - ret - .globl _start _start: call foo diff --git a/lld/test/ELF/gnu-ifunc-noplt-i386.s b/lld/test/ELF/gnu-ifunc-noplt-i386.s index 324ef95fd8917..d058e4053bdb3 100644 --- a/lld/test/ELF/gnu-ifunc-noplt-i386.s +++ b/lld/test/ELF/gnu-ifunc-noplt-i386.s @@ -9,8 +9,8 @@ // Check that we emitted relocations for the ifunc calls // CHECK: Relocations [ // CHECK-NEXT: Section (4) .rel.dyn { -// CHECK-NEXT: 0x4011F4 R_386_PLT32 bar // CHECK-NEXT: 0x4011EF R_386_PLT32 foo +// CHECK-NEXT: 0x4011F4 R_386_PLT32 bar // CHECK-NEXT: } // CHECK-NEXT: Section (5) .rel.plt { // CHECK-NEXT: 0x4032D4 R_386_JUMP_SLOT bar2 diff --git a/lld/test/ELF/gnu-ifunc-noplt.s b/lld/test/ELF/gnu-ifunc-noplt.s index 80fcbce44a044..510749eb1f8ab 100644 --- a/lld/test/ELF/gnu-ifunc-noplt.s +++ b/lld/test/ELF/gnu-ifunc-noplt.s @@ -18,8 +18,8 @@ // Check that we emitted relocations for the ifunc calls // CHECK: Relocations [ // CHECK-NEXT: Section (4) .rela.dyn { -// CHECK-NEXT: 0x201328 R_X86_64_PLT32 bar 0xFFFFFFFFFFFFFFFC // CHECK-NEXT: 0x201323 R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC +// CHECK-NEXT: 0x201328 R_X86_64_PLT32 bar 0xFFFFFFFFFFFFFFFC // CHECK-NEXT: } // CHECK-NEXT: Section (5) .rela.plt { // CHECK-NEXT: 0x203498 R_X86_64_JUMP_SLOT bar2 0x0 diff --git a/lld/test/ELF/gnu-ifunc.s b/lld/test/ELF/gnu-ifunc.s index dc7a851a57abe..49ba69a88be23 100644 --- a/lld/test/ELF/gnu-ifunc.s +++ b/lld/test/ELF/gnu-ifunc.s @@ -40,8 +40,8 @@ // CHECK-NEXT: Section: Undefined // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: __rela_iplt_end -// CHECK-NEXT: Value: 0x200188 +// CHECK-NEXT: Name: __rela_iplt_start +// CHECK-NEXT: Value: [[RELA]] // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Local // CHECK-NEXT: Type: None @@ -51,8 +51,8 @@ // CHECK-NEXT: Section: .rela.dyn // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: __rela_iplt_start -// CHECK-NEXT: Value: [[RELA]] +// CHECK-NEXT: Name: __rela_iplt_end +// CHECK-NEXT: Value: 0x200188 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Local // CHECK-NEXT: Type: None @@ -62,11 +62,11 @@ // CHECK-NEXT: Section: .rela.dyn // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: _start -// CHECK-NEXT: Value: 0x20118A +// CHECK-NEXT: Name: foo +// CHECK-NEXT: Value: 0x201188 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Global -// CHECK-NEXT: Type: None +// CHECK-NEXT: Type: GNU_IFunc // CHECK-NEXT: Other: 0 // CHECK-NEXT: Section: .text // CHECK-NEXT: } @@ -80,11 +80,11 @@ // CHECK-NEXT: Section: .text // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: foo -// CHECK-NEXT: Value: 0x201188 +// CHECK-NEXT: Name: _start +// CHECK-NEXT: Value: 0x20118A // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Global -// CHECK-NEXT: Type: GNU_IFunc +// CHECK-NEXT: Type: None // CHECK-NEXT: Other: 0 // CHECK-NEXT: Section: .text // CHECK-NEXT: } diff --git a/lld/test/ELF/icf-symbol-type.s b/lld/test/ELF/icf-symbol-type.s index 5a5b97d2a0f6b..904cb7ce23088 100644 --- a/lld/test/ELF/icf-symbol-type.s +++ b/lld/test/ELF/icf-symbol-type.s @@ -7,8 +7,8 @@ # We used to mark bar as absolute. # CHECK: [ 5] .text -# CHECK: [[ADDR:[0-9a-f]+]] 0 NOTYPE GLOBAL DEFAULT 5 bar -# CHECK: [[ADDR]] 0 NOTYPE GLOBAL DEFAULT 5 foo +# CHECK: [[ADDR:[0-9a-f]+]] 0 NOTYPE GLOBAL DEFAULT 5 foo +# CHECK: [[ADDR]] 0 NOTYPE GLOBAL DEFAULT 5 bar # The nop makes the test more interesting by making the offset of # text.f non zero. diff --git a/lld/test/ELF/interconnected-lazy.s b/lld/test/ELF/interconnected-lazy.s index 1a8d35a6bec6b..0d67318b3fa0e 100644 --- a/lld/test/ELF/interconnected-lazy.s +++ b/lld/test/ELF/interconnected-lazy.s @@ -9,11 +9,11 @@ ## Test we resolve both to the same file. # RUN: ld.lld -y a -y foo -y __foo %t/main.o --start-lib %t/a.o %t/b.o --end-lib -o /dev/null | FileCheck %s -# CHECK: a.o: lazy definition of __foo -# CHECK-NEXT: a.o: lazy definition of a +# CHECK: a.o: lazy definition of a # CHECK-NEXT: a.o: lazy definition of foo -# CHECK-NEXT: b.o: definition of __foo +# CHECK-NEXT: a.o: lazy definition of __foo # CHECK-NEXT: b.o: definition of foo +# CHECK-NEXT: b.o: definition of __foo # CHECK-NEXT: b.o: reference to a # CHECK-NEXT: a.o: definition of a diff --git a/lld/test/ELF/just-symbols-cref.s b/lld/test/ELF/just-symbols-cref.s index 8581c53eb5dfd..4aad58ccf36f7 100644 --- a/lld/test/ELF/just-symbols-cref.s +++ b/lld/test/ELF/just-symbols-cref.s @@ -6,8 +6,8 @@ # RUN: ld.lld -just-symbols=%t1.exe -o %t2.exe -cref | FileCheck %s # CHECK: Symbol File -# CHECK-NEXT: bar {{.*exe}} # CHECK-NEXT: foo {{.*exe}} +# CHECK-NEXT: bar {{.*exe}} .globl foo, bar foo: diff --git a/lld/test/ELF/just-symbols.s b/lld/test/ELF/just-symbols.s index cbceb2a1b2fd5..612243de29c0b 100644 --- a/lld/test/ELF/just-symbols.s +++ b/lld/test/ELF/just-symbols.s @@ -6,8 +6,8 @@ # RUN: ld.lld -just-symbols=%t1.exe -o %t2.exe # RUN: llvm-readelf -symbols %t2.exe | FileCheck %s -# CHECK: 0000000000011001 40 OBJECT GLOBAL DEFAULT ABS bar # CHECK: 0000000000010000 0 NOTYPE GLOBAL DEFAULT ABS foo +# CHECK: 0000000000011001 40 OBJECT GLOBAL DEFAULT ABS bar .globl foo, bar foo: diff --git a/lld/test/ELF/linkerscript/common-filespec.test b/lld/test/ELF/linkerscript/common-filespec.test index 99462dee9e086..a3b04edb29eaa 100644 --- a/lld/test/ELF/linkerscript/common-filespec.test +++ b/lld/test/ELF/linkerscript/common-filespec.test @@ -67,22 +67,22 @@ SECTIONS { # For a common with multiple definitions, the largest one wins and it must be # assigned to the section from the file which provided the winning def # CHECK: Symbol { -# CHECK: Name: common_multiple -# CHECK-NEXT: Value: 0x10 -# CHECK-NEXT: Size: 32 +# CHECK: Name: common_uniq_0 +# CHECK-NEXT: Value: 0x4 +# CHECK-NEXT: Size: 4 # CHECK-NEXT: Binding: Global # CHECK-NEXT: Type: Object # CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: .common_2 +# CHECK-NEXT: Section: .common_0 # CHECK-NEXT: } # CHECK: Symbol { -# CHECK: Name: common_uniq_0 -# CHECK-NEXT: Value: 0x4 -# CHECK-NEXT: Size: 4 +# CHECK: Name: common_multiple +# CHECK-NEXT: Value: 0x10 +# CHECK-NEXT: Size: 32 # CHECK-NEXT: Binding: Global # CHECK-NEXT: Type: Object # CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: .common_0 +# CHECK-NEXT: Section: .common_2 # CHECK-NEXT: } # CHECK: Symbol { # CHECK: Name: common_uniq_1 diff --git a/lld/test/ELF/linkerscript/map-file2.test b/lld/test/ELF/linkerscript/map-file2.test index 535043282249f..8efb5d6cd3d34 100644 --- a/lld/test/ELF/linkerscript/map-file2.test +++ b/lld/test/ELF/linkerscript/map-file2.test @@ -34,8 +34,8 @@ SECTIONS { # CHECK-NEXT: 1228 3218 30 1 {{.*}}{{/|\\}}map-file2.test.tmp.o:(.eh_frame+0x0) # CHECK-NEXT: 125c 324c 1 4 .text # CHECK-NEXT: 125c 324c 1 4 {{.*}}{{/|\\}}map-file2.test.tmp.o:(.text) -# CHECK-NEXT: 125c 324c 0 1 f(int) # CHECK-NEXT: 125c 324c 0 1 _start +# CHECK-NEXT: 125c 324c 0 1 f(int) # CHECK-NEXT: 0 0 8 1 .comment # CHECK-NEXT: 0 0 8 1 :(.comment) # CHECK-NEXT: 0 0 48 8 .symtab diff --git a/lld/test/ELF/linkerscript/symbol-alias-relocation.s b/lld/test/ELF/linkerscript/symbol-alias-relocation.s index b464828126481..28ee9c795b8ad 100644 --- a/lld/test/ELF/linkerscript/symbol-alias-relocation.s +++ b/lld/test/ELF/linkerscript/symbol-alias-relocation.s @@ -8,7 +8,7 @@ ## (It should belong to the section .text and point to it's start). # CHECK: Symbol { -# CHECK: Name: __text +# CHECK: Name: aliasto__text # CHECK-NEXT: Value: 0x1000 # CHECK-NEXT: Size: 0 # CHECK-NEXT: Binding: Global @@ -18,7 +18,7 @@ # CHECK-NEXT: } # CHECK: Symbol { -# CHECK: Name: aliasto__text +# CHECK: Name: __text # CHECK-NEXT: Value: 0x1000 # CHECK-NEXT: Size: 0 # CHECK-NEXT: Binding: Global diff --git a/lld/test/ELF/linkerscript/symbol-assignexpr.s b/lld/test/ELF/linkerscript/symbol-assignexpr.s index 3bab4db7ab48a..8bd8a9c1c44d3 100644 --- a/lld/test/ELF/linkerscript/symbol-assignexpr.s +++ b/lld/test/ELF/linkerscript/symbol-assignexpr.s @@ -25,9 +25,9 @@ # RUN: llvm-nm -p %t | FileCheck %s # CHECK: 0000000000000000 T _start +# CHECK-NEXT: 0000000000000001 T foo # CHECK-NEXT: 0000000000005678 A bar # CHECK-NEXT: 0000000000009abc A baz -# CHECK-NEXT: 0000000000000001 T foo # CHECK-NEXT: 0000000000001000 A symbol # CHECK-NEXT: 0000000000002234 A symbol2 # CHECK-NEXT: 0000000000002234 A symbol3 diff --git a/lld/test/ELF/linkerscript/synthetic-symbols1.test b/lld/test/ELF/linkerscript/synthetic-symbols1.test index f32248b405924..86c5dd8a5dcb4 100644 --- a/lld/test/ELF/linkerscript/synthetic-symbols1.test +++ b/lld/test/ELF/linkerscript/synthetic-symbols1.test @@ -39,9 +39,9 @@ SECTIONS { } # CHECK: 0000000000000160 l .foo 0000000000000000 .hidden _end_sec +# CHECK-NEXT: 000000000000104c g .text 0000000000000000 _start # CHECK-NEXT: 0000000000000158 g .foo 0000000000000000 _begin_sec # CHECK-NEXT: 0000000000000160 g *ABS* 0000000000000000 _end_sec_abs -# CHECK-NEXT: 000000000000104c g .text 0000000000000000 _start # CHECK-NEXT: 0000000000000158 g .foo 0000000000000000 begin_foo # CHECK-NEXT: 0000000000000160 g .foo 0000000000000000 end_foo # CHECK-NEXT: 0000000000000008 g *ABS* 0000000000000000 size_foo_1 diff --git a/lld/test/ELF/linkerscript/version-linker-symbol.s b/lld/test/ELF/linkerscript/version-linker-symbol.s index a92580ecd12b9..be6c4fcf2f804 100644 --- a/lld/test/ELF/linkerscript/version-linker-symbol.s +++ b/lld/test/ELF/linkerscript/version-linker-symbol.s @@ -5,21 +5,21 @@ # RUN: ld.lld --version-script %t.script -shared %t.o -o %t.so # RUN: llvm-readobj --dyn-syms %t.so | FileCheck %s -# CHECK: Name: _end@@VER1 +# CHECK: Name: foo@@VER1 # CHECK-NEXT: Value: 0 # CHECK-NEXT: Size: 0 # CHECK-NEXT: Binding: Global # CHECK-NEXT: Type: None # CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: .data +# CHECK-NEXT: Section: .text -# CHECK: Name: foo@@VER1 +# CHECK: Name: _end@@VER1 # CHECK-NEXT: Value: 0 # CHECK-NEXT: Size: 0 # CHECK-NEXT: Binding: Global # CHECK-NEXT: Type: None # CHECK-NEXT: Other: 0 -# CHECK-NEXT: Section: .text +# CHECK-NEXT: Section: .data .global foo foo: diff --git a/lld/test/ELF/many-alloc-sections.s b/lld/test/ELF/many-alloc-sections.s index 233f11475989d..1009b7a086e1a 100644 --- a/lld/test/ELF/many-alloc-sections.s +++ b/lld/test/ELF/many-alloc-sections.s @@ -49,11 +49,11 @@ // GC: Symbol { // GC-NEXT: Name: sdn // GC: Symbol { -// GC-NEXT: Name: _start -// GC: Symbol { // GC-NEXT: Name: abs // GC: Symbol { // GC-NEXT: Name: common +// GC: Symbol { +// GC-NEXT: Name: _start // GC-NOT: Symbol { .macro gen_sections4 x diff --git a/lld/test/ELF/mips-got-extsym.s b/lld/test/ELF/mips-got-extsym.s index b4ee5fc49fb7e..7dd2841bee79c 100644 --- a/lld/test/ELF/mips-got-extsym.s +++ b/lld/test/ELF/mips-got-extsym.s @@ -15,8 +15,8 @@ # CHECK-NOT: bar # CHECK: Symbol table '.symtab' -# CHECK: {{.*}}: 00000000 {{.*}} _foo # CHECK: {{.*}}: [[BAR:[0-9a-f]+]] {{.*}} bar +# CHECK: {{.*}}: 00000000 {{.*}} _foo # CHECK: Primary GOT: # CHECK: Local entries: diff --git a/lld/test/ELF/mips-micro-cross-calls.s b/lld/test/ELF/mips-micro-cross-calls.s index c58d7bcc20101..3e88235887535 100644 --- a/lld/test/ELF/mips-micro-cross-calls.s +++ b/lld/test/ELF/mips-micro-cross-calls.s @@ -15,8 +15,8 @@ # RUN: | FileCheck --check-prefix=MICRO %s # REG: {{0*}}[[FOOT:[0-9a-f]+]] l F .text 0000000e 0x80 __microLA25Thunk_foo -# REG: {{0*}}[[BAR:[0-9a-f]+]] g F .text 00000000 bar # REG: {{0*}}[[MIC:[0-9a-f]+]] g .text 00000000 0x80 micro +# REG: {{0*}}[[BAR:[0-9a-f]+]] g F .text 00000000 bar # REG: <__start>: # REG-NEXT: jalx 0x[[MIC]] diff --git a/lld/test/ELF/mips-tls-64.s b/lld/test/ELF/mips-tls-64.s index f5ea5bdd861fd..2ae906f844007 100644 --- a/lld/test/ELF/mips-tls-64.s +++ b/lld/test/ELF/mips-tls-64.s @@ -22,8 +22,8 @@ # RUN: llvm-readobj -r -A %t-out.so | FileCheck -check-prefix=SO %s # DIS: 0000000000000000 l O .tdata 0000000000000000 loc -# DIS: 0000000000000004 g O .tdata 0000000000000000 bar # DIS: 0000000000000000 O *UND* 0000000000000000 foo +# DIS: 0000000000000004 g O .tdata 0000000000000000 bar # DIS: Contents of section .got: # DIS-NEXT: 30000 00000000 00000000 80000000 00000000 @@ -74,12 +74,12 @@ # SO: Relocations [ # SO-NEXT: Section (7) .rel.dyn { # SO-NEXT: 0x30030 R_MIPS_TLS_DTPMOD64/R_MIPS_NONE/R_MIPS_NONE - -# SO-NEXT: 0x30018 R_MIPS_TLS_TPREL64/R_MIPS_NONE/R_MIPS_NONE bar -# SO-NEXT: 0x30040 R_MIPS_TLS_DTPMOD64/R_MIPS_NONE/R_MIPS_NONE bar -# SO-NEXT: 0x30048 R_MIPS_TLS_DTPREL64/R_MIPS_NONE/R_MIPS_NONE bar # SO-NEXT: 0x30010 R_MIPS_TLS_TPREL64/R_MIPS_NONE/R_MIPS_NONE foo # SO-NEXT: 0x30020 R_MIPS_TLS_DTPMOD64/R_MIPS_NONE/R_MIPS_NONE foo # SO-NEXT: 0x30028 R_MIPS_TLS_DTPREL64/R_MIPS_NONE/R_MIPS_NONE foo +# SO-NEXT: 0x30018 R_MIPS_TLS_TPREL64/R_MIPS_NONE/R_MIPS_NONE bar +# SO-NEXT: 0x30040 R_MIPS_TLS_DTPMOD64/R_MIPS_NONE/R_MIPS_NONE bar +# SO-NEXT: 0x30048 R_MIPS_TLS_DTPREL64/R_MIPS_NONE/R_MIPS_NONE bar # SO-NEXT: } # SO-NEXT: ] # SO: Primary GOT { diff --git a/lld/test/ELF/mips-tls-static.s b/lld/test/ELF/mips-tls-static.s index 7801a90bb7c00..d489200ea7fc8 100644 --- a/lld/test/ELF/mips-tls-static.s +++ b/lld/test/ELF/mips-tls-static.s @@ -7,8 +7,8 @@ # RUN: llvm-objdump -s -t %t.exe | FileCheck %s # CHECK: SYMBOL TABLE: -# CHECK: [[TGA:[0-9a-f]+]] g .text 00000000 __tls_get_addr # CHECK: 00000000 g O .tdata 00000000 tls1 +# CHECK: [[TGA:[0-9a-f]+]] g .text 00000000 __tls_get_addr # # CHECK: Contents of section .data: # CHECK-NEXT: {{.*}} [[TGA]] ffff8004 ffff9004 diff --git a/lld/test/ELF/mips-tls.s b/lld/test/ELF/mips-tls.s index 703488feb6a02..e7882687dfc81 100644 --- a/lld/test/ELF/mips-tls.s +++ b/lld/test/ELF/mips-tls.s @@ -22,8 +22,8 @@ # RUN: llvm-readobj -r -A %t-out.so | FileCheck -check-prefix=SO %s # DIS: 00000000 l O .tdata 00000000 loc -# DIS: 00000004 g O .tdata 00000000 bar # DIS: 00000000 O *UND* 00000000 foo +# DIS: 00000004 g O .tdata 00000000 bar # DIS: Contents of section .got: # DIS-NEXT: 30000 00000000 80000000 00000000 ffff9004 @@ -70,12 +70,12 @@ # SO: Relocations [ # SO-NEXT: Section (7) .rel.dyn { # SO-NEXT: 0x30018 R_MIPS_TLS_DTPMOD32 - -# SO-NEXT: 0x3000C R_MIPS_TLS_TPREL32 bar -# SO-NEXT: 0x30020 R_MIPS_TLS_DTPMOD32 bar -# SO-NEXT: 0x30024 R_MIPS_TLS_DTPREL32 bar # SO-NEXT: 0x30008 R_MIPS_TLS_TPREL32 foo # SO-NEXT: 0x30010 R_MIPS_TLS_DTPMOD32 foo # SO-NEXT: 0x30014 R_MIPS_TLS_DTPREL32 foo +# SO-NEXT: 0x3000C R_MIPS_TLS_TPREL32 bar +# SO-NEXT: 0x30020 R_MIPS_TLS_DTPMOD32 bar +# SO-NEXT: 0x30024 R_MIPS_TLS_DTPREL32 bar # SO-NEXT: } # SO-NEXT: ] # SO: Primary GOT { diff --git a/lld/test/ELF/output-section.s b/lld/test/ELF/output-section.s index d4f893bb775ae..e47904a41d1c4 100644 --- a/lld/test/ELF/output-section.s +++ b/lld/test/ELF/output-section.s @@ -3,23 +3,22 @@ // RUN: ld.lld %t -o %t2 // RUN: llvm-readobj --symbols %t2 | FileCheck %s -// CHECK: Symbol { -// CHECK: Name: bar_sym +// CHECK: Name: foo_sym // CHECK-NEXT: Value: // CHECK-NEXT: Size: // CHECK-NEXT: Binding: // CHECK-NEXT: Type: // CHECK-NEXT: Other: -// CHECK-NEXT: Section: bar +// CHECK-NEXT: Section: foo // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: foo_sym +// CHECK-NEXT: Name: bar_sym // CHECK-NEXT: Value: // CHECK-NEXT: Size: // CHECK-NEXT: Binding: // CHECK-NEXT: Type: // CHECK-NEXT: Other: -// CHECK-NEXT: Section: foo +// CHECK-NEXT: Section: bar // CHECK-NEXT: } .section foo diff --git a/lld/test/ELF/partition-notes.s b/lld/test/ELF/partition-notes.s index ef99df49bb537..b02e490fff218 100644 --- a/lld/test/ELF/partition-notes.s +++ b/lld/test/ELF/partition-notes.s @@ -37,7 +37,7 @@ // CHECK-NEXT: Owner: GNU // CHECK-NEXT: Data size: // CHECK-NEXT: Type: NT_GNU_BUILD_ID (unique build ID bitstring) -// CHECK-NEXT: Build ID: 08b93eab87177a2356d1b0d1148339463f98dac2 +// CHECK-NEXT: Build ID: bb5542bd74252653e286044980d602874d237ae0 // CHECK-NEXT: } // CHECK-NEXT: } // CHECK-NEXT: ] diff --git a/lld/test/ELF/partition-synthetic-sections.s b/lld/test/ELF/partition-synthetic-sections.s index 2a9bfc5243c76..e959d96583f7a 100644 --- a/lld/test/ELF/partition-synthetic-sections.s +++ b/lld/test/ELF/partition-synthetic-sections.s @@ -143,7 +143,7 @@ // PART0: 0000000000000498 0 NOTYPE LOCAL HIDDEN {{.*}} __part_index_end // PART-INDEX: Contents of section .dynstr: -// PART-INDEX-NEXT: 03a8 00663100 66320070 30007061 72743100 .f1.f2.p0.part1. +// PART-INDEX-NEXT: 03a8 00703000 66310066 32007061 72743100 .p0.f1.f2.part1. // PART-INDEX: Contents of section .rodata: // 0x48c + 0xffffff26 = 0x3b2 // 0x490 + 0x3b70 = 0x4000 diff --git a/lld/test/ELF/partitions.s b/lld/test/ELF/partitions.s index 712f027a912e3..f875a9cb4906c 100644 --- a/lld/test/ELF/partitions.s +++ b/lld/test/ELF/partitions.s @@ -22,9 +22,9 @@ // CHECK: [[P1]] f4 // CHECK: [[MAIN]] f5 // CHECK: [[P2]] f6 -// CHECK: [[MAIN]] _start // CHECK: [[P1]] f1 // CHECK: [[P2]] f2 +// CHECK: [[MAIN]] _start .section .llvm_sympart.f1,"",@llvm_sympart .asciz "part1" diff --git a/lld/test/ELF/ppc64-local-entry.s b/lld/test/ELF/ppc64-local-entry.s index 62a71b68555f8..00940b7b27f76 100644 --- a/lld/test/ELF/ppc64-local-entry.s +++ b/lld/test/ELF/ppc64-local-entry.s @@ -44,4 +44,4 @@ _start: // st_other's PPC64 specific flags, thus we check the // result of the hexdump of .symtab section. -// CHECK: 0070 00000000 00000000 00000009 12600001 +// CHECK: 0060 00000003 12600001 00000000 00000000 diff --git a/lld/test/ELF/ppc64-pcrel-call-to-extern.s b/lld/test/ELF/ppc64-pcrel-call-to-extern.s index a1d9a7df3b443..fa476b8884bd4 100644 --- a/lld/test/ELF/ppc64-pcrel-call-to-extern.s +++ b/lld/test/ELF/ppc64-pcrel-call-to-extern.s @@ -27,9 +27,9 @@ ## external function, a r12 setup stub is inserted. # SYMBOL: Symbol table '.dynsym' contains 4 entries: -# SYMBOL: 1: 0000000000000000 0 NOTYPE GLOBAL DEFAULT [] UND callee_global_TOC -# SYMBOL-NEXT: 2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND callee_global_stother0 -# SYMBOL-NEXT: 3: 0000000000000000 0 NOTYPE GLOBAL DEFAULT [] UND callee_global_stother1 +# SYMBOL: 1: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND callee_global_stother0 +# SYMBOL-NEXT: 2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT [] UND callee_global_stother1 +# SYMBOL-NEXT: 3: 0000000000000000 0 NOTYPE GLOBAL DEFAULT [] UND callee_global_TOC # SYMBOL: Symbol table '.symtab' contains 12 entries: # SYMBOL: 2: 0000000010010000 0 NOTYPE LOCAL DEFAULT [] 6 caller1 @@ -38,9 +38,9 @@ # SYMBOL: 6: 0000000010010010 16 FUNC LOCAL DEFAULT 6 __plt_pcrel_callee_global_stother0 # SYMBOL-NEXT: 7: 0000000010020010 16 FUNC LOCAL DEFAULT 7 __plt_pcrel_callee_global_stother1 # SYMBOL-NEXT: 8: 0000000010030010 16 FUNC LOCAL DEFAULT 8 __plt_pcrel_callee_global_TOC -# SYMBOL-NEXT: 9: 0000000000000000 0 NOTYPE GLOBAL DEFAULT [] UND callee_global_TOC -# SYMBOL-NEXT: 10: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND callee_global_stother0 -# SYMBOL-NEXT: 11: 0000000000000000 0 NOTYPE GLOBAL DEFAULT [] UND callee_global_stother1 +# SYMBOL-NEXT: 9: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND callee_global_stother0 +# SYMBOL-NEXT: 10: 0000000000000000 0 NOTYPE GLOBAL DEFAULT [] UND callee_global_stother1 +# SYMBOL-NEXT: 11: 0000000000000000 0 NOTYPE GLOBAL DEFAULT [] UND callee_global_TOC ## DT_PLTGOT points to .plt # SEC: .plt NOBITS 0000000010030148 040148 000028 00 WA 0 0 8 diff --git a/lld/test/ELF/ppc64-tls-ie.s b/lld/test/ELF/ppc64-tls-ie.s index 8430ab3a4fd0d..bb82fdf1cfc52 100644 --- a/lld/test/ELF/ppc64-tls-ie.s +++ b/lld/test/ELF/ppc64-tls-ie.s @@ -24,9 +24,9 @@ # IE-REL: .rela.dyn { # IE-REL-NEXT: 0x204A0 R_PPC64_TPREL64 c 0x0 +# IE-REL-NEXT: 0x204A8 R_PPC64_TPREL64 s 0x0 # IE-REL-NEXT: 0x204B0 R_PPC64_TPREL64 i 0x0 # IE-REL-NEXT: 0x204B8 R_PPC64_TPREL64 l 0x0 -# IE-REL-NEXT: 0x204A8 R_PPC64_TPREL64 s 0x0 # IE-REL-NEXT: } # INPUT-REL: R_PPC64_GOT_TPREL16_HA c 0x0 diff --git a/lld/test/ELF/ppc64-tls-pcrel-gd.s b/lld/test/ELF/ppc64-tls-pcrel-gd.s index 6dc8b80396e41..565f29ce0093b 100644 --- a/lld/test/ELF/ppc64-tls-pcrel-gd.s +++ b/lld/test/ELF/ppc64-tls-pcrel-gd.s @@ -42,30 +42,30 @@ y: #--- asm # GD-RELOC: Relocation section '.rela.dyn' at offset 0x100b8 contains 4 entries: -# GD-RELOC: 0000000001001160 0000000200000044 R_PPC64_DTPMOD64 0000000000000000 x + 0 -# GD-RELOC: 0000000001001168 000000020000004e R_PPC64_DTPREL64 0000000000000000 x + 0 +# GD-RELOC: 0000000001001160 0000000100000044 R_PPC64_DTPMOD64 0000000000000000 x + 0 +# GD-RELOC: 0000000001001168 000000010000004e R_PPC64_DTPREL64 0000000000000000 x + 0 # GD-RELOC: 0000000001001170 0000000300000044 R_PPC64_DTPMOD64 0000000000000000 y + 0 # GD-RELOC: 0000000001001178 000000030000004e R_PPC64_DTPREL64 0000000000000000 y + 0 # GD-SYM: Symbol table '.dynsym' contains 4 entries: -# GD-SYM: 2: 0000000000000000 0 TLS GLOBAL DEFAULT UND x -# GD-SYM: 3: 0000000000000000 0 TLS GLOBAL DEFAULT UND y +# GD-SYM: 0000000000000000 0 TLS GLOBAL DEFAULT UND x +# GD-SYM: 0000000000000000 0 TLS GLOBAL DEFAULT UND y # GDTOIE-RELOC: Relocation section '.rela.dyn' at offset 0x{{.*}} contains 2 entries: -# GDTOIE-RELOC: 00000000010010e0 0000000200000049 R_PPC64_TPREL64 0000000000000000 x + 0 +# GDTOIE-RELOC: 00000000010010e0 0000000100000049 R_PPC64_TPREL64 0000000000000000 x + 0 # GDTOIE-RELOC: 00000000010010e8 0000000300000049 R_PPC64_TPREL64 0000000000000000 y + 0 # GDTOIE-SYM: Symbol table '.dynsym' contains 4 entries: -# GDTOIE-SYM: 2: 0000000000000000 0 TLS GLOBAL DEFAULT UND x -# GDTOIE-SYM: 3: 0000000000000000 0 TLS GLOBAL DEFAULT UND y +# GDTOIE-SYM: 0000000000000000 0 TLS GLOBAL DEFAULT UND x +# GDTOIE-SYM: 0000000000000000 0 TLS GLOBAL DEFAULT UND y # GDTOLE-RELOC: There are no relocations in this file. # GDTOLE-SYM: Symbol table '.symtab' contains 5 entries: -# GDTOLE-SYM: 3: 0000000000000000 0 TLS GLOBAL DEFAULT 3 x -# GDTOLE-SYM: 4: 0000000000000004 0 TLS GLOBAL DEFAULT 3 y +# GDTOLE-SYM: 0000000000000000 0 TLS GLOBAL DEFAULT 3 x +# GDTOLE-SYM: 0000000000000004 0 TLS GLOBAL DEFAULT 3 y # GD-LABEL: : # GD-NEXT: paddi 3, 0, 352, 1 diff --git a/lld/test/ELF/pre_init_fini_array.s b/lld/test/ELF/pre_init_fini_array.s index d72001edb812f..40dce83014474 100644 --- a/lld/test/ELF/pre_init_fini_array.s +++ b/lld/test/ELF/pre_init_fini_array.s @@ -45,12 +45,12 @@ _start: // CHECK-LABEL: Symbol table '.symtab' // CHECK: Value Size Type Bind Vis Ndx Name -// CHECK: [[# FINI_ADDR + FINI_SIZE]] 0 NOTYPE LOCAL HIDDEN [[#]] __fini_array_end -// CHECK-NEXT: [[# FINI_ADDR]] 0 NOTYPE LOCAL HIDDEN [[#]] __fini_array_start -// CHECK-NEXT: [[# INIT_ADDR + INIT_SIZE]] 0 NOTYPE LOCAL HIDDEN [[#]] __init_array_end -// CHECK-NEXT: [[# INIT_ADDR]] 0 NOTYPE LOCAL HIDDEN [[#]] __init_array_start +// CHECK: [[# PREINIT_ADDR]] 0 NOTYPE LOCAL HIDDEN [[#]] __preinit_array_start // CHECK-NEXT: [[# PREINIT_ADDR + PREINIT_SIZE]] 0 NOTYPE LOCAL HIDDEN [[#]] __preinit_array_end -// CHECK-NEXT: [[# PREINIT_ADDR]] 0 NOTYPE LOCAL HIDDEN [[#]] __preinit_array_start +// CHECK-NEXT: [[# INIT_ADDR]] 0 NOTYPE LOCAL HIDDEN [[#]] __init_array_start +// CHECK-NEXT: [[# INIT_ADDR + INIT_SIZE]] 0 NOTYPE LOCAL HIDDEN [[#]] __init_array_end +// CHECK-NEXT: [[# FINI_ADDR]] 0 NOTYPE LOCAL HIDDEN [[#]] __fini_array_start +// CHECK-NEXT: [[# FINI_ADDR + FINI_SIZE]] 0 NOTYPE LOCAL HIDDEN [[#]] __fini_array_end // DISASM: SYMBOL TABLE: // DISASM-DAG: {{0*}}[[# %x, PREINIT_ARRAY_START:]] l .preinit_array {{0+}} .hidden __preinit_array_start diff --git a/lld/test/ELF/relocatable-gc.s b/lld/test/ELF/relocatable-gc.s index caa23314f37aa..a59aa10b4cd67 100644 --- a/lld/test/ELF/relocatable-gc.s +++ b/lld/test/ELF/relocatable-gc.s @@ -55,9 +55,9 @@ # KEEP_START: Symbol table '.symtab' contains 10 entries: # KEEP_START: 5: {{.*}} SECTION -# KEEP_START-NEXT: 6: {{.*}} UND __start_qux -# KEEP_START-NEXT: 7: {{.*}} 1 _start -# KEEP_START-NEXT: 8: {{.*}} 5 fred +# KEEP_START-NEXT: 6: {{.*}} 1 _start +# KEEP_START-NEXT: 7: {{.*}} 5 fred +# KEEP_START-NEXT: 8: {{.*}} UND __start_qux # KEEP_START-NEXT: 9: {{.*}} UND fred_und .section qux,"a",@progbits diff --git a/lld/test/ELF/relocatable-rel-iplt.s b/lld/test/ELF/relocatable-rel-iplt.s index 6fc50da1b86c6..3867ba1fedc1f 100644 --- a/lld/test/ELF/relocatable-rel-iplt.s +++ b/lld/test/ELF/relocatable-rel-iplt.s @@ -23,7 +23,7 @@ // CHECK-NEXT: Section: .text (0x1) // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: __rel_iplt_end (1) +// CHECK-NEXT: Name: __rel_iplt_start (1) // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Weak (0x2) @@ -34,7 +34,7 @@ // CHECK-NEXT: Section: Undefined (0x0) // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: __rel_iplt_start (16) +// CHECK-NEXT: Name: __rel_iplt_end (18) // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Weak (0x2) diff --git a/lld/test/ELF/relocatable-symbols.s b/lld/test/ELF/relocatable-symbols.s index fd49f7d06a5e5..d21140e44b4e1 100644 --- a/lld/test/ELF/relocatable-symbols.s +++ b/lld/test/ELF/relocatable-symbols.s @@ -66,8 +66,8 @@ # SYMBOL-NEXT: 0x38 R_X86_64_PC32 __fini_array_end 0xFFFFFFFFFFFFFFFC # SYMBOL-NEXT: } # SYMBOL-NEXT: ] -# SYMBOL: Symbol { -# SYMBOL: Name: __fini_array_end + +# SYMBOL: Name: __start_foo # SYMBOL-NEXT: Value: 0x0 # SYMBOL-NEXT: Size: 0 # SYMBOL-NEXT: Binding: Global @@ -76,7 +76,7 @@ # SYMBOL-NEXT: Section: Undefined # SYMBOL-NEXT: } # SYMBOL-NEXT: Symbol { -# SYMBOL-NEXT: Name: __fini_array_start +# SYMBOL-NEXT: Name: __stop_foo # SYMBOL-NEXT: Value: 0x0 # SYMBOL-NEXT: Size: 0 # SYMBOL-NEXT: Binding: Global @@ -85,7 +85,7 @@ # SYMBOL-NEXT: Section: Undefined # SYMBOL-NEXT: } # SYMBOL-NEXT: Symbol { -# SYMBOL-NEXT: Name: __init_array_end +# SYMBOL-NEXT: Name: __start_bar # SYMBOL-NEXT: Value: 0x0 # SYMBOL-NEXT: Size: 0 # SYMBOL-NEXT: Binding: Global @@ -94,7 +94,7 @@ # SYMBOL-NEXT: Section: Undefined # SYMBOL-NEXT: } # SYMBOL-NEXT: Symbol { -# SYMBOL-NEXT: Name: __init_array_start +# SYMBOL-NEXT: Name: __stop_bar # SYMBOL-NEXT: Value: 0x0 # SYMBOL-NEXT: Size: 0 # SYMBOL-NEXT: Binding: Global @@ -103,7 +103,7 @@ # SYMBOL-NEXT: Section: Undefined # SYMBOL-NEXT: } # SYMBOL-NEXT: Symbol { -# SYMBOL-NEXT: Name: __preinit_array_end +# SYMBOL-NEXT: Name: __start_doo # SYMBOL-NEXT: Value: 0x0 # SYMBOL-NEXT: Size: 0 # SYMBOL-NEXT: Binding: Global @@ -112,7 +112,7 @@ # SYMBOL-NEXT: Section: Undefined # SYMBOL-NEXT: } # SYMBOL-NEXT: Symbol { -# SYMBOL-NEXT: Name: __preinit_array_start +# SYMBOL-NEXT: Name: __stop_doo # SYMBOL-NEXT: Value: 0x0 # SYMBOL-NEXT: Size: 0 # SYMBOL-NEXT: Binding: Global @@ -121,7 +121,7 @@ # SYMBOL-NEXT: Section: Undefined # SYMBOL-NEXT: } # SYMBOL-NEXT: Symbol { -# SYMBOL-NEXT: Name: __start_bar +# SYMBOL-NEXT: Name: __preinit_array_start # SYMBOL-NEXT: Value: 0x0 # SYMBOL-NEXT: Size: 0 # SYMBOL-NEXT: Binding: Global @@ -130,7 +130,7 @@ # SYMBOL-NEXT: Section: Undefined # SYMBOL-NEXT: } # SYMBOL-NEXT: Symbol { -# SYMBOL-NEXT: Name: __start_doo +# SYMBOL-NEXT: Name: __preinit_array_end # SYMBOL-NEXT: Value: 0x0 # SYMBOL-NEXT: Size: 0 # SYMBOL-NEXT: Binding: Global @@ -139,7 +139,7 @@ # SYMBOL-NEXT: Section: Undefined # SYMBOL-NEXT: } # SYMBOL-NEXT: Symbol { -# SYMBOL-NEXT: Name: __start_foo +# SYMBOL-NEXT: Name: __init_array_start # SYMBOL-NEXT: Value: 0x0 # SYMBOL-NEXT: Size: 0 # SYMBOL-NEXT: Binding: Global @@ -148,7 +148,7 @@ # SYMBOL-NEXT: Section: Undefined # SYMBOL-NEXT: } # SYMBOL-NEXT: Symbol { -# SYMBOL-NEXT: Name: __stop_bar +# SYMBOL-NEXT: Name: __init_array_end # SYMBOL-NEXT: Value: 0x0 # SYMBOL-NEXT: Size: 0 # SYMBOL-NEXT: Binding: Global @@ -156,8 +156,8 @@ # SYMBOL-NEXT: Other: 0 # SYMBOL-NEXT: Section: Undefined # SYMBOL-NEXT: } -# SYMBOL-NEXT: Symbol { -# SYMBOL-NEXT: Name: __stop_doo +# SYMBOL: Symbol { +# SYMBOL-NEXT: Name: __fini_array_start # SYMBOL-NEXT: Value: 0x0 # SYMBOL-NEXT: Size: 0 # SYMBOL-NEXT: Binding: Global @@ -166,7 +166,7 @@ # SYMBOL-NEXT: Section: Undefined # SYMBOL-NEXT: } # SYMBOL-NEXT: Symbol { -# SYMBOL-NEXT: Name: __stop_foo +# SYMBOL-NEXT: Name: __fini_array_end # SYMBOL-NEXT: Value: 0x0 # SYMBOL-NEXT: Size: 0 # SYMBOL-NEXT: Binding: Global diff --git a/lld/test/ELF/resolution.s b/lld/test/ELF/resolution.s index d570e51972d6a..b2b2171d69759 100644 --- a/lld/test/ELF/resolution.s +++ b/lld/test/ELF/resolution.s @@ -11,39 +11,39 @@ // CHECK: Symbol table '.symtab' contains 34 entries: // CHECK-NEXT: Num: Value Size Type Bind Vis Ndx Name // CHECK-NEXT: 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND -// CHECK-NEXT: 1: 00000000002021ec 63 OBJECT GLOBAL DEFAULT 2 CommonStrong_with_CommonStrong -// CHECK-NEXT: 2: 000000000020222c 30 OBJECT GLOBAL DEFAULT 2 CommonStrong_with_CommonWeak -// CHECK-NEXT: 3: 00000000002011cc 55 NOTYPE GLOBAL DEFAULT 1 CommonStrong_with_RegularStrong -// CHECK-NEXT: 4: 000000000020224c 22 OBJECT GLOBAL DEFAULT 2 CommonStrong_with_RegularWeak -// CHECK-NEXT: 5: 0000000000202264 27 OBJECT GLOBAL DEFAULT 2 CommonStrong_with_UndefStrong -// CHECK-NEXT: 6: 0000000000202280 26 OBJECT GLOBAL DEFAULT 2 CommonStrong_with_UndefWeak -// CHECK-NEXT: 7: 000000000020229c 61 OBJECT GLOBAL DEFAULT 2 CommonWeak_with_CommonStrong -// CHECK-NEXT: 8: 00000000002022dc 28 OBJECT WEAK DEFAULT 2 CommonWeak_with_CommonWeak -// CHECK-NEXT: 9: 00000000002011cc 53 NOTYPE GLOBAL DEFAULT 1 CommonWeak_with_RegularStrong -// CHECK-NEXT: 10: 00000000002022f8 20 OBJECT WEAK DEFAULT 2 CommonWeak_with_RegularWeak -// CHECK-NEXT: 11: 000000000020230c 25 OBJECT WEAK DEFAULT 2 CommonWeak_with_UndefStrong -// CHECK-NEXT: 12: 0000000000202328 24 OBJECT WEAK DEFAULT 2 CommonWeak_with_UndefWeak -// CHECK-NEXT: 13: 0000000000201159 10 NOTYPE GLOBAL DEFAULT 1 RegularStrong_with_CommonStrong -// CHECK-NEXT: 14: 0000000000201159 9 NOTYPE GLOBAL DEFAULT 1 RegularStrong_with_CommonWeak -// CHECK-NEXT: 15: 0000000000201159 2 NOTYPE GLOBAL DEFAULT 1 RegularStrong_with_RegularWeak -// CHECK-NEXT: 16: 0000000000201159 6 NOTYPE GLOBAL DEFAULT 1 RegularStrong_with_UndefStrong -// CHECK-NEXT: 17: 0000000000201159 5 NOTYPE GLOBAL DEFAULT 1 RegularStrong_with_UndefWeak -// CHECK-NEXT: 18: 0000000000202340 40 OBJECT GLOBAL DEFAULT 2 RegularWeak_with_CommonStrong -// CHECK-NEXT: 19: 0000000000201159 7 NOTYPE WEAK DEFAULT 1 RegularWeak_with_CommonWeak -// CHECK-NEXT: 20: 00000000002011a4 33 NOTYPE GLOBAL DEFAULT 1 RegularWeak_with_RegularStrong -// CHECK-NEXT: 21: 0000000000201159 0 NOTYPE WEAK DEFAULT 1 RegularWeak_with_RegularWeak -// CHECK-NEXT: 22: 0000000000201159 4 NOTYPE WEAK DEFAULT 1 RegularWeak_with_UndefStrong -// CHECK-NEXT: 23: 0000000000201159 3 NOTYPE WEAK DEFAULT 1 RegularWeak_with_UndefWeak -// CHECK-NEXT: 24: 0000000000202368 51 OBJECT GLOBAL DEFAULT 2 UndefStrong_with_CommonStrong -// CHECK-NEXT: 25: 000000000020239c 50 OBJECT WEAK DEFAULT 2 UndefStrong_with_CommonWeak -// CHECK-NEXT: 26: 00000000002011c4 46 NOTYPE GLOBAL DEFAULT 1 UndefStrong_with_RegularStrong -// CHECK-NEXT: 27: 00000000002011c4 45 NOTYPE WEAK DEFAULT 1 UndefStrong_with_RegularWeak -// CHECK-NEXT: 28: 00000000002023d0 49 OBJECT GLOBAL DEFAULT 2 UndefWeak_with_CommonStrong -// CHECK-NEXT: 29: 0000000000202404 48 OBJECT WEAK DEFAULT 2 UndefWeak_with_CommonWeak -// CHECK-NEXT: 30: 00000000002011c4 44 NOTYPE GLOBAL DEFAULT 1 UndefWeak_with_RegularStrong -// CHECK-NEXT: 31: 00000000002011c4 43 NOTYPE WEAK DEFAULT 1 UndefWeak_with_RegularWeak -// CHECK-NEXT: 32: 0000000000000000 0 NOTYPE WEAK DEFAULT UND UndefWeak_with_UndefWeak -// CHECK-NEXT: 33: 0000000000201158 0 NOTYPE GLOBAL DEFAULT 1 _start +// CHECK-NEXT: 1: 0000000000201158 0 NOTYPE GLOBAL DEFAULT 1 _start +// CHECK-NEXT: 2: 0000000000201159 0 NOTYPE WEAK DEFAULT 1 RegularWeak_with_RegularWeak +// CHECK-NEXT: 3: 00000000002011a4 33 NOTYPE GLOBAL DEFAULT 1 RegularWeak_with_RegularStrong +// CHECK-NEXT: 4: 0000000000201159 2 NOTYPE GLOBAL DEFAULT 1 RegularStrong_with_RegularWeak +// CHECK-NEXT: 5: 0000000000201159 3 NOTYPE WEAK DEFAULT 1 RegularWeak_with_UndefWeak +// CHECK-NEXT: 6: 0000000000201159 4 NOTYPE WEAK DEFAULT 1 RegularWeak_with_UndefStrong +// CHECK-NEXT: 7: 0000000000201159 5 NOTYPE GLOBAL DEFAULT 1 RegularStrong_with_UndefWeak +// CHECK-NEXT: 8: 0000000000201159 6 NOTYPE GLOBAL DEFAULT 1 RegularStrong_with_UndefStrong +// CHECK-NEXT: 9: 0000000000201159 7 NOTYPE WEAK DEFAULT 1 RegularWeak_with_CommonWeak +// CHECK-NEXT: 10: 00000000002021ec 40 OBJECT GLOBAL DEFAULT 2 RegularWeak_with_CommonStrong +// CHECK-NEXT: 11: 0000000000201159 9 NOTYPE GLOBAL DEFAULT 1 RegularStrong_with_CommonWeak +// CHECK-NEXT: 12: 0000000000201159 10 NOTYPE GLOBAL DEFAULT 1 RegularStrong_with_CommonStrong +// CHECK-NEXT: 13: 00000000002011c4 43 NOTYPE WEAK DEFAULT 1 UndefWeak_with_RegularWeak +// CHECK-NEXT: 14: 00000000002011c4 44 NOTYPE GLOBAL DEFAULT 1 UndefWeak_with_RegularStrong +// CHECK-NEXT: 15: 00000000002011c4 45 NOTYPE WEAK DEFAULT 1 UndefStrong_with_RegularWeak +// CHECK-NEXT: 16: 00000000002011c4 46 NOTYPE GLOBAL DEFAULT 1 UndefStrong_with_RegularStrong +// CHECK-NEXT: 17: 0000000000000000 0 NOTYPE WEAK DEFAULT UND UndefWeak_with_UndefWeak +// CHECK-NEXT: 18: 0000000000202214 48 OBJECT WEAK DEFAULT 2 UndefWeak_with_CommonWeak +// CHECK-NEXT: 19: 0000000000202244 49 OBJECT GLOBAL DEFAULT 2 UndefWeak_with_CommonStrong +// CHECK-NEXT: 20: 0000000000202278 50 OBJECT WEAK DEFAULT 2 UndefStrong_with_CommonWeak +// CHECK-NEXT: 21: 00000000002022ac 51 OBJECT GLOBAL DEFAULT 2 UndefStrong_with_CommonStrong +// CHECK-NEXT: 22: 00000000002022e0 20 OBJECT WEAK DEFAULT 2 CommonWeak_with_RegularWeak +// CHECK-NEXT: 23: 00000000002011cc 53 NOTYPE GLOBAL DEFAULT 1 CommonWeak_with_RegularStrong +// CHECK-NEXT: 24: 00000000002022f4 22 OBJECT GLOBAL DEFAULT 2 CommonStrong_with_RegularWeak +// CHECK-NEXT: 25: 00000000002011cc 55 NOTYPE GLOBAL DEFAULT 1 CommonStrong_with_RegularStrong +// CHECK-NEXT: 26: 000000000020230c 24 OBJECT WEAK DEFAULT 2 CommonWeak_with_UndefWeak +// CHECK-NEXT: 27: 0000000000202324 25 OBJECT WEAK DEFAULT 2 CommonWeak_with_UndefStrong +// CHECK-NEXT: 28: 0000000000202340 26 OBJECT GLOBAL DEFAULT 2 CommonStrong_with_UndefWeak +// CHECK-NEXT: 29: 000000000020235c 27 OBJECT GLOBAL DEFAULT 2 CommonStrong_with_UndefStrong +// CHECK-NEXT: 30: 0000000000202378 28 OBJECT WEAK DEFAULT 2 CommonWeak_with_CommonWeak +// CHECK-NEXT: 31: 0000000000202394 61 OBJECT GLOBAL DEFAULT 2 CommonWeak_with_CommonStrong +// CHECK-NEXT: 32: 00000000002023d4 30 OBJECT GLOBAL DEFAULT 2 CommonStrong_with_CommonWeak +// CHECK-NEXT: 33: 00000000002023f4 63 OBJECT GLOBAL DEFAULT 2 CommonStrong_with_CommonStrong .globl _start _start: diff --git a/lld/test/ELF/retain-symbols-file.s b/lld/test/ELF/retain-symbols-file.s index 0ab19774b5344..9cf9e6562fc6a 100644 --- a/lld/test/ELF/retain-symbols-file.s +++ b/lld/test/ELF/retain-symbols-file.s @@ -20,13 +20,13 @@ # CHECK-NEXT: Section: # CHECK-NEXT: } # CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: bar +# CHECK-NEXT: Name: und # CHECK-NEXT: Value: # CHECK-NEXT: Size: # CHECK-NEXT: Binding: Global # CHECK-NEXT: Type: # CHECK-NEXT: Other: -# CHECK-NEXT: Section: .text +# CHECK-NEXT: Section: Undefined # CHECK-NEXT: } # CHECK-NEXT: Symbol { # CHECK-NEXT: Name: foo @@ -38,13 +38,13 @@ # CHECK-NEXT: Section: .text # CHECK-NEXT: } # CHECK-NEXT: Symbol { -# CHECK-NEXT: Name: und +# CHECK-NEXT: Name: bar # CHECK-NEXT: Value: # CHECK-NEXT: Size: # CHECK-NEXT: Binding: Global # CHECK-NEXT: Type: # CHECK-NEXT: Other: -# CHECK-NEXT: Section: Undefined +# CHECK-NEXT: Section: .text # CHECK-NEXT: } # CHECK-NEXT: ] diff --git a/lld/test/ELF/start-lib.s b/lld/test/ELF/start-lib.s index b79d9efc325a1..04ac5a6323d05 100644 --- a/lld/test/ELF/start-lib.s +++ b/lld/test/ELF/start-lib.s @@ -8,18 +8,18 @@ // RUN: ld.lld -o %t3 %t1.o %t2.o %t3.o // RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=TEST1 %s -// TEST1: Name: bar // TEST1: Name: foo +// TEST1: Name: bar // RUN: ld.lld -o %t3 %t1.o -u bar --start-lib %t2.o %t3.o // RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=TEST2 %s -// TEST2: Name: bar // TEST2-NOT: Name: foo +// TEST2: Name: bar // RUN: ld.lld -o %t3 %t1.o --start-lib %t2.o %t3.o // RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=TEST3 %s -// TEST3-NOT: Name: bar // TEST3-NOT: Name: foo +// TEST3-NOT: Name: bar // RUN: not ld.lld %t1.o --start-lib --start-lib 2>&1 | FileCheck -check-prefix=NESTED-LIB %s // NESTED-LIB: nested --start-lib diff --git a/lld/test/ELF/startstop.s b/lld/test/ELF/startstop.s index 86f203b84ff1e..7ec2c92cf3318 100644 --- a/lld/test/ELF/startstop.s +++ b/lld/test/ELF/startstop.s @@ -30,13 +30,6 @@ // SYMBOL-NEXT: } // SYMBOL-NEXT: ] -// SYMBOL: Symbol { -// SYMBOL: Name: __start_bar -// SYMBOL: Value: 0x1342 -// SYMBOL: STV_HIDDEN -// SYMBOL: Section: bar -// SYMBOL: } -// SYMBOL-NOT: Section: __stop_bar // SYMBOL: Symbol { // SYMBOL: Name: __start_foo // SYMBOL: Value: 0x133F @@ -49,19 +42,26 @@ // SYMBOL: STV_HIDDEN // SYMBOL: Section: foo // SYMBOL: } - // SYMBOL: Symbol { -// SYMBOL: Name: __stop_zed1 -// SYMBOL: Value: 0x3408 -// SYMBOL: STV_PROTECTED -// SYMBOL: Section: zed1 +// SYMBOL: Name: __start_bar +// SYMBOL: Value: 0x1342 +// SYMBOL: STV_HIDDEN +// SYMBOL: Section: bar // SYMBOL: } +// SYMBOL-NOT: Section: __stop_bar + // SYMBOL: Symbol { // SYMBOL: Name: __stop_zed2 // SYMBOL: Value: 0x3418 // SYMBOL: STV_PROTECTED // SYMBOL: Section: zed2 // SYMBOL: } +// SYMBOL: Symbol { +// SYMBOL: Name: __stop_zed1 +// SYMBOL: Value: 0x3408 +// SYMBOL: STV_PROTECTED +// SYMBOL: Section: zed1 +// SYMBOL: } .hidden __start_foo .hidden __stop_foo diff --git a/lld/test/ELF/symbol-ordering-file-warnings.s b/lld/test/ELF/symbol-ordering-file-warnings.s index ec38edc62314a..daf47bcdb31c0 100644 --- a/lld/test/ELF/symbol-ordering-file-warnings.s +++ b/lld/test/ELF/symbol-ordering-file-warnings.s @@ -97,13 +97,13 @@ # WARN-NOT: warning: # SAMESYM: warning: {{.*}}.txt: duplicate ordered symbol: _start # WARN-NOT: warning: -# SYNTHETIC: warning: : unable to order synthetic symbol: _GLOBAL_OFFSET_TABLE_ +# SHARED: warning: {{.*}}.so: unable to order shared symbol: shared # WARN-NOT: warning: # DISCARD: warning: {{.*}}1.o: unable to order discarded symbol: discard # WARN-NOT: warning: # GC: warning: {{.*}}1.o: unable to order discarded symbol: gc # WARN-NOT: warning: -# SHARED: warning: {{.*}}.so: unable to order shared symbol: shared +# SYNTHETIC: warning: : unable to order synthetic symbol: _GLOBAL_OFFSET_TABLE_ # WARN-NOT: warning: # UNDEFINED: warning: {{.*}}3.o: unable to order undefined symbol: undefined # WARN-NOT: warning: diff --git a/lld/test/ELF/symbols.s b/lld/test/ELF/symbols.s index 56eec23f80e9f..0b56c8ab548f8 100644 --- a/lld/test/ELF/symbols.s +++ b/lld/test/ELF/symbols.s @@ -112,13 +112,13 @@ internal: // CHECK-NEXT: Section: .text // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: abs -// CHECK-NEXT: Value: 0x123 +// CHECK-NEXT: Name: foo +// CHECK-NEXT: Value: 0x201160 // CHECK-NEXT: Size: 0 -// CHECK-NEXT: Binding: Global -// CHECK-NEXT: Type: None +// CHECK-NEXT: Binding: Weak (0x2) +// CHECK-NEXT: Type: Object // CHECK-NEXT: Other: 0 -// CHECK-NEXT: Section: Absolute +// CHECK-NEXT: Section: .text // CHECK-NEXT: } // CHECK-NEXT: Symbol { // CHECK-NEXT: Name: bar @@ -130,59 +130,59 @@ internal: // CHECK-NEXT: Section: Undefined (0x0) // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: common -// CHECK-NEXT: Value: 0x202164 -// CHECK-NEXT: Size: 4 -// CHECK-NEXT: Binding: Global -// CHECK-NEXT: Type: Object +// CHECK-NEXT: Name: zed +// CHECK-NEXT: Value: 0x200158 +// CHECK-NEXT: Size: 0 +// CHECK-NEXT: Binding: Global (0x1) +// CHECK-NEXT: Type: None // CHECK-NEXT: Other: 0 -// CHECK-NEXT: Section: .bss +// CHECK-NEXT: Section: foobar // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: foo -// CHECK-NEXT: Value: 0x201160 +// CHECK-NEXT: Name: zed2 +// CHECK-NEXT: Value: 0x20015C // CHECK-NEXT: Size: 0 -// CHECK-NEXT: Binding: Weak (0x2) -// CHECK-NEXT: Type: Object +// CHECK-NEXT: Binding: Global +// CHECK-NEXT: Type: None // CHECK-NEXT: Other: 0 -// CHECK-NEXT: Section: .text +// CHECK-NEXT: Section: foobar // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: protected +// CHECK-NEXT: Name: zed3 // CHECK-NEXT: Value: 0x200160 -// CHECK-NEXT: Size: 0 +// CHECK-NEXT: Size: 4 // CHECK-NEXT: Binding: Global // CHECK-NEXT: Type: None -// CHECK-NEXT: Other [ (0x3) -// CHECK-NEXT: STV_PROTECTED -// CHECK-NEXT: ] +// CHECK-NEXT: Other: 0 // CHECK-NEXT: Section: foobar // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: zed -// CHECK-NEXT: Value: 0x200158 +// CHECK-NEXT: Name: abs +// CHECK-NEXT: Value: 0x123 // CHECK-NEXT: Size: 0 -// CHECK-NEXT: Binding: Global (0x1) +// CHECK-NEXT: Binding: Global // CHECK-NEXT: Type: None // CHECK-NEXT: Other: 0 -// CHECK-NEXT: Section: foobar +// CHECK-NEXT: Section: Absolute // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: zed2 -// CHECK-NEXT: Value: 0x20015C -// CHECK-NEXT: Size: 0 +// CHECK-NEXT: Name: common +// CHECK-NEXT: Value: 0x202164 +// CHECK-NEXT: Size: 4 // CHECK-NEXT: Binding: Global -// CHECK-NEXT: Type: None +// CHECK-NEXT: Type: Object // CHECK-NEXT: Other: 0 -// CHECK-NEXT: Section: foobar +// CHECK-NEXT: Section: .bss // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: zed3 +// CHECK-NEXT: Name: protected // CHECK-NEXT: Value: 0x200160 -// CHECK-NEXT: Size: 4 +// CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Global // CHECK-NEXT: Type: None -// CHECK-NEXT: Other: 0 +// CHECK-NEXT: Other [ (0x3) +// CHECK-NEXT: STV_PROTECTED +// CHECK-NEXT: ] // CHECK-NEXT: Section: foobar // CHECK-NEXT: } // CHECK-NEXT: ] diff --git a/lld/test/ELF/undef-with-plt-addr.s b/lld/test/ELF/undef-with-plt-addr.s index 447c620401ef4..7f8e0afc770ba 100644 --- a/lld/test/ELF/undef-with-plt-addr.s +++ b/lld/test/ELF/undef-with-plt-addr.s @@ -31,16 +31,16 @@ movabsq $set_data, %rax // CHECK-NEXT: 0x203420 R_X86_64_JUMP_SLOT set_data 0x0 // CHECK-NEXT: } -// CHECK: Name: foo -// CHECK-NEXT: Value: 0x0 +// CHECK: Name: set_data +// CHECK-NEXT: Value: 0x2012F0 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Global // CHECK-NEXT: Type: Function // CHECK-NEXT: Other: 0 // CHECK-NEXT: Section: Undefined -// CHECK: Name: set_data -// CHECK-NEXT: Value: 0x2012F0 +// CHECK: Name: foo +// CHECK-NEXT: Value: 0x0 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Global // CHECK-NEXT: Type: Function diff --git a/lld/test/ELF/verdef-defaultver.s b/lld/test/ELF/verdef-defaultver.s index 7d2a0d27fa11d..05bf7333df8ad 100644 --- a/lld/test/ELF/verdef-defaultver.s +++ b/lld/test/ELF/verdef-defaultver.s @@ -17,8 +17,8 @@ # DSO-NEXT: Section: Undefined # DSO-NEXT: } # DSO-NEXT: Symbol { -# DSO-NEXT: Name: a@@V1 -# DSO-NEXT: Value: 0x12E8 +# DSO-NEXT: Name: b@V1 +# DSO-NEXT: Value: 0x12E9 # DSO-NEXT: Size: 0 # DSO-NEXT: Binding: Global # DSO-NEXT: Type: Function @@ -35,8 +35,8 @@ # DSO-NEXT: Section: .text # DSO-NEXT: } # DSO-NEXT: Symbol { -# DSO-NEXT: Name: b@V1 -# DSO-NEXT: Value: 0x12E9 +# DSO-NEXT: Name: a@@V1 +# DSO-NEXT: Value: 0x12E8 # DSO-NEXT: Size: 0 # DSO-NEXT: Binding: Global # DSO-NEXT: Type: Function @@ -60,7 +60,7 @@ # DSO-NEXT: } # DSO-NEXT: Symbol { # DSO-NEXT: Version: 2 -# DSO-NEXT: Name: a@@V1 +# DSO-NEXT: Name: b@V1 # DSO-NEXT: } # DSO-NEXT: Symbol { # DSO-NEXT: Version: 3 @@ -68,7 +68,7 @@ # DSO-NEXT: } # DSO-NEXT: Symbol { # DSO-NEXT: Version: 2 -# DSO-NEXT: Name: b@V1 +# DSO-NEXT: Name: a@@V1 # DSO-NEXT: } # DSO-NEXT: Symbol { # DSO-NEXT: Version: 3 diff --git a/lld/test/ELF/version-script-complex-wildcards.s b/lld/test/ELF/version-script-complex-wildcards.s index 1ba34787646d7..233c4b1fdd904 100644 --- a/lld/test/ELF/version-script-complex-wildcards.s +++ b/lld/test/ELF/version-script-complex-wildcards.s @@ -51,12 +51,12 @@ # ERROR: invalid glob pattern: a[ .text -.globl _Z3abci -.type _Z3abci,@function -_Z3abci: -retq - .globl _Z3abbi .type _Z3abbi,@function _Z3abbi: retq + +.globl _Z3abci +.type _Z3abci,@function +_Z3abci: +retq diff --git a/lld/test/ELF/version-script-extern-exact.s b/lld/test/ELF/version-script-extern-exact.s index b092cffde4494..f00b3acc77382 100644 --- a/lld/test/ELF/version-script-extern-exact.s +++ b/lld/test/ELF/version-script-extern-exact.s @@ -6,16 +6,16 @@ # RUN: llvm-readobj --dyn-syms %t.so | FileCheck %s --check-prefix=NOMATCH # NOMATCH: DynamicSymbols [ -# NOMATCH-NOT: _Z3aaaPf@@FOO # NOMATCH-NOT: _Z3aaaPi@@FOO +# NOMATCH-NOT: _Z3aaaPf@@FOO # NOMATCH: ] # RUN: echo "FOO { global: extern \"C++\" { \"aaa*\"; aaa*; }; };" > %t2.script # RUN: ld.lld --version-script %t2.script -shared %t.o -o %t2.so # RUN: llvm-readobj --dyn-syms %t2.so | FileCheck %s --check-prefix=MATCH # MATCH: DynamicSymbols [ -# MATCH: _Z3aaaPf@@FOO # MATCH: _Z3aaaPi@@FOO +# MATCH: _Z3aaaPf@@FOO # MATCH: ] .text diff --git a/lld/test/ELF/version-script-extern-wildcards-anon.s b/lld/test/ELF/version-script-extern-wildcards-anon.s index 8f5164579706b..1ff65eb2bbcd6 100644 --- a/lld/test/ELF/version-script-extern-wildcards-anon.s +++ b/lld/test/ELF/version-script-extern-wildcards-anon.s @@ -62,13 +62,13 @@ # CHECK-NEXT: } # CHECK-NEXT: ] -.global _Z3fooi -_Z3fooi: .global _Z3bari _Z3bari: -.global _Z3zedi -_Z3zedi: .global _Z3bazi _Z3bazi: +.global _Z3fooi +_Z3fooi: +.global _Z3zedi +_Z3zedi: .global _ZSt3qux _ZSt3qux: diff --git a/lld/test/ELF/version-script-extern-wildcards.s b/lld/test/ELF/version-script-extern-wildcards.s index 1b4a03bce1dd4..18ce20bc605d0 100644 --- a/lld/test/ELF/version-script-extern-wildcards.s +++ b/lld/test/ELF/version-script-extern-wildcards.s @@ -7,8 +7,8 @@ # RUN: llvm-readobj -V --dyn-syms %t.so | FileCheck %s # CHECK: VersionSymbols [ -# CHECK: Name: _Z3bari # CHECK: Name: _Z3fooi@@FOO +# CHECK: Name: _Z3bari # CHECK: Name: _Z3zedi@@BAR .text diff --git a/lld/test/ELF/version-script-extern.s b/lld/test/ELF/version-script-extern.s index f636f2c014615..29059eac8e407 100644 --- a/lld/test/ELF/version-script-extern.s +++ b/lld/test/ELF/version-script-extern.s @@ -21,7 +21,7 @@ # DSO-NEXT: Section: Undefined # DSO-NEXT: } # DSO-NEXT: Symbol { -# DSO-NEXT: Name: _Z3bari@@LIBSAMPLE_2.0 +# DSO-NEXT: Name: _Z3fooi@@LIBSAMPLE_1.0 # DSO-NEXT: Value: # DSO-NEXT: Size: 0 # DSO-NEXT: Binding: Global @@ -30,7 +30,7 @@ # DSO-NEXT: Section: .text # DSO-NEXT: } # DSO-NEXT: Symbol { -# DSO-NEXT: Name: _Z3fooi@@LIBSAMPLE_1.0 +# DSO-NEXT: Name: _Z3bari@@LIBSAMPLE_2.0 # DSO-NEXT: Value: # DSO-NEXT: Size: 0 # DSO-NEXT: Binding: Global @@ -72,14 +72,14 @@ # DSO-NEXT: Name: # DSO-NEXT: } # DSO-NEXT: Symbol { -# DSO-NEXT: Version: 3 -# DSO-NEXT: Name: _Z3bari@@LIBSAMPLE_2.0 -# DSO-NEXT: } -# DSO-NEXT: Symbol { # DSO-NEXT: Version: 2 # DSO-NEXT: Name: _Z3fooi@@LIBSAMPLE_1.0 # DSO-NEXT: } # DSO-NEXT: Symbol { +# DSO-NEXT: Version: 3 +# DSO-NEXT: Name: _Z3bari@@LIBSAMPLE_2.0 +# DSO-NEXT: } +# DSO-NEXT: Symbol { # DSO-NEXT: Version: 2 # DSO-NEXT: Name: _Z3zedi@@LIBSAMPLE_1.0 # DSO-NEXT: } diff --git a/lld/test/ELF/version-script-glob.s b/lld/test/ELF/version-script-glob.s index b3b9f255ddc29..0f2bd88875e24 100644 --- a/lld/test/ELF/version-script-glob.s +++ b/lld/test/ELF/version-script-glob.s @@ -11,8 +11,8 @@ bar1: zed1: local: -# CHECK: bar1{{$}} -# CHECK-NEXT: foo1{{$}} +# CHECK: foo1{{$}} +# CHECK-NEXT: bar1{{$}} # CHECK-NOT: {{.}} # RUN: echo "{ global : local; local: *; };" > %t1.script diff --git a/lld/test/ELF/version-script-locals.s b/lld/test/ELF/version-script-locals.s index 210adefad8c66..119d4cc7bdd24 100644 --- a/lld/test/ELF/version-script-locals.s +++ b/lld/test/ELF/version-script-locals.s @@ -5,28 +5,28 @@ # RUN: ld.lld --version-script %t.script -shared %t.o -o %t.so # RUN: llvm-readobj --dyn-syms %t.so | FileCheck --check-prefix=EXACT %s # EXACT: DynamicSymbols [ -# EXACT: _start # EXACT-NOT: foo1 # EXACT: foo2 # EXACT: foo3 +# EXACT: _start # RUN: echo "VERSION_1.0 { local: foo*; };" > %t.script # RUN: ld.lld --version-script %t.script -shared %t.o -o %t.so # RUN: llvm-readobj --dyn-syms %t.so | FileCheck --check-prefix=WC %s # WC: DynamicSymbols [ -# WC: _start # WC-NOT: foo1 # WC-NOT: foo2 # WC-NOT: foo3 +# WC: _start # RUN: echo "VERSION_1.0 { global: *; local: foo*; };" > %t.script # RUN: ld.lld --version-script %t.script -shared %t.o -o %t.so # RUN: llvm-readobj --dyn-syms %t.so | FileCheck --check-prefix=MIX %s # MIX: DynamicSymbols [ -# MIX: _start@@VERSION_1.0 # MIX-NOT: foo1 # MIX-NOT: foo2 # MIX-NOT: foo3 +# MIX: _start@@VERSION_1.0 .globl foo1 foo1: diff --git a/lld/test/ELF/version-script-symver2.s b/lld/test/ELF/version-script-symver2.s index 34b2efb632dc6..ad67461cfb40b 100644 --- a/lld/test/ELF/version-script-symver2.s +++ b/lld/test/ELF/version-script-symver2.s @@ -10,13 +10,13 @@ # CHECK-NEXT: Name: # CHECK-NEXT: } # CHECK-NEXT: Symbol { -# CHECK-NEXT: Version: 3 -# CHECK-NEXT: Name: foo@@VER2 -# CHECK-NEXT: } -# CHECK-NEXT: Symbol { # CHECK-NEXT: Version: 2 # CHECK-NEXT: Name: foo@VER1 # CHECK-NEXT: } +# CHECK-NEXT: Symbol { +# CHECK-NEXT: Version: 3 +# CHECK-NEXT: Name: foo@@VER2 +# CHECK-NEXT: } # CHECK-NEXT: ] .global bar diff --git a/lld/test/ELF/version-script.s b/lld/test/ELF/version-script.s index a812900184c0f..7fd3b3733625e 100644 --- a/lld/test/ELF/version-script.s +++ b/lld/test/ELF/version-script.s @@ -64,11 +64,11 @@ # RUN: ld.lld --hash-style=sysv --version-script %t2.script -shared %t.o %t2.so -o %t.so # RUN: llvm-readelf --dyn-syms %t.so | FileCheck --check-prefix=ALL %s -# ALL: _start{{$}} +# ALL: foo1{{$}} # ALL-NEXT: bar{{$}} -# ALL-NEXT: foo1{{$}} # ALL-NEXT: foo2{{$}} # ALL-NEXT: foo3{{$}} +# ALL-NEXT: _start{{$}} # ALL-NOT: {{.}} # RUN: echo "VERSION_1.0 { global: foo1; foo1; local: *; };" > %t8.script diff --git a/lld/test/ELF/vs-diagnostics-duplicate.s b/lld/test/ELF/vs-diagnostics-duplicate.s index 740c0778cf9c0..cf4637fded9d8 100644 --- a/lld/test/ELF/vs-diagnostics-duplicate.s +++ b/lld/test/ELF/vs-diagnostics-duplicate.s @@ -4,7 +4,12 @@ // RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %S/Inputs/vs-diagnostics-duplicate3.s -o %t3.o // RUN: not ld.lld --vs-diagnostics %t1.o %t2.o %t3.o -o /dev/null 2>&1 | FileCheck %s -// Case 1. Both symbols have full source location. +// Case 1. The source locations are unknown for both symbols. +// CHECK: {{.*}}ld.lld{{.*}}: error: duplicate symbol: foo +// CHECK-NEXT: >>> defined at {{.*}}1.o:(.text+0x{{.+}}) +// CHECK-NEXT: >>> defined at {{.*}}2.o:(.text+0x{{.+}}) + +// Case 2. Both symbols have full source location. // CHECK: duplicate.s(15): error: duplicate symbol: bar // CHECK-NEXT: >>> defined at duplicate.s:15 // CHECK-NEXT: >>>{{.*}}1.o:(.text+0x{{.+}}) @@ -12,11 +17,6 @@ // CHECK-NEXT: >>> defined at duplicate2.s:20 // CHECK-NEXT: >>>{{.*}}2.o:(.text+0x{{.+}}) -// Case 2. The source locations are unknown for both symbols. -// CHECK: {{.*}}ld.lld{{.*}}: error: duplicate symbol: foo -// CHECK-NEXT: >>> defined at {{.*}}1.o:(.text+0x{{.+}}) -// CHECK-NEXT: >>> defined at {{.*}}2.o:(.text+0x{{.+}}) - // Case 3. For the second definition of `baz` we know only the source file found in a STT_FILE symbol. // CHECK: duplicate.s(30): error: duplicate symbol: baz // CHECK-NEXT: >>> defined at duplicate.s:30 diff --git a/lld/test/ELF/wrap-no-real.s b/lld/test/ELF/wrap-no-real.s index 0078611a79be2..4bcde9cf24d5f 100644 --- a/lld/test/ELF/wrap-no-real.s +++ b/lld/test/ELF/wrap-no-real.s @@ -13,8 +13,8 @@ // CHECK-NEXT: movq {{.*}}(%rip), %rbx # 2021a8 // CHECK-NEXT: movq {{.*}}(%rip), %rcx # 2021b0 -// READELF: 0000000000011010 0 NOTYPE GLOBAL DEFAULT ABS __wrap_foo // READELF: 0000000000011000 0 NOTYPE GLOBAL DEFAULT ABS foo +// READELF: 0000000000011010 0 NOTYPE GLOBAL DEFAULT ABS __wrap_foo // READELF: Hex dump of section '.got': // READELF-NEXT: 0x[[#%x,ADDR:]] 10100100 00000000 00100100 00000000 diff --git a/lld/test/ELF/x86-64-gotpc-relax-und-dso.s b/lld/test/ELF/x86-64-gotpc-relax-und-dso.s index fbcbca1d1b680..ac7088d9f0c1c 100644 --- a/lld/test/ELF/x86-64-gotpc-relax-und-dso.s +++ b/lld/test/ELF/x86-64-gotpc-relax-und-dso.s @@ -8,9 +8,9 @@ # RELOC: Relocations [ # RELOC-NEXT: Section ({{.*}}) .rela.dyn { -# RELOC-NEXT: R_X86_64_GLOB_DAT dsofoo 0x0 # RELOC-NEXT: R_X86_64_GLOB_DAT foo 0x0 # RELOC-NEXT: R_X86_64_GLOB_DAT und 0x0 +# RELOC-NEXT: R_X86_64_GLOB_DAT dsofoo 0x0 # RELOC-NEXT: } # RELOC-NEXT: ] diff --git a/lld/test/ELF/x86-64-tls-ie.s b/lld/test/ELF/x86-64-tls-ie.s index 37345ed6dc5bf..9dd701045008f 100644 --- a/lld/test/ELF/x86-64-tls-ie.s +++ b/lld/test/ELF/x86-64-tls-ie.s @@ -25,8 +25,8 @@ // CHECK: Relocations [ // CHECK-NEXT: Section (5) .rela.dyn { -// CHECK-NEXT: 0x2023C8 R_X86_64_TPOFF64 tls0 0x0 // CHECK-NEXT: [[ADDR]] R_X86_64_TPOFF64 tls1 0x0 +// CHECK-NEXT: 0x2023C8 R_X86_64_TPOFF64 tls0 0x0 // CHECK-NEXT: } // CHECK-NEXT: ] diff --git a/llvm/lib/MC/ELFObjectWriter.cpp b/llvm/lib/MC/ELFObjectWriter.cpp index 9257e3bff631c..f7d88377e86ba 100644 --- a/llvm/lib/MC/ELFObjectWriter.cpp +++ b/llvm/lib/MC/ELFObjectWriter.cpp @@ -724,9 +724,6 @@ void ELFWriter::computeSymbolTable( StrTabBuilder.finalize(); - // Symbols are required to be in lexicographic order. - array_pod_sort(ExternalSymbolData.begin(), ExternalSymbolData.end()); - // Make the first STT_FILE precede previous local symbols. unsigned Index = 1; auto FileNameIt = FileNames.begin(); diff --git a/llvm/test/CodeGen/AMDGPU/lds-relocs.ll b/llvm/test/CodeGen/AMDGPU/lds-relocs.ll index 0f8772eb3d5f4..1426f8013730e 100644 --- a/llvm/test/CodeGen/AMDGPU/lds-relocs.ll +++ b/llvm/test/CodeGen/AMDGPU/lds-relocs.ll @@ -12,9 +12,9 @@ ; ELF-NEXT: ] ; ELF: Symbol { -; ELF: Name: lds.defined -; ELF-NEXT: Value: 0x8 -; ELF-NEXT: Size: 32 +; ELF: Name: lds.external +; ELF-NEXT: Value: 0x4 +; ELF-NEXT: Size: 0 ; ELF-NEXT: Binding: Global (0x1) ; ELF-NEXT: Type: Object (0x1) ; ELF-NEXT: Other: 0 @@ -22,9 +22,9 @@ ; ELF-NEXT: } ; ELF: Symbol { -; ELF: Name: lds.external -; ELF-NEXT: Value: 0x4 -; ELF-NEXT: Size: 0 +; ELF: Name: lds.defined +; ELF-NEXT: Value: 0x8 +; ELF-NEXT: Size: 32 ; ELF-NEXT: Binding: Global (0x1) ; ELF-NEXT: Type: Object (0x1) ; ELF-NEXT: Other: 0 diff --git a/llvm/test/LTO/Resolution/X86/not-prevailing-alias.ll b/llvm/test/LTO/Resolution/X86/not-prevailing-alias.ll index 2aa13c8a44be3..d08253446250d 100644 --- a/llvm/test/LTO/Resolution/X86/not-prevailing-alias.ll +++ b/llvm/test/LTO/Resolution/X86/not-prevailing-alias.ll @@ -21,9 +21,9 @@ ; Check that 'barAlias' and 'varAlias' produced as undefined. ; RUN: llvm-readelf --symbols %t2.o.1 | FileCheck %s --check-prefix=SYMBOLS +; SYMBOLS: FUNC GLOBAL DEFAULT 2 zed ; SYMBOLS: NOTYPE GLOBAL DEFAULT UND barAlias ; SYMBOLS: NOTYPE GLOBAL DEFAULT UND varAlias -; SYMBOLS: FUNC GLOBAL DEFAULT 2 zed target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" diff --git a/llvm/test/LTO/Resolution/X86/not-prevailing.ll b/llvm/test/LTO/Resolution/X86/not-prevailing.ll index 174d3401a61da..6c9037f878b96 100644 --- a/llvm/test/LTO/Resolution/X86/not-prevailing.ll +++ b/llvm/test/LTO/Resolution/X86/not-prevailing.ll @@ -17,9 +17,9 @@ ; RUN: llvm-readelf --symbols %t3.o.1 | FileCheck %s --check-prefix=SYMBOLS ; Check that 'foo' and 'bar' produced as undefined. -; SYMBOLS: NOTYPE GLOBAL DEFAULT UND bar -; SYMBOLS: NOTYPE GLOBAL DEFAULT UND foo ; SYMBOLS: FUNC GLOBAL DEFAULT 2 zed +; SYMBOLS: NOTYPE GLOBAL DEFAULT UND foo +; SYMBOLS: NOTYPE GLOBAL DEFAULT UND bar target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" diff --git a/llvm/test/MC/AArch64/size-directive.s b/llvm/test/MC/AArch64/size-directive.s index 831ae62b6ee81..0b19cda4eaa1e 100644 --- a/llvm/test/MC/AArch64/size-directive.s +++ b/llvm/test/MC/AArch64/size-directive.s @@ -34,7 +34,7 @@ aarch64_size: // SYMS: Type Bind Vis Ndx Name // SYMS: NOTYPE LOCAL DEFAULT 3 $d.0 // SYMS-NEXT: FUNC GLOBAL DEFAULT 3 aarch64_size -// SYMS-NEXT: NOTYPE GLOBAL DEFAULT UND also_double_word -// SYMS-NEXT: NOTYPE GLOBAL DEFAULT UND double_word -// SYMS-NEXT: NOTYPE GLOBAL DEFAULT UND full_word // SYMS-NEXT: NOTYPE GLOBAL DEFAULT UND half_word +// SYMS-NEXT: NOTYPE GLOBAL DEFAULT UND full_word +// SYMS-NEXT: NOTYPE GLOBAL DEFAULT UND double_word +// SYMS-NEXT: NOTYPE GLOBAL DEFAULT UND also_double_word diff --git a/llvm/test/MC/AMDGPU/elf-lds.s b/llvm/test/MC/AMDGPU/elf-lds.s index 59bd03eda2830..deb6ba0aad0c7 100644 --- a/llvm/test/MC/AMDGPU/elf-lds.s +++ b/llvm/test/MC/AMDGPU/elf-lds.s @@ -50,9 +50,9 @@ test_kernel: // CHECK-NEXT: } // CHECK: Symbol { -// CHECK: Name: lds1 (49) -// CHECK-NEXT: Value: 0x8 -// CHECK-NEXT: Size: 387 +// CHECK: Name: lds4 (39) +// CHECK-NEXT: Value: 0x4 +// CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Global (0x1) // CHECK-NEXT: Type: Object (0x1) // CHECK-NEXT: Other: 0 @@ -60,23 +60,23 @@ test_kernel: // CHECK-NEXT: } // CHECK: Symbol { -// CHECK: Name: lds2 (44) -// CHECK-NEXT: Value: 0x4 -// CHECK-NEXT: Size: 12 +// CHECK: Name: lds1 (49) +// CHECK-NEXT: Value: 0x8 +// CHECK-NEXT: Size: 387 // CHECK-NEXT: Binding: Global (0x1) // CHECK-NEXT: Type: Object (0x1) // CHECK-NEXT: Other: 0 // CHECK-NEXT: Section: Processor Specific (0xFF00) // CHECK-NEXT: } -// CHECK-NOT: Name: lds3 - // CHECK: Symbol { -// CHECK: Name: lds4 (39) +// CHECK: Name: lds2 (44) // CHECK-NEXT: Value: 0x4 -// CHECK-NEXT: Size: 0 +// CHECK-NEXT: Size: 12 // CHECK-NEXT: Binding: Global (0x1) // CHECK-NEXT: Type: Object (0x1) // CHECK-NEXT: Other: 0 // CHECK-NEXT: Section: Processor Specific (0xFF00) // CHECK-NEXT: } + +// CHECK-NOT: Name: lds3 diff --git a/llvm/test/MC/ARM/arm-elf-symver.s b/llvm/test/MC/ARM/arm-elf-symver.s index e49a7d7de7a72..206a039df41c8 100644 --- a/llvm/test/MC/ARM/arm-elf-symver.s +++ b/llvm/test/MC/ARM/arm-elf-symver.s @@ -88,16 +88,16 @@ global1: @ CHECK-NEXT: Section: .text @ CHECK-NEXT: } @ CHECK-NEXT: Symbol { -@ CHECK-NEXT: Name: bar2@zed -@ CHECK-NEXT: Value: 0x0 +@ CHECK-NEXT: Name: global1 +@ CHECK-NEXT: Value: 0x14 @ CHECK-NEXT: Size: 0 @ CHECK-NEXT: Binding: Global (0x1) @ CHECK-NEXT: Type: None (0x0) @ CHECK-NEXT: Other: 0 -@ CHECK-NEXT: Section: Undefined (0x0) +@ CHECK-NEXT: Section: .text @ CHECK-NEXT: } @ CHECK-NEXT: Symbol { -@ CHECK-NEXT: Name: bar6@zed +@ CHECK-NEXT: Name: bar2@zed @ CHECK-NEXT: Value: 0x0 @ CHECK-NEXT: Size: 0 @ CHECK-NEXT: Binding: Global (0x1) @@ -106,16 +106,16 @@ global1: @ CHECK-NEXT: Section: Undefined (0x0) @ CHECK-NEXT: } @ CHECK-NEXT: Symbol { -@ CHECK-NEXT: Name: g1@@zed -@ CHECK-NEXT: Value: 0x14 +@ CHECK-NEXT: Name: bar6@zed +@ CHECK-NEXT: Value: 0x0 @ CHECK-NEXT: Size: 0 @ CHECK-NEXT: Binding: Global (0x1) @ CHECK-NEXT: Type: None (0x0) @ CHECK-NEXT: Other: 0 -@ CHECK-NEXT: Section: .text +@ CHECK-NEXT: Section: Undefined (0x0) @ CHECK-NEXT: } @ CHECK-NEXT: Symbol { -@ CHECK-NEXT: Name: global1 +@ CHECK-NEXT: Name: g1@@zed @ CHECK-NEXT: Value: 0x14 @ CHECK-NEXT: Size: 0 @ CHECK-NEXT: Binding: Global (0x1) diff --git a/llvm/test/MC/ARM/elf-thumbfunc.s b/llvm/test/MC/ARM/elf-thumbfunc.s index f12b5cb4503cd..30362e7858363 100644 --- a/llvm/test/MC/ARM/elf-thumbfunc.s +++ b/llvm/test/MC/ARM/elf-thumbfunc.s @@ -19,22 +19,22 @@ baz = foo + 2 @@ make sure foo and bar are thumb function: bit 0 = 1 (st_value) @CHECK: Symbol { -@CHECK: Name: bar +@CHECK: Name: foo @CHECK-NEXT: Value: 0x1 @CHECK-NEXT: Size: 0 @CHECK-NEXT: Binding: Global @CHECK-NEXT: Type: Function @CHECK: Symbol { -@CHECK: Name: baz -@CHECK-NEXT: Value: 0x3 +@CHECK: Name: bar +@CHECK-NEXT: Value: 0x1 @CHECK-NEXT: Size: 0 @CHECK-NEXT: Binding: Global @CHECK-NEXT: Type: Function @CHECK: Symbol { -@CHECK: Name: foo -@CHECK-NEXT: Value: 0x1 +@CHECK: Name: baz +@CHECK-NEXT: Value: 0x3 @CHECK-NEXT: Size: 0 @CHECK-NEXT: Binding: Global @CHECK-NEXT: Type: Function diff --git a/llvm/test/MC/ELF/ARM/clang-section.s b/llvm/test/MC/ELF/ARM/clang-section.s index d79aa225d71e4..3f2fa604ffc53 100644 --- a/llvm/test/MC/ELF/ARM/clang-section.s +++ b/llvm/test/MC/ELF/ARM/clang-section.s @@ -326,14 +326,26 @@ p: //CHECK: Section: my_bss.2 (0x12) //CHECK: } //CHECK: Symbol { -//CHECK: Name: a -//CHECK: Section: my_bss.1 (0xE) +//CHECK: Name: foo +//CHECK: Section: my_text.1 (0x4) //CHECK: } //CHECK: Symbol { //CHECK: Name: b //CHECK: Section: my_data.1 (0xF) //CHECK: } //CHECK: Symbol { +//CHECK: Name: goo +//CHECK: Section: my_text.2 (0x8) +//CHECK: } +//CHECK: Symbol { +//CHECK: Name: hoo +//CHECK: Section: .text (0x2) +//CHECK: } +//CHECK: Symbol { +//CHECK: Name: a +//CHECK: Section: my_bss.1 (0xE) +//CHECK: } +//CHECK: Symbol { //CHECK: Name: c //CHECK: Section: my_bss.1 (0xE) //CHECK: } @@ -350,22 +362,10 @@ p: //CHECK: Section: my_rodata.1 (0x10) //CHECK: } //CHECK: Symbol { -//CHECK: Name: foo -//CHECK: Section: my_text.1 (0x4) -//CHECK: } -//CHECK: Symbol { -//CHECK: Name: goo -//CHECK: Section: my_text.2 (0x8) -//CHECK: } -//CHECK: Symbol { //CHECK: Name: h //CHECK: Section: .bss (0x11) //CHECK: } //CHECK: Symbol { -//CHECK: Name: hoo -//CHECK: Section: .text (0x2) -//CHECK: } -//CHECK: Symbol { //CHECK: Name: i //CHECK: Section: my_bss.2 (0x12) //CHECK: } diff --git a/llvm/test/MC/ELF/cgprofile.s b/llvm/test/MC/ELF/cgprofile.s index bf31d002e4fab..7938c2db8ebb6 100644 --- a/llvm/test/MC/ELF/cgprofile.s +++ b/llvm/test/MC/ELF/cgprofile.s @@ -28,8 +28,8 @@ late3: # CHECK-NEXT: EntrySize: 16 # CHECK-NEXT: SectionData ( # CHECK-NEXT: 0000: 02000000 05000000 20000000 00000000 -# CHECK-NEXT: 0010: 06000000 02000000 0B000000 00000000 -# CHECK-NEXT: 0020: 07000000 03000000 14000000 00000000 +# CHECK-NEXT: 0010: 07000000 02000000 0B000000 00000000 +# CHECK-NEXT: 0020: 06000000 03000000 14000000 00000000 # CHECK-NEXT: 0030: 01000000 05000000 2A000000 00000000 # CHECK-NEXT: ) @@ -62,20 +62,20 @@ late3: # CHECK-NEXT: Type: # CHECK-NEXT: Other: # CHECK-NEXT: Section: Undefined -# CHECK: Name: freq +# CHECK: Name: late # CHECK-NEXT: Value: # CHECK-NEXT: Size: -# CHECK-NEXT: Binding: Weak +# CHECK-NEXT: Binding: Global # CHECK-NEXT: Type: # CHECK-NEXT: Other: -# CHECK-NEXT: Section: Undefined -# CHECK: Name: late +# CHECK-NEXT: Section: .test +# CHECK: Name: freq # CHECK-NEXT: Value: # CHECK-NEXT: Size: -# CHECK-NEXT: Binding: Global +# CHECK-NEXT: Binding: Weak # CHECK-NEXT: Type: # CHECK-NEXT: Other: -# CHECK-NEXT: Section: .test +# CHECK-NEXT: Section: Undefined # CHECK: CGProfile [ # CHECK-NEXT: CGProfileEntry { # CHECK-NEXT: From: a diff --git a/llvm/test/MC/ELF/file.s b/llvm/test/MC/ELF/file.s index e750762c9970a..4c96e8834d6d1 100644 --- a/llvm/test/MC/ELF/file.s +++ b/llvm/test/MC/ELF/file.s @@ -11,8 +11,8 @@ # CHECK-NEXT: 8: 0000000000000000 0 SECTION LOCAL DEFAULT 8 bar1 # CHECK-NEXT: 9: 0000000000000000 0 NOTYPE LOCAL DEFAULT 8 local2 # CHECK-NEXT: 10: 0000000000000000 0 FILE LOCAL DEFAULT ABS bar.c -# CHECK-NEXT: 11: 0000000000000000 0 NOTYPE GLOBAL DEFAULT 6 bar.c -# CHECK-NEXT: 12: 0000000000000008 0 NOTYPE GLOBAL DEFAULT 2 foo.c +# CHECK-NEXT: 11: 0000000000000008 0 NOTYPE GLOBAL DEFAULT 2 foo.c +# CHECK-NEXT: 12: 0000000000000000 0 NOTYPE GLOBAL DEFAULT 6 bar.c .quad .text diff --git a/llvm/test/MC/ELF/pr9292.s b/llvm/test/MC/ELF/pr9292.s index 9c346fbe94cb8..f35776c54d968 100644 --- a/llvm/test/MC/ELF/pr9292.s +++ b/llvm/test/MC/ELF/pr9292.s @@ -8,7 +8,7 @@ mov %eax,bar // CHECK: Symbol { -// CHECK: Name: bar +// CHECK: Name: foo // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Global @@ -17,7 +17,7 @@ mov %eax,bar // CHECK-NEXT: Section: Undefined (0x0) // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: foo +// CHECK-NEXT: Name: bar // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Global diff --git a/llvm/test/MC/ELF/relocation-alias.s b/llvm/test/MC/ELF/relocation-alias.s index d8392a9a41006..f6dc97e64ecbe 100644 --- a/llvm/test/MC/ELF/relocation-alias.s +++ b/llvm/test/MC/ELF/relocation-alias.s @@ -50,6 +50,6 @@ call memcpy_plus_1@PLT # SYM-NEXT: NOTYPE LOCAL DEFAULT 4 data_alias_l # SYM-NEXT: SECTION LOCAL DEFAULT 4 .data # SYM-NEXT: NOTYPE GLOBAL DEFAULT UND __GI_memcpy -# SYM-NEXT: NOTYPE GLOBAL DEFAULT 4 data # SYM-NEXT: NOTYPE GLOBAL DEFAULT 4 data_alias +# SYM-NEXT: NOTYPE GLOBAL DEFAULT 4 data # SYM-NOT: {{.}} diff --git a/llvm/test/MC/ELF/strtab-suffix-opt.s b/llvm/test/MC/ELF/strtab-suffix-opt.s index 36fdd66489f12..8115fc14f8d84 100644 --- a/llvm/test/MC/ELF/strtab-suffix-opt.s +++ b/llvm/test/MC/ELF/strtab-suffix-opt.s @@ -16,6 +16,6 @@ foobar: .Ltmp3: .size foobar, .Ltmp3-foobar -// CHECK: Name: bar (14) -// CHECK: Name: foo (18) // CHECK: Name: foobar (11) +// CHECK: Name: foo (18) +// CHECK: Name: bar (14) diff --git a/llvm/test/MC/ELF/symver-visibility.s b/llvm/test/MC/ELF/symver-visibility.s index 92d1da9cdef13..3de092d88a881 100644 --- a/llvm/test/MC/ELF/symver-visibility.s +++ b/llvm/test/MC/ELF/symver-visibility.s @@ -1,8 +1,8 @@ # RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t # RUN: llvm-readelf -s %t | FileCheck %s -# CHECK: NOTYPE GLOBAL HIDDEN {{[1-9]}} def@@v1 -# CHECK-NEXT: NOTYPE GLOBAL PROTECTED UND undef@v1 +# CHECK: NOTYPE GLOBAL PROTECTED UND undef@v1 +# CHECK-NEXT: NOTYPE GLOBAL HIDDEN {{[1-9]}} def@@v1 .protected undef .symver undef, undef@@@v1 diff --git a/llvm/test/MC/ELF/symver.s b/llvm/test/MC/ELF/symver.s index fa0724adf6e74..e039259268e26 100644 --- a/llvm/test/MC/ELF/symver.s +++ b/llvm/test/MC/ELF/symver.s @@ -42,7 +42,7 @@ global1: # SYM-NEXT: 4: 0000000000000000 0 NOTYPE LOCAL DEFAULT 2 bar1@zed # SYM-NEXT: 5: 0000000000000000 0 NOTYPE LOCAL DEFAULT 2 bar3@@zed # SYM-NEXT: 6: 0000000000000000 0 NOTYPE LOCAL DEFAULT 2 bar5@@zed -# SYM-NEXT: 7: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND bar2@zed -# SYM-NEXT: 8: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND bar6@zed -# SYM-NEXT: 9: 0000000000000014 0 NOTYPE GLOBAL DEFAULT 2 g1@@zed -# SYM-NEXT: 10: 0000000000000014 0 NOTYPE GLOBAL DEFAULT 2 global1 +# SYM-NEXT: 7: 0000000000000014 0 NOTYPE GLOBAL DEFAULT 2 global1 +# SYM-NEXT: 8: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND bar2@zed +# SYM-NEXT: 9: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND bar6@zed +# SYM-NEXT: 10: 0000000000000014 0 NOTYPE GLOBAL DEFAULT 2 g1@@zed diff --git a/llvm/test/MC/ELF/type.s b/llvm/test/MC/ELF/type.s index 27e95f13f3757..972a881150f6b 100644 --- a/llvm/test/MC/ELF/type.s +++ b/llvm/test/MC/ELF/type.s @@ -2,40 +2,40 @@ # CHECK: Symbol table '.symtab' contains 34 entries: # CHECK-NEXT: Num: Value Size Type Bind Vis Ndx Name -# CHECK-NEXT: 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND -# CHECK-NEXT: 1: 0000000000000000 0 FUNC GLOBAL DEFAULT 2 alias1 -# CHECK-NEXT: 2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT 2 alias10 -# CHECK-NEXT: 3: 0000000000000000 0 IFUNC GLOBAL DEFAULT 2 alias11 -# CHECK-NEXT: 4: 0000000000000000 0 FUNC GLOBAL DEFAULT 2 alias12 -# CHECK-NEXT: 5: 0000000000000000 0 OBJECT GLOBAL DEFAULT 2 alias2 -# CHECK-NEXT: 6: 0000000000000000 0 NOTYPE GLOBAL DEFAULT 2 alias3 -# CHECK-NEXT: 7: 0000000000000000 0 OBJECT GLOBAL DEFAULT 2 alias4 -# CHECK-NEXT: 8: 0000000000000000 0 NOTYPE GLOBAL DEFAULT 2 alias5 -# CHECK-NEXT: 9: 0000000000000000 0 NOTYPE GLOBAL DEFAULT 2 alias6 -# CHECK-NEXT: 10: 0000000000000000 0 TLS GLOBAL DEFAULT 2 alias7 -# CHECK-NEXT: 11: 0000000000000000 0 TLS GLOBAL DEFAULT 2 alias8 -# CHECK-NEXT: 12: 0000000000000000 0 OBJECT GLOBAL DEFAULT 2 alias9 -# CHECK-NEXT: 13: 0000000000000000 0 OBJECT GLOBAL DEFAULT 2 bar -# CHECK-NEXT: 14: 0000000000000000 0 FUNC GLOBAL DEFAULT 2 foo -# CHECK-NEXT: 15: 0000000000000000 0 FUNC GLOBAL DEFAULT 2 func -# CHECK-NEXT: 16: 0000000000000000 0 IFUNC GLOBAL DEFAULT 2 ifunc -# CHECK-NEXT: 17: 0000000000000000 0 OBJECT GLOBAL DEFAULT 2 obj -# CHECK-NEXT: 18: 0000000000000000 0 IFUNC GLOBAL DEFAULT 2 sym1 -# CHECK-NEXT: 19: 0000000000000000 0 TLS GLOBAL DEFAULT 2 sym10 -# CHECK-NEXT: 20: 0000000000000000 0 TLS GLOBAL DEFAULT 2 sym11 -# CHECK-NEXT: 21: 0000000000000000 0 TLS GLOBAL DEFAULT 2 sym12 -# CHECK-NEXT: 22: 0000000000000000 0 IFUNC GLOBAL DEFAULT 2 sym2 -# CHECK-NEXT: 23: 0000000000000000 0 IFUNC GLOBAL DEFAULT 2 sym3 -# CHECK-NEXT: 24: 0000000000000000 0 FUNC GLOBAL DEFAULT 2 sym4 -# CHECK-NEXT: 25: 0000000000000000 0 FUNC GLOBAL DEFAULT 2 sym5 -# CHECK-NEXT: 26: 0000000000000000 0 OBJECT GLOBAL DEFAULT 2 sym6 -# CHECK-NEXT: 27: 0000000000000000 0 IFUNC GLOBAL DEFAULT 2 sym7 -# CHECK-NEXT: 28: 0000000000000000 0 FUNC GLOBAL DEFAULT 2 sym8 -# CHECK-NEXT: 29: 0000000000000000 0 TLS GLOBAL DEFAULT 2 sym9 -# CHECK-NEXT: 30: 0000000000000000 0 TLS GLOBAL DEFAULT 2 tls -# CHECK-NEXT: 31: 0000000000000000 0 TLS GLOBAL DEFAULT 2 tls_quoted -# CHECK-NEXT: 32: 0000000000000000 0 TLS GLOBAL DEFAULT 2 tls_upper_case -# CHECK-NEXT: 33: 0000000000000000 0 OBJECT UNIQUE DEFAULT 2 zed +# CHECK-NEXT: 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND +# CHECK-NEXT: 1: 0000000000000000 0 FUNC GLOBAL DEFAULT 2 foo +# CHECK-NEXT: 2: 0000000000000000 0 OBJECT GLOBAL DEFAULT 2 bar +# CHECK-NEXT: 3: 0000000000000000 0 OBJECT UNIQUE DEFAULT 2 zed +# CHECK-NEXT: 4: 0000000000000000 0 OBJECT GLOBAL DEFAULT 2 obj +# CHECK-NEXT: 5: 0000000000000000 0 FUNC GLOBAL DEFAULT 2 func +# CHECK-NEXT: 6: 0000000000000000 0 IFUNC GLOBAL DEFAULT 2 ifunc +# CHECK-NEXT: 7: 0000000000000000 0 TLS GLOBAL DEFAULT 2 tls +# CHECK-NEXT: 8: 0000000000000000 0 TLS GLOBAL DEFAULT 2 tls_quoted +# CHECK-NEXT: 9: 0000000000000000 0 TLS GLOBAL DEFAULT 2 tls_upper_case +# CHECK-NEXT: 10: 0000000000000000 0 IFUNC GLOBAL DEFAULT 2 sym1 +# CHECK-NEXT: 11: 0000000000000000 0 FUNC GLOBAL DEFAULT 2 alias1 +# CHECK-NEXT: 12: 0000000000000000 0 IFUNC GLOBAL DEFAULT 2 sym2 +# CHECK-NEXT: 13: 0000000000000000 0 OBJECT GLOBAL DEFAULT 2 alias2 +# CHECK-NEXT: 14: 0000000000000000 0 IFUNC GLOBAL DEFAULT 2 sym3 +# CHECK-NEXT: 15: 0000000000000000 0 NOTYPE GLOBAL DEFAULT 2 alias3 +# CHECK-NEXT: 16: 0000000000000000 0 FUNC GLOBAL DEFAULT 2 sym4 +# CHECK-NEXT: 17: 0000000000000000 0 OBJECT GLOBAL DEFAULT 2 alias4 +# CHECK-NEXT: 18: 0000000000000000 0 FUNC GLOBAL DEFAULT 2 sym5 +# CHECK-NEXT: 19: 0000000000000000 0 NOTYPE GLOBAL DEFAULT 2 alias5 +# CHECK-NEXT: 20: 0000000000000000 0 OBJECT GLOBAL DEFAULT 2 sym6 +# CHECK-NEXT: 21: 0000000000000000 0 NOTYPE GLOBAL DEFAULT 2 alias6 +# CHECK-NEXT: 22: 0000000000000000 0 IFUNC GLOBAL DEFAULT 2 sym7 +# CHECK-NEXT: 23: 0000000000000000 0 TLS GLOBAL DEFAULT 2 alias7 +# CHECK-NEXT: 24: 0000000000000000 0 FUNC GLOBAL DEFAULT 2 sym8 +# CHECK-NEXT: 25: 0000000000000000 0 TLS GLOBAL DEFAULT 2 alias8 +# CHECK-NEXT: 26: 0000000000000000 0 TLS GLOBAL DEFAULT 2 sym9 +# CHECK-NEXT: 27: 0000000000000000 0 OBJECT GLOBAL DEFAULT 2 alias9 +# CHECK-NEXT: 28: 0000000000000000 0 TLS GLOBAL DEFAULT 2 sym10 +# CHECK-NEXT: 29: 0000000000000000 0 NOTYPE GLOBAL DEFAULT 2 alias10 +# CHECK-NEXT: 30: 0000000000000000 0 TLS GLOBAL DEFAULT 2 sym11 +# CHECK-NEXT: 31: 0000000000000000 0 IFUNC GLOBAL DEFAULT 2 alias11 +# CHECK-NEXT: 32: 0000000000000000 0 TLS GLOBAL DEFAULT 2 sym12 +# CHECK-NEXT: 33: 0000000000000000 0 FUNC GLOBAL DEFAULT 2 alias12 // Test that both % and @ are accepted. .global foo diff --git a/llvm/test/MC/ELF/undef.s b/llvm/test/MC/ELF/undef.s index 29adb940a4fc0..ab75230940b17 100644 --- a/llvm/test/MC/ELF/undef.s +++ b/llvm/test/MC/ELF/undef.s @@ -6,8 +6,8 @@ # CHECK-NEXT: Num: Value Size Type Bind Vis Ndx Name # CHECK-NEXT: 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND # CHECK-NEXT: 1: 0000000000000000 0 NOTYPE LOCAL DEFAULT 4 .Lsym8 -# CHECK-NEXT: 2: 0000000000000000 0 NOTYPE GLOBAL HIDDEN UND hidden -# CHECK-NEXT: 3: 0000000000000000 0 OBJECT GLOBAL DEFAULT UND sym6 +# CHECK-NEXT: 2: 0000000000000000 0 OBJECT GLOBAL DEFAULT UND sym6 +# CHECK-NEXT: 3: 0000000000000000 0 NOTYPE GLOBAL HIDDEN UND hidden # CHECK-NEXT: 4: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND undef .Lsym2: diff --git a/llvm/test/MC/ELF/weak.s b/llvm/test/MC/ELF/weak.s index d78f5db0f10c1..d7750545cae3d 100644 --- a/llvm/test/MC/ELF/weak.s +++ b/llvm/test/MC/ELF/weak.s @@ -10,21 +10,21 @@ bar: // CHECK: Symbol { -// CHECK: Name: bar -// CHECK-NEXT: Value: 0x4 +// CHECK: Name: foo +// CHECK-NEXT: Value: 0x0 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Weak // CHECK-NEXT: Type: None // CHECK-NEXT: Other: 0 -// CHECK-NEXT: Section: .text +// CHECK-NEXT: Section: Undefined (0x0) // CHECK-NEXT: } -// CHECK: Symbol { -// CHECK: Name: foo -// CHECK-NEXT: Value: 0x0 +// CHECK-NEXT: Symbol { +// CHECK-NEXT: Name: bar +// CHECK-NEXT: Value: 0x4 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Weak // CHECK-NEXT: Type: None // CHECK-NEXT: Other: 0 -// CHECK-NEXT: Section: Undefined (0x0) +// CHECK-NEXT: Section: .text // CHECK-NEXT: } // CHECK-NEXT: ] diff --git a/llvm/test/MC/ELF/weakref.s b/llvm/test/MC/ELF/weakref.s index 1f250ef09b4e6..d23d0fd715dfa 100644 --- a/llvm/test/MC/ELF/weakref.s +++ b/llvm/test/MC/ELF/weakref.s @@ -13,17 +13,16 @@ # CHECK-NEXT: 4: 000000000000001c 0 NOTYPE LOCAL DEFAULT 2 bar8 # CHECK-NEXT: 5: 0000000000000020 0 NOTYPE LOCAL DEFAULT 2 bar9 # CHECK-NEXT: 6: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND bar1 -# CHECK-NEXT: 7: 0000000000000028 0 NOTYPE GLOBAL DEFAULT 2 bar10 -# CHECK-NEXT: 8: 0000000000000030 0 NOTYPE GLOBAL DEFAULT 2 bar11 -# CHECK-NEXT: 9: 0000000000000030 0 NOTYPE GLOBAL DEFAULT 2 bar12 -# CHECK-NEXT: 10: 0000000000000034 0 NOTYPE GLOBAL DEFAULT 2 bar13 -# CHECK-NEXT: 11: 0000000000000038 0 NOTYPE GLOBAL DEFAULT 2 bar14 -# CHECK-NEXT: 12: 0000000000000040 0 NOTYPE GLOBAL DEFAULT 2 bar15 -# CHECK-NEXT: 13: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND bar2 -# CHECK-NEXT: 14: 0000000000000000 0 NOTYPE WEAK DEFAULT UND bar3 -# CHECK-NEXT: 15: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND bar4 -# CHECK-NEXT: 16: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND bar5 - +# CHECK-NEXT: 7: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND bar2 +# CHECK-NEXT: 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND bar3 +# CHECK-NEXT: 9: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND bar4 +# CHECK-NEXT: 10: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND bar5 +# CHECK-NEXT: 11: 0000000000000028 0 NOTYPE GLOBAL DEFAULT 2 bar10 +# CHECK-NEXT: 12: 0000000000000030 0 NOTYPE GLOBAL DEFAULT 2 bar11 +# CHECK-NEXT: 13: 0000000000000030 0 NOTYPE GLOBAL DEFAULT 2 bar12 +# CHECK-NEXT: 14: 0000000000000034 0 NOTYPE GLOBAL DEFAULT 2 bar13 +# CHECK-NEXT: 15: 0000000000000038 0 NOTYPE GLOBAL DEFAULT 2 bar14 +# CHECK-NEXT: 16: 0000000000000040 0 NOTYPE GLOBAL DEFAULT 2 bar15 .weakref foo1, bar1 diff --git a/llvm/test/MC/Mips/elf_st_other.s b/llvm/test/MC/Mips/elf_st_other.s index 6be849343b829..b9e19da073c55 100644 --- a/llvm/test/MC/Mips/elf_st_other.s +++ b/llvm/test/MC/Mips/elf_st_other.s @@ -18,9 +18,9 @@ d1: f2: nop -// CHECK-LABEL: Name: d1 -// CHECK: Other: 0 // CHECK-LABEL: Name: f1 // CHECK: Other [ (0x80) +// CHECK-LABEL: Name: d1 +// CHECK: Other: 0 // CHECK-LABEL: Name: f2 // CHECK: Other: 0 diff --git a/llvm/test/MC/Mips/insn-directive.s b/llvm/test/MC/Mips/insn-directive.s index b08fb02d52e83..05e37ffb67cc8 100644 --- a/llvm/test/MC/Mips/insn-directive.s +++ b/llvm/test/MC/Mips/insn-directive.s @@ -78,18 +78,18 @@ bar: # OBJ: Name: f_mm_insn_instr # OBJ: Other [ (0x80) -# OBJ: Name: f_normal_insn_data -# OBJ: Other: 0 - -# OBJ: Name: f_normal_insn_instr -# OBJ: Other: 0 - # OBJ: Name: o_mm_insn_data # OBJ: Other [ (0x80) # OBJ: Name: o_mm_insn_instr # OBJ: Other [ (0x80) +# OBJ: Name: f_normal_insn_data +# OBJ: Other: 0 + +# OBJ: Name: f_normal_insn_instr +# OBJ: Other: 0 + # OBJ: Name: o_normal_insn_data # OBJ: Other: 0 diff --git a/llvm/test/MC/PowerPC/ppc64-localentry-symbols.s b/llvm/test/MC/PowerPC/ppc64-localentry-symbols.s index 4bfc05d3ca745..2d78f60462eb7 100644 --- a/llvm/test/MC/PowerPC/ppc64-localentry-symbols.s +++ b/llvm/test/MC/PowerPC/ppc64-localentry-symbols.s @@ -3,9 +3,10 @@ # CHECK: Type Bind Vis Ndx Name # CHECK: FUNC GLOBAL DEFAULT [] 2 foo -# CHECK-NEXT: FUNC WEAK DEFAULT [] 2 foo@FBSD_1.1 +# CHECK-NEXT: FUNC WEAK DEFAULT [] 2 __impl_foo # CHECK-NEXT: FUNC GLOBAL DEFAULT [] 2 func # CHECK-NEXT: FUNC WEAK DEFAULT [] 2 weak_func +# CHECK: FUNC WEAK DEFAULT [] 2 foo@FBSD_1.1 .text .abiversion 2