/* 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: Linker script has wrong segments set for output sections */ /* 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: Linker script has wrong segments set for output sections */ /* 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: Linker script has wrong segments set for output sections */