forked from OSchip/llvm-project
64 lines
1.6 KiB
Plaintext
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 old-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 old-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 old-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
|
|
*/
|