summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2017-11-28 20:21:44 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2017-11-28 20:21:44 +0000
commitf70502d3a65081caa11feca8df271f6f3a56369f (patch)
tree97cf51886364fa601702e9858b53be03e56e7abe
parent7fe7acc6b1b902d1e1207232e3ea31931dad73ab (diff)
downloadbcm5719-llvm-f70502d3a65081caa11feca8df271f6f3a56369f.tar.gz
bcm5719-llvm-f70502d3a65081caa11feca8df271f6f3a56369f.zip
Bring r319051 back.
It had been reverted because it depended on r319008 which has been recommitted. Original message: Add a missing test. We were not testing that we correctly handled a .o with a weak symbol after a .so. llvm-svn: 319217
-rw-r--r--lld/test/ELF/gc-sections-shared.s56
1 files changed, 56 insertions, 0 deletions
diff --git a/lld/test/ELF/gc-sections-shared.s b/lld/test/ELF/gc-sections-shared.s
index b9ce5dee1be..13be58cbbac 100644
--- a/lld/test/ELF/gc-sections-shared.s
+++ b/lld/test/ELF/gc-sections-shared.s
@@ -66,6 +66,62 @@
# CHECK: NEEDED Shared library: [{{.*}}3.so]
# CHECK-NOT: NEEDED
+# Test with %t.o at the end too.
+# RUN: ld.lld --gc-sections --export-dynamic-symbol foo -o %t --as-needed %t2.so %t3.so %t4.so %t.o
+# RUN: llvm-readobj --dynamic-table --dyn-symbols %t | FileCheck --check-prefix=CHECK2 %s
+
+# CHECK2: DynamicSymbols [
+# CHECK2-NEXT: Symbol {
+# CHECK2-NEXT: Name:
+# CHECK2-NEXT: Value:
+# CHECK2-NEXT: Size:
+# CHECK2-NEXT: Binding: Local
+# CHECK2-NEXT: Type:
+# CHECK2-NEXT: Other:
+# CHECK2-NEXT: Section: Undefined (0x0)
+# CHECK2-NEXT: }
+# CHECK2-NEXT: Symbol {
+# CHECK2-NEXT: Name: bar
+# CHECK2-NEXT: Value:
+# CHECK2-NEXT: Size:
+# CHECK2-NEXT: Binding: Global
+# CHECK2-NEXT: Type:
+# CHECK2-NEXT: Other:
+# CHECK2-NEXT: Section: .text
+# CHECK2-NEXT: }
+# CHECK2-NEXT: Symbol {
+# CHECK2-NEXT: Name: qux
+# CHECK2-NEXT: Value:
+# CHECK2-NEXT: Size:
+# CHECK2-NEXT: Binding: Weak
+# CHECK2-NEXT: Type:
+# CHECK2-NEXT: Other:
+# CHECK2-NEXT: Section: Undefined
+# CHECK2-NEXT: }
+# CHECK2-NEXT: Symbol {
+# CHECK2-NEXT: Name: foo
+# CHECK2-NEXT: Value:
+# CHECK2-NEXT: Size:
+# CHECK2-NEXT: Binding: Global
+# CHECK2-NEXT: Type:
+# CHECK2-NEXT: Other:
+# CHECK2-NEXT: Section: .text
+# CHECK2-NEXT: }
+# CHECK2-NEXT: Symbol {
+# CHECK2-NEXT: Name: baz
+# CHECK2-NEXT: Value:
+# CHECK2-NEXT: Size:
+# CHECK2-NEXT: Binding: Global
+# CHECK2-NEXT: Type:
+# CHECK2-NEXT: Other:
+# CHECK2-NEXT: Section: Undefined
+# CHECK2-NEXT: }
+# CHECK2-NEXT: ]
+
+# CHECK2-NOT: NEEDED
+# CHECK2: NEEDED Shared library: [{{.*}}3.so]
+# CHECK2-NOT: NEEDED
+
.section .text.foo, "ax"
.globl foo
foo:
OpenPOWER on IntegriCloud