hanchenye-llvm-project/lld/test/elf/linkerscript/phdrs-invalid.test

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
*/