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