forked from OSchip/llvm-project
[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. llvm-svn: 336359
This commit is contained in:
parent
8395323392
commit
061af9aafa
|
@ -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
|
Loading…
Reference in New Issue