[lld] r368649 - [ELF][test] Add dynamic-list-preempt2.s

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 12 22:08:46 PDT 2019


Author: maskray
Date: Mon Aug 12 22:08:46 2019
New Revision: 368649

URL: http://llvm.org/viewvc/llvm-project?rev=368649&view=rev
Log:
[ELF][test] Add dynamic-list-preempt2.s

When producing a DSO, the isPreemptible property of a Defined with
default or protected visibility is affected by the --dynamic-list file,
but not by interposable symbols in other DSOs.

Added:
    lld/trunk/test/ELF/dynamic-list-preempt2.s

Added: lld/trunk/test/ELF/dynamic-list-preempt2.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/dynamic-list-preempt2.s?rev=368649&view=auto
==============================================================================
--- lld/trunk/test/ELF/dynamic-list-preempt2.s (added)
+++ lld/trunk/test/ELF/dynamic-list-preempt2.s Mon Aug 12 22:08:46 2019
@@ -0,0 +1,29 @@
+# REQUIRES: x86
+
+# RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t.o
+# RUN: ld.lld %t.o -shared -soname=t.so -o %t.so
+# RUN: echo '{ foo; };' > %t.list
+# RUN: ld.lld %t.o %t.so -shared --dynamic-list %t.list -o %t
+# RUN: llvm-readelf --dyn-syms %t | FileCheck --check-prefix=SYM %s
+# RUN: llvm-readobj -r %t | FileCheck --check-prefix=REL %s
+
+## foo and bar interpose symbols in another DSO, so both are exported,
+## even if --dynamic-list specifies only foo.
+
+# SYM-DAG: bar
+# SYM-DAG: foo
+
+## bar is not specified in --dynamic-list, so it is not preemptable when
+## producing a DSO, and its PLT does not have an associated JUMP_SLOT.
+
+# REL:      .rela.plt {
+# REL-NEXT:   R_X86_64_JUMP_SLOT foo 0x0
+# REL-NEXT: }
+
+.globl foo, bar
+foo:
+bar:
+  ret
+
+call foo at PLT
+call bar at PLT




More information about the llvm-commits mailing list