[lld] r330784 - Add a test. NFC.

Rafael Espindola via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 24 16:03:58 PDT 2018


Author: rafael
Date: Tue Apr 24 16:03:58 2018
New Revision: 330784

URL: http://llvm.org/viewvc/llvm-project?rev=330784&view=rev
Log:
Add a test. NFC.

This would have found the issue in r329960.

Added:
    lld/trunk/test/ELF/weak-shared-gc.s

Added: lld/trunk/test/ELF/weak-shared-gc.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/weak-shared-gc.s?rev=330784&view=auto
==============================================================================
--- lld/trunk/test/ELF/weak-shared-gc.s (added)
+++ lld/trunk/test/ELF/weak-shared-gc.s Tue Apr 24 16:03:58 2018
@@ -0,0 +1,21 @@
+# REQUIRES: x86
+# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t1.o
+# RUN: echo -e '.globl __cxa_finalize\n__cxa_finalize:' | \
+# RUN:   llvm-mc -filetype=obj -triple=x86_64-pc-linux - -o %t2.o
+# RUN: ld.lld %t2.o -o %t2.so -shared
+# RUN: ld.lld %t1.o --as-needed --gc-sections %t2.so -o %t
+# RUN: llvm-readelf -dynamic-table -dyn-symbols %t | FileCheck %s
+
+# The crt files on linux have a weak reference to __cxa_finalize. It
+# is important that a weak undefined reference is produced. Like
+# other weak undefined references, the shared library is not marked as
+# needed.
+
+# CHECK-NOT: NEEDED
+# CHECK: WEAK   DEFAULT UND __cxa_finalize
+# CHECK-NOT: NEEDED
+
+        .global _start
+_start:
+	.weak	__cxa_finalize
+	call	__cxa_finalize at PLT




More information about the llvm-commits mailing list