llvm-project/lld/test/elf/linkerscript/phdrs-invalid.test
Denis Protivensky 0c8beb1c95 [LinkerScript] Process program header in PHDRS command
Add PT_PHDR segment depending on its availability in linker script's
PHDRS command, fallback if no linker script is given.
Handle FILEHDR, PHDRS and FLAGS attributes of program header.

Differential Revision: http://reviews.llvm.org/D11589

llvm-svn: 244743
2015-08-12 12:31:35 +00:00

64 lines
1.6 KiB
Plaintext

/*
This group of tests checks invalid cases of defining and using PHDRS
command in linker scripts.
This test uses a single X86-64 input object, simple.o, created with the
following X86-64 assembly code:
*** simple.S:
(command line clang -c simple.S -o simple.o)
.text
main:
mov $1, %eax
movq $1, %rdi
movq $msg, %rsi
movq $14, %rdx
syscall
ret
.globl _start
_start:
call main
mov $60, %eax
syscall
ret
.data
msg: .asciz "Hello, World!\n"
*/
/*
Prepare the object file to test on.
RUN: yaml2obj -format=elf %p/Inputs/simple.o.yaml -o=%t.o
*/
/*
Test undefined header used when no PHDRS defined.
RUN: not lld -flavor gnu -target x86_64 -T %p/phdrs/undef-no-phdrs.script %t.o -static -o %t1 &> %t1-error
RUN: FileCheck -check-prefix UNDEF-NO-PHDRS %s < %t1-error
UNDEF-NO-PHDRS: Unknown header identifiers (missing in PHDRS command) are used
*/
/*
Test undefined header used when PHDRS is empty.
RUN: not lld -flavor gnu -target x86_64 -T %p/phdrs/undef-empty-phdrs.script %t.o -static -o %t2 &> %t2-error
RUN: FileCheck -check-prefix UNDEF-EMPTY-PHDRS %s < %t2-error
UNDEF-EMPTY-PHDRS: Unknown header identifiers (missing in PHDRS command) are used
*/
/*
Test undefined header used when PHDRS contains definitions.
RUN: not lld -flavor gnu -target x86_64 -T %p/phdrs/undef-id-phdrs.script %t.o -static -o %t3 &> %t3-error
RUN: FileCheck -check-prefix UNDEF-ID-PHDRS %s < %t3-error
UNDEF-ID-PHDRS: Unknown header identifiers (missing in PHDRS command) are used
*/