[lld] r336359 - [ELF] - Add test case for checking PT_INTERP behavior.

George Rimar via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 5 08:01:44 PDT 2018


Author: grimar
Date: Thu Jul  5 08:01:44 2018
New Revision: 336359

URL: http://llvm.org/viewvc/llvm-project?rev=336359&view=rev
Log:
[ELF] - Add test case for checking PT_INTERP behavior.

When PT_INTERP is specified in PHDRS command, it should be created.
(if other conditions met)

We had no test for the folowing line:
https://github.com/llvm-mirror/lld/blob/master/ELF/LinkerScript.cpp#L1108
And for this header itself.

Patch fixes that.

Added:
    lld/trunk/test/ELF/linkerscript/pt-interp.test

Added: lld/trunk/test/ELF/linkerscript/pt-interp.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/pt-interp.test?rev=336359&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/pt-interp.test (added)
+++ lld/trunk/test/ELF/linkerscript/pt-interp.test Thu Jul  5 08:01:44 2018
@@ -0,0 +1,21 @@
+# REQUIRES: x86
+# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux /dev/null -o %t.o
+# RUN: ld.lld -o %t.so -shared %t.o
+
+## Check we create PT_INTERP program header when it is specified in PHDRS.
+# RUN: echo "PHDRS { interp PT_INTERP; }" > %t1.script
+# RUN: ld.lld -o %t1 --script %t1.script %t.o %t.so --dynamic-linker foo
+# RUN: llvm-readobj -program-headers %t1 | FileCheck %s
+# CHECK: PT_INTERP
+
+## Check we do not create it if it is not specified,
+## but only if PHDRS is not empty by itself.
+# RUN: echo "PHDRS { ph_text PT_LOAD; }" > %t2.script
+# RUN: ld.lld -o %t1 --script %t2.script %t.o %t.so --dynamic-linker foo
+# RUN: llvm-readobj -program-headers %t1 | FileCheck %s --check-prefix=NOINTERP
+# NOINTERP-NOT: PT_INTERP
+
+## Otherwise, if PHDRS is empty, we create PT_INTERP header.
+# RUN: echo "PHDRS {}" > %t3.script
+# RUN: ld.lld -o %t1 --script %t3.script %t.o %t.so --dynamic-linker foo
+# RUN: llvm-readobj -program-headers %t1 | FileCheck %s




More information about the llvm-commits mailing list