diff options
| -rw-r--r-- | lld/test/ELF/linkerscript/pt-interp.test | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/lld/test/ELF/linkerscript/pt-interp.test b/lld/test/ELF/linkerscript/pt-interp.test new file mode 100644 index 00000000000..0441817aea6 --- /dev/null +++ b/lld/test/ELF/linkerscript/pt-interp.test @@ -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 |

