[lld] 3510c48 - [ELF] Improve .o preempting DSO tests
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 15 23:43:04 PST 2023
Author: Fangrui Song
Date: 2023-11-15T23:42:59-08:00
New Revision: 3510c48ad58bbfd39746ab73280c3da20d1ee9c8
URL: https://github.com/llvm/llvm-project/commit/3510c48ad58bbfd39746ab73280c3da20d1ee9c8
DIFF: https://github.com/llvm/llvm-project/commit/3510c48ad58bbfd39746ab73280c3da20d1ee9c8.diff
LOG: [ELF] Improve .o preempting DSO tests
The new RUN line `ld.lld --version-script=a.ver b.so a.o -o a1`
`c3` would be able to caught `replaceWithDefined` bug in
commit 667ea2ca408bbfb29f6d138b6c758542e329b2c5 (#72208).
Added:
Modified:
lld/test/ELF/obj-preempt-dso.s
Removed:
################################################################################
diff --git a/lld/test/ELF/obj-preempt-dso.s b/lld/test/ELF/obj-preempt-dso.s
index 3a262fa53fbe39c..76037629176c11e 100644
--- a/lld/test/ELF/obj-preempt-dso.s
+++ b/lld/test/ELF/obj-preempt-dso.s
@@ -3,27 +3,33 @@
# RUN: llvm-mc -filetype=obj -triple=x86_64 a.s -o a.o
# RUN: llvm-mc -filetype=obj -triple=x86_64 b.s -o b.o
# RUN: ld.lld -shared --version-script=b.ver b.o -o b.so
-# RUN: ld.lld --version-script=a.ver a.o b.so -o a
-# RUN: llvm-readelf --dyn-syms a | FileCheck %s
+# RUN: ld.lld --version-script=a.ver a.o b.so -o a0
+# RUN: llvm-nm -D a0 | FileCheck %s
+# RUN: ld.lld --version-script=a.ver b.so a.o -o a1
+# RUN: llvm-nm -D a1 | FileCheck %s
-# CHECK: 1: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND b2
-# CHECK-NEXT: 2: {{.*}} 0 NOTYPE GLOBAL DEFAULT [[#]] a1
-# CHECK-NEXT: 3: {{.*}} 0 NOTYPE GLOBAL DEFAULT [[#]] a2
-# CHECK-NEXT: 4: {{.*}} 0 NOTYPE GLOBAL DEFAULT [[#]] b1
-# CHECK-NEXT: 5: {{.*}} 0 NOTYPE GLOBAL DEFAULT [[#]] c2@@v2
-# CHECK-NEXT: 6: {{.*}} 0 NOTYPE GLOBAL DEFAULT [[#]] c1 at v1
+# CHECK: T a1{{$}}
+# CHECK-NEXT: T a2{{$}}
+# CHECK-NEXT: T b1{{$}}
+# CHECK-NEXT: U b2{{$}}
+# CHECK-NEXT: T c1 at v1
+# CHECK-NEXT: T c2@@v2
+# CHECK-NEXT: T c3{{$}}
+# CHECK-NEXT: T c4@@v3
# CHECK-NOT: {{.}}
#--- a.s
-.globl _start, a1, a2, a3, b1, c1, c2
+.globl _start, a1, a2, a3, b1, c1, c2, c3, c4
_start:
-a1: a2:
+a1: a2: ## defined in b.so and a
.hidden a3
-a3:
-b1:
+a3: ## defined in b.so; hidden in a
+b1: ## protected in b.so; defined in a
.symver c1, c1 at v1, remove
-c1:
-c2:
+c1: ## non-default version in b.so and a
+c2: ## default version in b.so and a
+c3: ## default version in b.so; unversioned in a
+c4: ## default version in b.so; another version in a
.data
.quad b2
@@ -31,9 +37,10 @@ c2:
#--- a.ver
v1 {};
v2 { c2; };
+v3 { c4; };
#--- b.s
-.globl a1, a2, a3, b1, b2, c1, c2
+.globl a1, a2, a3, b1, b2, c1, c2, c3, c4
.type a1, at function
a1: a2: a3:
.protected b1, b2
@@ -42,7 +49,9 @@ b2:
.symver c1, c1 at v1
c1:
c2:
+c3:
+c4:
#--- b.ver
v1 {};
-v2 { c2; };
+v2 { c2; c3; c4; };
More information about the llvm-commits
mailing list