[PATCH] [lld][LinkerScript] Add matching of output sections to segments

Denis Protivensky dprotivensky at accesssoftek.com
Thu Jun 11 01:03:06 PDT 2015


================
Comment at: test/elf/linkerscript/phdrs-invalid.test:10-35
@@ +9,28 @@
+
+(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
+*/
----------------
silvas wrote:
> You can directly use llvm-mc instead of yaml2obj.
Good point, but I'd prefer to use yaml2obj for consistency with other tests in lld, and because we already have the corresponding yaml file, so there's no need to add another one with assembly code.

================
Comment at: test/elf/linkerscript/phdrs-invalid.test:41-62
@@ +40,24 @@
+
+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 section .text
+*/
+
+/*
+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 section .data
+*/
+
+/*
+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 section .text
+*/
----------------
silvas wrote:
> Can you put the `RUN:` lines and check lines in the corresponding files?
> (you might need to add a lit.local.cfg that identifies the interesting suffixes as tests)
Don't understand the purpose of separating test cases. My intent was to logically group similar tests in one file. Moreover, I won't be able to split up phdrs-default.test file above in the same fasion without test code duplication.

http://reviews.llvm.org/D10359

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/






More information about the llvm-commits mailing list