[lld] r319217 - Bring r319051 back.

Rafael Espindola via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 28 12:21:44 PST 2017


Author: rafael
Date: Tue Nov 28 12:21:44 2017
New Revision: 319217

URL: http://llvm.org/viewvc/llvm-project?rev=319217&view=rev
Log:
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.

Modified:
    lld/trunk/test/ELF/gc-sections-shared.s

Modified: lld/trunk/test/ELF/gc-sections-shared.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/gc-sections-shared.s?rev=319217&r1=319216&r2=319217&view=diff
==============================================================================
--- lld/trunk/test/ELF/gc-sections-shared.s (original)
+++ lld/trunk/test/ELF/gc-sections-shared.s Tue Nov 28 12:21:44 2017
@@ -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:




More information about the llvm-commits mailing list