[lld] r326415 - Convert more tests as linker scripts instead of assembly.
Rui Ueyama via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 28 20:21:43 PST 2018
Author: ruiu
Date: Wed Feb 28 20:21:42 2018
New Revision: 326415
URL: http://llvm.org/viewvc/llvm-project?rev=326415&view=rev
Log:
Convert more tests as linker scripts instead of assembly.
Added:
lld/trunk/test/ELF/linkerscript/Inputs/data-commands.s
lld/trunk/test/ELF/linkerscript/Inputs/data-segment-relro.s
lld/trunk/test/ELF/linkerscript/Inputs/define.s
lld/trunk/test/ELF/linkerscript/Inputs/eh-frame-reloc-out-of-range.s
lld/trunk/test/ELF/linkerscript/Inputs/extend-pt-load.s
lld/trunk/test/ELF/linkerscript/Inputs/fill.s
lld/trunk/test/ELF/linkerscript/data-commands1.test
lld/trunk/test/ELF/linkerscript/data-commands2.test
lld/trunk/test/ELF/linkerscript/data-segment-relro.test
lld/trunk/test/ELF/linkerscript/define.test
lld/trunk/test/ELF/linkerscript/diag1.test
lld/trunk/test/ELF/linkerscript/diag2.test
lld/trunk/test/ELF/linkerscript/diag3.test
lld/trunk/test/ELF/linkerscript/diag4.test
lld/trunk/test/ELF/linkerscript/diag5.test
lld/trunk/test/ELF/linkerscript/diag6.test
lld/trunk/test/ELF/linkerscript/eh-frame-reloc-out-of-range.test
lld/trunk/test/ELF/linkerscript/expr-sections.test
lld/trunk/test/ELF/linkerscript/extend-pt-load1.test
lld/trunk/test/ELF/linkerscript/extend-pt-load2.test
lld/trunk/test/ELF/linkerscript/extend-pt-load3.test
lld/trunk/test/ELF/linkerscript/fill.test
Removed:
lld/trunk/test/ELF/linkerscript/data-commands.s
lld/trunk/test/ELF/linkerscript/data-segment-relro.s
lld/trunk/test/ELF/linkerscript/define.s
lld/trunk/test/ELF/linkerscript/diagnostic.s
lld/trunk/test/ELF/linkerscript/eh-frame-reloc-out-of-range.s
lld/trunk/test/ELF/linkerscript/expr-sections.s
lld/trunk/test/ELF/linkerscript/extend-pt-load.s
lld/trunk/test/ELF/linkerscript/fill.s
Modified:
lld/trunk/test/ELF/linkerscript/dot-is-not-abs.s
lld/trunk/test/ELF/linkerscript/eh-frame-hdr.s
lld/trunk/test/ELF/linkerscript/eh-frame.s
lld/trunk/test/ELF/linkerscript/emit-reloc-section-names.s
lld/trunk/test/ELF/linkerscript/empty-load.s
lld/trunk/test/ELF/linkerscript/empty-tls.s
lld/trunk/test/ELF/linkerscript/filename-spec.s
Added: lld/trunk/test/ELF/linkerscript/Inputs/data-commands.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/Inputs/data-commands.s?rev=326415&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/Inputs/data-commands.s (added)
+++ lld/trunk/test/ELF/linkerscript/Inputs/data-commands.s Wed Feb 28 20:21:42 2018
@@ -0,0 +1,35 @@
+.global a
+a = 0x11
+
+.global b
+b = 0x1122
+
+.global c
+c = 0x11223344
+
+.global d
+d = 0x1122334455667788
+
+.section .foo.1, "a"
+ .byte 0xFF
+
+.section .foo.2, "a"
+ .byte 0xFF
+
+.section .foo.3, "a"
+ .byte 0xFF
+
+.section .foo.4, "a"
+ .byte 0xFF
+
+.section .bar.1, "a"
+ .byte 0xFF
+
+.section .bar.2, "a"
+ .byte 0xFF
+
+.section .bar.3, "a"
+ .byte 0xFF
+
+.section .bar.4, "a"
+ .byte 0xFF
Added: lld/trunk/test/ELF/linkerscript/Inputs/data-segment-relro.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/Inputs/data-segment-relro.s?rev=326415&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/Inputs/data-segment-relro.s (added)
+++ lld/trunk/test/ELF/linkerscript/Inputs/data-segment-relro.s Wed Feb 28 20:21:42 2018
@@ -0,0 +1,11 @@
+.global _start
+_start:
+ .long bar
+ jmp *bar2 at GOTPCREL(%rip)
+
+.section .data,"aw"
+.quad 0
+
+.zero 4
+.section .foo,"aw"
+.section .bss,"", at nobits
Added: lld/trunk/test/ELF/linkerscript/Inputs/define.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/Inputs/define.s?rev=326415&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/Inputs/define.s (added)
+++ lld/trunk/test/ELF/linkerscript/Inputs/define.s Wed Feb 28 20:21:42 2018
@@ -0,0 +1,8 @@
+.global defined
+defined = 0
+
+.section .foo,"a"
+.quad 1
+
+.section .bar,"a"
+.quad 1
Added: lld/trunk/test/ELF/linkerscript/Inputs/eh-frame-reloc-out-of-range.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/Inputs/eh-frame-reloc-out-of-range.s?rev=326415&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/Inputs/eh-frame-reloc-out-of-range.s (added)
+++ lld/trunk/test/ELF/linkerscript/Inputs/eh-frame-reloc-out-of-range.s Wed Feb 28 20:21:42 2018
@@ -0,0 +1,11 @@
+.text
+.globl _start
+_start:
+ .cfi_startproc
+ .cfi_lsda 0, _ex
+ nop
+ .cfi_endproc
+
+.data
+_ex:
+ .word 0
Added: lld/trunk/test/ELF/linkerscript/Inputs/extend-pt-load.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/Inputs/extend-pt-load.s?rev=326415&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/Inputs/extend-pt-load.s (added)
+++ lld/trunk/test/ELF/linkerscript/Inputs/extend-pt-load.s Wed Feb 28 20:21:42 2018
@@ -0,0 +1,3 @@
+nop
+.section .data.rel.ro, "aw"
+.byte 0
Added: lld/trunk/test/ELF/linkerscript/Inputs/fill.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/Inputs/fill.s?rev=326415&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/Inputs/fill.s (added)
+++ lld/trunk/test/ELF/linkerscript/Inputs/fill.s Wed Feb 28 20:21:42 2018
@@ -0,0 +1,11 @@
+.text
+.globl _start
+_start:
+
+.section .aaa, "a"
+.align 1
+.byte 0xAA
+
+.section .bbb, "a"
+.align 1
+.byte 0xBB
Removed: lld/trunk/test/ELF/linkerscript/data-commands.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/data-commands.s?rev=326414&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/data-commands.s (original)
+++ lld/trunk/test/ELF/linkerscript/data-commands.s (removed)
@@ -1,117 +0,0 @@
-# REQUIRES: x86,mips
-# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o
-# RUN: echo "SECTIONS \
-# RUN: { \
-# RUN: .foo : { \
-# RUN: *(.foo.1) \
-# RUN: BYTE(0x11) \
-# RUN: *(.foo.2) \
-# RUN: SHORT(0x1122) \
-# RUN: *(.foo.3) \
-# RUN: LONG(0x11223344) \
-# RUN: *(.foo.4) \
-# RUN: QUAD(0x1122334455667788) \
-# RUN: } \
-# RUN: .bar : { \
-# RUN: *(.bar.1) \
-# RUN: BYTE(a + 1) \
-# RUN: *(.bar.2) \
-# RUN: SHORT(b) \
-# RUN: *(.bar.3) \
-# RUN: LONG(c + 2) \
-# RUN: *(.bar.4) \
-# RUN: QUAD(d) \
-# RUN: } \
-# RUN: }" > %t.script
-# RUN: ld.lld -o %t %t.o --script %t.script
-# RUN: llvm-objdump -s %t | FileCheck %s
-
-# CHECK: Contents of section .foo:
-# CHECK-NEXT: ff11ff22 11ff4433 2211ff88 77665544
-# CHECK-NEXT: 332211
-
-# CHECK: Contents of section .bar:
-# CHECK-NEXT: ff12ff22 11ff4633 2211ff88 77665544
-# CHECK-NEXT: 332211
-
-# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux %s -o %tmips64be
-# RUN: ld.lld --script %t.script %tmips64be -o %t2
-# RUN: llvm-objdump -s %t2 | FileCheck %s --check-prefix=BE
-# BE: Contents of section .foo:
-# BE-NEXT: ff11ff11 22ff1122 3344ff11 22334455
-# BE-NEXT: 667788
-# BE-NEXT: Contents of section .bar:
-# BE-NEXT: ff12ff11 22ff1122 3346ff11 22334455
-# BE-NEXT: 667788
-
-# RUN: echo "MEMORY { \
-# RUN: rom (rwx) : ORIGIN = 0x00, LENGTH = 2K \
-# RUN: } \
-# RUN: SECTIONS { \
-# RUN: .foo : { \
-# RUN: *(.foo.1) \
-# RUN: BYTE(0x11) \
-# RUN: *(.foo.2) \
-# RUN: SHORT(0x1122) \
-# RUN: *(.foo.3) \
-# RUN: LONG(0x11223344) \
-# RUN: *(.foo.4) \
-# RUN: QUAD(0x1122334455667788) \
-# RUN: } > rom \
-# RUN: .bar : { \
-# RUN: *(.bar.1) \
-# RUN: BYTE(a + 1) \
-# RUN: *(.bar.2) \
-# RUN: SHORT(b) \
-# RUN: *(.bar.3) \
-# RUN: LONG(c + 2) \
-# RUN: *(.bar.4) \
-# RUN: QUAD(d) \
-# RUN: } > rom \
-# RUN: }" > %t-memory.script
-# RUN: ld.lld -o %t-memory %t.o --script %t-memory.script
-# RUN: llvm-objdump -s %t-memory | FileCheck %s --check-prefix=MEM
-
-# MEM: Contents of section .foo:
-# MEM-NEXT: 0000 ff11ff22 11ff4433 2211ff88 77665544
-# MEM-NEXT: 0010 332211
-
-# MEM: Contents of section .bar:
-# MEM-NEXT: 0013 ff12ff22 11ff4633 2211ff88 77665544
-# MEM-NEXT: 0023 332211
-
-.global a
-a = 0x11
-
-.global b
-b = 0x1122
-
-.global c
-c = 0x11223344
-
-.global d
-d = 0x1122334455667788
-
-.section .foo.1, "a"
- .byte 0xFF
-
-.section .foo.2, "a"
- .byte 0xFF
-
-.section .foo.3, "a"
- .byte 0xFF
-
-.section .foo.4, "a"
- .byte 0xFF
-
-.section .bar.1, "a"
- .byte 0xFF
-
-.section .bar.2, "a"
- .byte 0xFF
-
-.section .bar.3, "a"
- .byte 0xFF
-
-.section .bar.4, "a"
- .byte 0xFF
Added: lld/trunk/test/ELF/linkerscript/data-commands1.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/data-commands1.test?rev=326415&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/data-commands1.test (added)
+++ lld/trunk/test/ELF/linkerscript/data-commands1.test Wed Feb 28 20:21:42 2018
@@ -0,0 +1,45 @@
+# REQUIRES: x86,mips
+# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %p/Inputs/data-commands.s -o %t.o
+# RUN: ld.lld -o %t %t.o --script %s
+# RUN: llvm-objdump -s %t | FileCheck %s
+
+SECTIONS {
+ .foo : {
+ *(.foo.1)
+ BYTE(0x11)
+ *(.foo.2)
+ SHORT(0x1122)
+ *(.foo.3)
+ LONG(0x11223344)
+ *(.foo.4)
+ QUAD(0x1122334455667788)
+ }
+ .bar : {
+ *(.bar.1)
+ BYTE(a + 1)
+ *(.bar.2)
+ SHORT(b)
+ *(.bar.3)
+ LONG(c + 2)
+ *(.bar.4)
+ QUAD(d)
+ }
+}
+
+# CHECK: Contents of section .foo:
+# CHECK-NEXT: ff11ff22 11ff4433 2211ff88 77665544
+# CHECK-NEXT: 332211
+
+# CHECK: Contents of section .bar:
+# CHECK-NEXT: ff12ff22 11ff4633 2211ff88 77665544
+# CHECK-NEXT: 332211
+
+# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux %p/Inputs/data-commands.s -o %t2.o
+# RUN: ld.lld --script %s %t2.o -o %t2
+# RUN: llvm-objdump -s %t2 | FileCheck -check-prefix=BIGENDIAN %s
+# BIGENDIAN: Contents of section .foo:
+# BIGENDIAN-NEXT: ff11ff11 22ff1122 3344ff11 22334455
+# BIGENDIAN-NEXT: 667788
+# BIGENDIAN-NEXT: Contents of section .bar:
+# BIGENDIAN-NEXT: ff12ff11 22ff1122 3346ff11 22334455
+# BIGENDIAN-NEXT: 667788
Added: lld/trunk/test/ELF/linkerscript/data-commands2.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/data-commands2.test?rev=326415&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/data-commands2.test (added)
+++ lld/trunk/test/ELF/linkerscript/data-commands2.test Wed Feb 28 20:21:42 2018
@@ -0,0 +1,40 @@
+# REQUIRES: x86
+# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %p/Inputs/data-commands.s -o %t.o
+# RUN: ld.lld -o %t %t.o --script %s
+# RUN: llvm-objdump -s %t | FileCheck %s
+
+MEMORY {
+ rom (rwx) : ORIGIN = 0x00, LENGTH = 2K
+}
+
+SECTIONS {
+ .foo : {
+ *(.foo.1)
+ BYTE(0x11)
+ *(.foo.2)
+ SHORT(0x1122)
+ *(.foo.3)
+ LONG(0x11223344)
+ *(.foo.4)
+ QUAD(0x1122334455667788)
+ } > rom
+
+ .bar : {
+ *(.bar.1)
+ BYTE(a + 1)
+ *(.bar.2)
+ SHORT(b)
+ *(.bar.3)
+ LONG(c + 2)
+ *(.bar.4)
+ QUAD(d)
+ } > rom
+}
+
+# CHECK: Contents of section .foo:
+# CHECK-NEXT: 0000 ff11ff22 11ff4433 2211ff88 77665544
+# CHECK-NEXT: 0010 332211
+
+# CHECK: Contents of section .bar:
+# CHECK-NEXT: 0013 ff12ff22 11ff4633 2211ff88 77665544
+# CHECK-NEXT: 0023 332211
Removed: lld/trunk/test/ELF/linkerscript/data-segment-relro.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/data-segment-relro.s?rev=326414&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/data-segment-relro.s (original)
+++ lld/trunk/test/ELF/linkerscript/data-segment-relro.s (removed)
@@ -1,70 +0,0 @@
-# REQUIRES: x86
-# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t1.o
-# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %p/Inputs/shared.s -o %t2.o
-# RUN: ld.lld -shared %t2.o -o %t2.so
-
-# RUN: echo "SECTIONS { \
-# RUN: . = SIZEOF_HEADERS; \
-# RUN: .plt : { *(.plt) } \
-# RUN: .text : { *(.text) } \
-# RUN: . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); \
-# RUN: .dynamic : { *(.dynamic) } \
-# RUN: .got : { *(.got) } \
-# RUN: . = DATA_SEGMENT_RELRO_END (1 ? 24 : 0, .); \
-# RUN: .got.plt : { *(.got.plt) } \
-# RUN: .data : { *(.data) } \
-# RUN: .bss : { *(.bss) } \
-# RUN: . = DATA_SEGMENT_END (.); \
-# RUN: }" > %t.script
-
-## With relro or without DATA_SEGMENT_RELRO_END just aligns to
-## page boundary.
-# RUN: ld.lld --hash-style=sysv -z norelro %t1.o %t2.so --script %t.script -o %t
-# RUN: llvm-readobj -s %t | FileCheck %s
-# RUN: ld.lld --hash-style=sysv -z relro %t1.o %t2.so --script %t.script -o %t2
-# RUN: llvm-readobj -s %t2 | FileCheck %s
-
-# CHECK: Section {
-# CHECK: Index:
-# CHECK: Name: .got
-# CHECK-NEXT: Type: SHT_PROGBITS
-# CHECK-NEXT: Flags [
-# CHECK-NEXT: SHF_ALLOC
-# CHECK-NEXT: SHF_WRITE
-# CHECK-NEXT: ]
-# CHECK-NEXT: Address: 0x10F0
-# CHECK-NEXT: Offset: 0x10F0
-# CHECK-NEXT: Size:
-# CHECK-NEXT: Link:
-# CHECK-NEXT: Info:
-# CHECK-NEXT: AddressAlignment:
-# CHECK-NEXT: EntrySize:
-# CHECK-NEXT: }
-# CHECK-NEXT: Section {
-# CHECK-NEXT: Index:
-# CHECK-NEXT: Name: .got.plt
-# CHECK-NEXT: Type: SHT_PROGBITS
-# CHECK-NEXT: Flags [
-# CHECK-NEXT: SHF_ALLOC
-# CHECK-NEXT: SHF_WRITE
-# CHECK-NEXT: ]
-# CHECK-NEXT: Address: 0x2000
-# CHECK-NEXT: Offset: 0x2000
-# CHECK-NEXT: Size:
-# CHECK-NEXT: Link:
-# CHECK-NEXT: Info:
-# CHECK-NEXT: AddressAlignment:
-# CHECK-NEXT: EntrySize:
-# CHECK-NEXT: }
-
-.global _start
-_start:
- .long bar
- jmp *bar2 at GOTPCREL(%rip)
-
-.section .data,"aw"
-.quad 0
-
-.zero 4
-.section .foo,"aw"
-.section .bss,"", at nobits
Added: lld/trunk/test/ELF/linkerscript/data-segment-relro.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/data-segment-relro.test?rev=326415&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/data-segment-relro.test (added)
+++ lld/trunk/test/ELF/linkerscript/data-segment-relro.test Wed Feb 28 20:21:42 2018
@@ -0,0 +1,66 @@
+# REQUIRES: x86
+# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %p/Inputs/data-segment-relro.s -o %t1.o
+# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %p/Inputs/shared.s -o %t2.o
+# RUN: ld.lld -shared %t2.o -o %t2.so
+
+## With relro or without DATA_SEGMENT_RELRO_END just aligns to
+## page boundary.
+
+# RUN: ld.lld --hash-style=sysv -z norelro %t1.o %t2.so --script %s -o %t
+# RUN: llvm-readobj -s %t | FileCheck %s
+
+# RUN: ld.lld --hash-style=sysv -z relro %t1.o %t2.so --script %s -o %t2
+# RUN: llvm-readobj -s %t2 | FileCheck %s
+
+SECTIONS {
+ . = SIZEOF_HEADERS;
+
+ .plt : { *(.plt) }
+ .text : { *(.text) }
+
+ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));
+
+ .dynamic : { *(.dynamic) }
+ .got : { *(.got) }
+
+ . = DATA_SEGMENT_RELRO_END (1 ? 24 : 0, .);
+
+ .got.plt : { *(.got.plt) }
+ .data : { *(.data) }
+ .bss : { *(.bss) }
+
+ . = DATA_SEGMENT_END (.);
+}
+
+# CHECK: Section {
+# CHECK: Index:
+# CHECK: Name: .got
+# CHECK-NEXT: Type: SHT_PROGBITS
+# CHECK-NEXT: Flags [
+# CHECK-NEXT: SHF_ALLOC
+# CHECK-NEXT: SHF_WRITE
+# CHECK-NEXT: ]
+# CHECK-NEXT: Address: 0x10F0
+# CHECK-NEXT: Offset: 0x10F0
+# CHECK-NEXT: Size:
+# CHECK-NEXT: Link:
+# CHECK-NEXT: Info:
+# CHECK-NEXT: AddressAlignment:
+# CHECK-NEXT: EntrySize:
+# CHECK-NEXT: }
+# CHECK-NEXT: Section {
+# CHECK-NEXT: Index:
+# CHECK-NEXT: Name: .got.plt
+# CHECK-NEXT: Type: SHT_PROGBITS
+# CHECK-NEXT: Flags [
+# CHECK-NEXT: SHF_ALLOC
+# CHECK-NEXT: SHF_WRITE
+# CHECK-NEXT: ]
+# CHECK-NEXT: Address: 0x2000
+# CHECK-NEXT: Offset: 0x2000
+# CHECK-NEXT: Size:
+# CHECK-NEXT: Link:
+# CHECK-NEXT: Info:
+# CHECK-NEXT: AddressAlignment:
+# CHECK-NEXT: EntrySize:
+# CHECK-NEXT: }
Removed: lld/trunk/test/ELF/linkerscript/define.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/define.s?rev=326414&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/define.s (original)
+++ lld/trunk/test/ELF/linkerscript/define.s (removed)
@@ -1,25 +0,0 @@
-# REQUIRES: x86
-# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
-
-# RUN: echo "SECTIONS \
-# RUN: { \
-# RUN: . = DEFINED(defined) ? 0x11000 : .; \
-# RUN: .foo : { *(.foo*) } \
-# RUN: . = DEFINED(notdefined) ? 0x12000 : 0x13000; \
-# RUN: .bar : { *(.bar*) } \
-# RUN: }" > %t.script
-# RUN: ld.lld -o %t1 --script %t.script %t
-# RUN: llvm-objdump -section-headers %t1 | FileCheck %s
-
-# CHECK: 1 .foo 00000008 0000000000011000 DATA
-# CHECK: 2 .bar 00000008 0000000000013000 DATA
-# CHECK: 3 .text 00000000 0000000000013008 TEXT DATA
-
-.global defined
-defined = 0
-
-.section .foo,"a"
-.quad 1
-
-.section .bar,"a"
-.quad 1
Added: lld/trunk/test/ELF/linkerscript/define.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/define.test?rev=326415&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/define.test (added)
+++ lld/trunk/test/ELF/linkerscript/define.test Wed Feb 28 20:21:42 2018
@@ -0,0 +1,15 @@
+# REQUIRES: x86
+# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %p/Inputs/define.s -o %t.o
+# RUN: ld.lld -o %t --script %s %t.o
+# RUN: llvm-objdump -section-headers %t | FileCheck %s
+
+SECTIONS {
+ . = DEFINED(defined) ? 0x11000 : .;
+ .foo : { *(.foo*) }
+ . = DEFINED(notdefined) ? 0x12000 : 0x13000;
+ .bar : { *(.bar*) }
+}
+
+# CHECK: 1 .foo 00000008 0000000000011000 DATA
+# CHECK: 2 .bar 00000008 0000000000013000 DATA
+# CHECK: 3 .text 00000000 0000000000013008 TEXT DATA
Added: lld/trunk/test/ELF/linkerscript/diag1.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/diag1.test?rev=326415&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/diag1.test (added)
+++ lld/trunk/test/ELF/linkerscript/diag1.test Wed Feb 28 20:21:42 2018
@@ -0,0 +1,15 @@
+# REQUIRES: x86
+# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux /dev/null -o %t.o
+# RUN: not ld.lld -shared %t.o -o %t --script %s 2>&1 | FileCheck -strict-whitespace %s
+
+SECTIONS {
+ .text + { *(.text) }
+ .keep : { *(.keep) } /*
+ comment line 1
+ comment line 2 */
+ .temp : { *(.temp) }
+}
+
+CHECK: 6: malformed number: +
+CHECK-NEXT: >>> .text + { *(.text) }
+CHECK-NEXT: >>> ^
Added: lld/trunk/test/ELF/linkerscript/diag2.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/diag2.test?rev=326415&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/diag2.test (added)
+++ lld/trunk/test/ELF/linkerscript/diag2.test Wed Feb 28 20:21:42 2018
@@ -0,0 +1,13 @@
+# REQUIRES: x86
+# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux /dev/null -o %t.o
+# RUN: not ld.lld -shared %t.o -o %t --script %s 2>&1 | FileCheck -strict-whitespace %s
+
+UNKNOWN_TAG {
+ .text : { *(.text) }
+ .keep : { *(.keep) }
+ .temp : { *(.temp) }
+}
+
+CHECK: 5: unknown directive: UNKNOWN_TAG
+CHECK-NEXT: >>> UNKNOWN_TAG {
+CHECK-NEXT: >>> ^
Added: lld/trunk/test/ELF/linkerscript/diag3.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/diag3.test?rev=326415&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/diag3.test (added)
+++ lld/trunk/test/ELF/linkerscript/diag3.test Wed Feb 28 20:21:42 2018
@@ -0,0 +1,13 @@
+# REQUIRES: x86
+# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux /dev/null -o %t.o
+# RUN: not ld.lld -shared %t.o -o %t --script %s 2>&1 | FileCheck -strict-whitespace %s
+
+SECTIONS {
+ .text : { *(.text) }
+ .keep : { *(.keep) }
+ boom .temp : { *(.temp) }
+}
+
+# CHECK: 8: malformed number: .temp
+# CHECK-NEXT: >>> boom .temp : { *(.temp) }
+# CHECK-NEXT: >>> ^
Added: lld/trunk/test/ELF/linkerscript/diag4.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/diag4.test?rev=326415&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/diag4.test (added)
+++ lld/trunk/test/ELF/linkerscript/diag4.test Wed Feb 28 20:21:42 2018
@@ -0,0 +1,14 @@
+# REQUIRES: x86
+# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux /dev/null -o %t.o
+# RUN: echo "INCLUDE \"%s\"" > %t.script
+# RUN: not ld.lld -shared %t.o -o %t --script %t.script 2>&1 | FileCheck -strict-whitespace %s
+
+SECTIONS {
+ .text : { *(.text) }
+ .keep : { *(.keep) }
+ boom .temp : { *(.temp) }
+}
+
+# CHECK: 9: malformed number: .temp
+# CHECK-NEXT: >>> boom .temp : { *(.temp) }
+# CHECK-NEXT: >>> ^
\ No newline at end of file
Added: lld/trunk/test/ELF/linkerscript/diag5.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/diag5.test?rev=326415&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/diag5.test (added)
+++ lld/trunk/test/ELF/linkerscript/diag5.test Wed Feb 28 20:21:42 2018
@@ -0,0 +1,14 @@
+# REQUIRES: x86
+# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux /dev/null -o %t.o
+# RUN: echo "INCLUDE \"%s\"" > %t.script
+# RUN: not ld.lld -shared %t.o -o %t --script %t.script 2>&1 | FileCheck -strict-whitespace %s
+
+SECTIONS {
+ .text : { *(.text) }
+ .keep : { *(.keep) }
+ boom .temp : { *(.temp) }
+}
+
+# CHECK: 9: malformed number: .temp
+# CHECK-NEXT: >>> boom .temp : { *(.temp) }
+# CHECK-NEXT: >>> ^
Added: lld/trunk/test/ELF/linkerscript/diag6.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/diag6.test?rev=326415&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/diag6.test (added)
+++ lld/trunk/test/ELF/linkerscript/diag6.test Wed Feb 28 20:21:42 2018
@@ -0,0 +1,7 @@
+# REQUIRES: x86
+# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux /dev/null -o %t.o
+# RUN: not ld.lld -shared %t.o -o %t --script %s 2>&1 | FileCheck %s
+
+SECTIONS /*
+
+CHECK: error: unclosed comment in a linker script
Removed: lld/trunk/test/ELF/linkerscript/diagnostic.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/diagnostic.s?rev=326414&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/diagnostic.s (original)
+++ lld/trunk/test/ELF/linkerscript/diagnostic.s (removed)
@@ -1,106 +0,0 @@
-# REQUIRES: x86
-# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
-
-## Take some valid script with multiline comments
-## and check it actually works:
-# RUN: echo "SECTIONS {" > %t.script
-# RUN: echo ".text : { *(.text) }" >> %t.script
-# RUN: echo ".keep : { *(.keep) } /*" >> %t.script
-# RUN: echo "comment line 1" >> %t.script
-# RUN: echo "comment line 2 */" >> %t.script
-# RUN: echo ".temp : { *(.temp) } }" >> %t.script
-# RUN: ld.lld -shared %t -o %t1 --script %t.script
-
-## Change ":" to "+" at line 2, check that error
-## message starts from correct line number:
-# RUN: echo "SECTIONS {" > %t.script
-# RUN: echo ".text + { *(.text) }" >> %t.script
-# RUN: echo ".keep : { *(.keep) } /*" >> %t.script
-# RUN: echo "comment line 1" >> %t.script
-# RUN: echo "comment line 2 */" >> %t.script
-# RUN: echo ".temp : { *(.temp) } }" >> %t.script
-# RUN: not ld.lld -shared %t -o %t1 --script %t.script 2>&1 | FileCheck -check-prefix=ERR1 %s
-# ERR1: {{.*}}.script:2:
-
-## Change ":" to "+" at line 3 now, check correct error line number:
-# RUN: echo "SECTIONS {" > %t.script
-# RUN: echo ".text : { *(.text) }" >> %t.script
-# RUN: echo ".keep + { *(.keep) } /*" >> %t.script
-# RUN: echo "comment line 1" >> %t.script
-# RUN: echo "comment line 2 */" >> %t.script
-# RUN: echo ".temp : { *(.temp) } }" >> %t.script
-# RUN: not ld.lld -shared %t -o %t1 --script %t.script 2>&1 | FileCheck -check-prefix=ERR2 %s
-# ERR2: {{.*}}.script:3:
-
-## Change ":" to "+" at line 6, after multiline comment,
-## check correct error line number:
-# RUN: echo "SECTIONS {" > %t.script
-# RUN: echo ".text : { *(.text) }" >> %t.script
-# RUN: echo ".keep : { *(.keep) } /*" >> %t.script
-# RUN: echo "comment line 1" >> %t.script
-# RUN: echo "comment line 2 */" >> %t.script
-# RUN: echo ".temp + { *(.temp) } }" >> %t.script
-# RUN: not ld.lld -shared %t -o %t1 --script %t.script 2>&1 | FileCheck -check-prefix=ERR5 %s
-# ERR5: {{.*}}.script:6:
-
-## Check that text of lines and pointer to 'bad' token are working ok.
-# RUN: echo "UNKNOWN_TAG {" > %t.script
-# RUN: echo ".text : { *(.text) }" >> %t.script
-# RUN: echo ".keep : { *(.keep) }" >> %t.script
-# RUN: echo ".temp : { *(.temp) } }" >> %t.script
-# RUN: not ld.lld -shared %t -o %t1 --script %t.script 2>&1 | \
-# RUN: FileCheck -check-prefix=ERR6 -strict-whitespace %s
-# ERR6: error: {{.*}}.script:1: unknown directive: UNKNOWN_TAG
-# ERR6-NEXT: >>> UNKNOWN_TAG {
-# ERR6-NEXT: >>> ^
-
-## One more check that text of lines and pointer to 'bad' token are working ok.
-# RUN: echo "SECTIONS {" > %t.script
-# RUN: echo ".text : { *(.text) }" >> %t.script
-# RUN: echo ".keep : { *(.keep) }" >> %t.script
-# RUN: echo "boom .temp : { *(.temp) } }" >> %t.script
-# RUN: not ld.lld -shared %t -o %t1 --script %t.script 2>&1 | \
-# RUN: FileCheck -check-prefix=ERR7 -strict-whitespace %s
-# ERR7: error: {{.*}}.script:4: malformed number: .temp
-# ERR7-NEXT: >>> boom .temp : { *(.temp) } }
-# ERR7-NEXT: >>> ^
-
-## Check tokenize() error
-# RUN: echo "SECTIONS {}" > %t.script
-# RUN: echo "\"" >> %t.script
-# RUN: not ld.lld -shared %t -o %t1 --script %t.script 2>&1 | \
-# RUN: FileCheck -check-prefix=ERR8 -strict-whitespace %s
-# ERR8: {{.*}}.script:2: unclosed quote
-
-## Check tokenize() error in included script file
-# RUN: echo "SECTIONS {}" > %t.script.inc
-# RUN: echo "\"" >> %t.script.inc
-# RUN: echo "INCLUDE \"%t.script.inc\"" > %t.script
-# RUN: not ld.lld -shared %t -o %t1 --script %t.script 2>&1 | \
-# RUN: FileCheck -check-prefix=ERR9 -strict-whitespace %s
-# ERR9: {{.*}}.script.inc:2: unclosed quote
-
-## Check error reporting correctness for included files.
-# RUN: echo "SECTIONS {" > %t.script.inc
-# RUN: echo ".text : { *(.text) }" >> %t.script.inc
-# RUN: echo ".keep : { *(.keep) }" >> %t.script.inc
-# RUN: echo "boom .temp : { *(.temp) } }" >> %t.script.inc
-# RUN: echo "INCLUDE \"%t.script.inc\"" > %t.script
-# RUN: not ld.lld -shared %t -o %t1 --script %t.script 2>&1 | \
-# RUN: FileCheck -check-prefix=ERR10 -strict-whitespace %s
-# ERR10: error: {{.*}}.script.inc:4: malformed number: .temp
-# ERR10-NEXT: >>> boom .temp : { *(.temp) } }
-# ERR10-NEXT: >>> ^
-
-## Check error reporting in script with INCLUDE directive.
-# RUN: echo "SECTIONS {" > %t.script.inc
-# RUN: echo ".text : { *(.text) }" >> %t.script.inc
-# RUN: echo ".keep : { *(.keep) }" >> %t.script.inc
-# RUN: echo ".temp : { *(.temp) } }" >> %t.script.inc
-# RUN: echo "/* One line before INCLUDE */" > %t.script
-# RUN: echo "INCLUDE \"%t.script.inc\"" >> %t.script
-# RUN: echo "/* One line ater INCLUDE */" >> %t.script
-# RUN: echo "Error" >> %t.script
-# RUN: not ld.lld -shared %t -o %t1 --script %t.script 2>&1 | \
-# RUN: FileCheck -check-prefix=ERR11 -strict-whitespace %s
-# ERR11: error: {{.*}}.script:4: unexpected EOF
Modified: lld/trunk/test/ELF/linkerscript/dot-is-not-abs.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/dot-is-not-abs.s?rev=326415&r1=326414&r2=326415&view=diff
==============================================================================
--- lld/trunk/test/ELF/linkerscript/dot-is-not-abs.s (original)
+++ lld/trunk/test/ELF/linkerscript/dot-is-not-abs.s Wed Feb 28 20:21:42 2018
@@ -1,9 +1,7 @@
# REQUIRES: x86
# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
-# RUN: echo "SECTIONS { .text : { *(.text) } \
-# RUN: foo = .; \
-# RUN: .bar : { *(.bar) } }" > %t1.script
+# RUN: echo "SECTIONS { .text : { *(.text) } foo = .; .bar : { *(.bar) } }" > %t1.script
# RUN: ld.lld -o %t1 --script %t1.script %t.o -shared
# RUN: llvm-readobj -t -s -section-data %t1 | FileCheck %s
Modified: lld/trunk/test/ELF/linkerscript/eh-frame-hdr.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/eh-frame-hdr.s?rev=326415&r1=326414&r2=326415&view=diff
==============================================================================
--- lld/trunk/test/ELF/linkerscript/eh-frame-hdr.s (original)
+++ lld/trunk/test/ELF/linkerscript/eh-frame-hdr.s Wed Feb 28 20:21:42 2018
@@ -1,9 +1,6 @@
# REQUIRES: x86
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
-# RUN: echo "SECTIONS { \
-# RUN: .eh_frame_hdr : {} \
-# RUN: .eh_frame : {} \
-# RUN: }" > %t.script
+# RUN: echo "SECTIONS { .eh_frame_hdr : {} .eh_frame : {} }" > %t.script
# RUN: ld.lld -o %t1 --eh-frame-hdr --script %t.script %t
# RUN: llvm-objdump -s -section=".eh_frame_hdr" %t1 | FileCheck %s
Removed: lld/trunk/test/ELF/linkerscript/eh-frame-reloc-out-of-range.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/eh-frame-reloc-out-of-range.s?rev=326414&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/eh-frame-reloc-out-of-range.s (original)
+++ lld/trunk/test/ELF/linkerscript/eh-frame-reloc-out-of-range.s (removed)
@@ -1,27 +0,0 @@
-## Check that error is correctly reported when .eh_frame reloc
-## is out of range
-
-# REQUIRES: x86
-# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o
-# RUN: echo "PHDRS { eh PT_LOAD; text PT_LOAD; } \
-# RUN: SECTIONS { . = 0x10000; \
-# RUN: .eh_frame_hdr : { *(.eh_frame_hdr*) } : eh \
-# RUN: .eh_frame : { *(.eh_frame) } : eh \
-# RUN: . = 0xF00000000; \
-# RUN: .text : { *(.text*) } : text \
-# RUN: }" > %t.script
-# RUN: not ld.lld %t.o -T %t.script -o %t 2>&1 | FileCheck %s
-
-# CHECK: error: {{.*}}:(.eh_frame+0x20): relocation R_X86_64_PC32 out of range: 64424443872 is not in [-2147483648, 2147483647]
-
- .text
- .globl _start
-_start:
- .cfi_startproc
- .cfi_lsda 0, _ex
- nop
- .cfi_endproc
-
- .data
-_ex:
- .word 0
Added: lld/trunk/test/ELF/linkerscript/eh-frame-reloc-out-of-range.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/eh-frame-reloc-out-of-range.test?rev=326415&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/eh-frame-reloc-out-of-range.test (added)
+++ lld/trunk/test/ELF/linkerscript/eh-frame-reloc-out-of-range.test Wed Feb 28 20:21:42 2018
@@ -0,0 +1,13 @@
+# REQUIRES: x86
+# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %p/Inputs/eh-frame-reloc-out-of-range.s -o %t.o
+# RUN: not ld.lld %t.o -T %t.script -o %t 2>&1 | FileCheck %s
+
+PHDRS { eh PT_LOAD; text PT_LOAD; }
+SECTIONS { . = 0x10000;
+ .eh_frame_hdr : { *(.eh_frame_hdr*) } : eh
+ .eh_frame : { *(.eh_frame) } : eh
+ . = 0xF00000000;
+ .text : { *(.text*) } : text
+}
+
+# CHECK: error: {{.*}}:(.eh_frame+0x20): relocation R_X86_64_PC32 out of range: 64424443872 is not in [-2147483648, 2147483647]
Modified: lld/trunk/test/ELF/linkerscript/eh-frame.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/eh-frame.s?rev=326415&r1=326414&r2=326415&view=diff
==============================================================================
--- lld/trunk/test/ELF/linkerscript/eh-frame.s (original)
+++ lld/trunk/test/ELF/linkerscript/eh-frame.s Wed Feb 28 20:21:42 2018
@@ -1,8 +1,6 @@
# REQUIRES: x86
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
-# RUN: echo "SECTIONS { \
-# RUN: .eh_frame : { *(.eh_frame) } \
-# RUN: }" > %t.script
+# RUN: echo "SECTIONS { .eh_frame : { *(.eh_frame) } }" > %t.script
# RUN: ld.lld -o %t1 --script %t.script %t
# RUN: llvm-objdump -s -section=".eh_frame" %t1 | FileCheck %s
Modified: lld/trunk/test/ELF/linkerscript/emit-reloc-section-names.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/emit-reloc-section-names.s?rev=326415&r1=326414&r2=326415&view=diff
==============================================================================
--- lld/trunk/test/ELF/linkerscript/emit-reloc-section-names.s (original)
+++ lld/trunk/test/ELF/linkerscript/emit-reloc-section-names.s Wed Feb 28 20:21:42 2018
@@ -1,7 +1,6 @@
# REQUIRES: x86
# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
-# RUN: echo "SECTIONS { .text.zed : { *(.text.foo) } \
-# RUN: .text.qux : { *(.text.bar) } }" > %t.script
+# RUN: echo "SECTIONS { .text.zed : { *(.text.foo) } .text.qux : { *(.text.bar) } }" > %t.script
# RUN: ld.lld -T %t.script --emit-relocs %t.o -o %t
# RUN: llvm-objdump -section-headers %t | FileCheck %s
Modified: lld/trunk/test/ELF/linkerscript/empty-load.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/empty-load.s?rev=326415&r1=326414&r2=326415&view=diff
==============================================================================
--- lld/trunk/test/ELF/linkerscript/empty-load.s (original)
+++ lld/trunk/test/ELF/linkerscript/empty-load.s Wed Feb 28 20:21:42 2018
@@ -1,6 +1,6 @@
# REQUIRES: x86
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
-# RUN: echo "SECTIONS { .rw : { *(.rw) } .text : { *(.text) } }" > %t.script
+# RUN: echo "SECTIONS { .rw : { *(.rw) } .text : { *(.text) } }" > %t.script
# RUN: ld.lld -o %t1 --script %t.script %t
# RUN: llvm-objdump -private-headers %t1 | FileCheck %s
Modified: lld/trunk/test/ELF/linkerscript/empty-tls.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/empty-tls.s?rev=326415&r1=326414&r2=326415&view=diff
==============================================================================
--- lld/trunk/test/ELF/linkerscript/empty-tls.s (original)
+++ lld/trunk/test/ELF/linkerscript/empty-tls.s Wed Feb 28 20:21:42 2018
@@ -1,14 +1,14 @@
-// REQUIRES: x86
-// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
-// RUN: echo "PHDRS { ph_tls PT_TLS; }" > %t.script
-// RUN: ld.lld -o %t.so -T %t.script %t.o -shared
-// RUN: llvm-readobj -l %t.so | FileCheck %s
+# REQUIRES: x86
+# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
+# RUN: echo "PHDRS { ph_tls PT_TLS; }" > %t.script
+# RUN: ld.lld -o %t.so -T %t.script %t.o -shared
+# RUN: llvm-readobj -l %t.so | FileCheck %s
-// test that we don't crash with an empty PT_TLS
+# test that we don't crash with an empty PT_TLS
-// CHECK: Type: PT_TLS
-// CHECK-NEXT: Offset: 0x0
-// CHECK-NEXT: VirtualAddress: 0x0
-// CHECK-NEXT: PhysicalAddress: 0x0
-// CHECK-NEXT: FileSize: 0
-// CHECK-NEXT: MemSize: 0
+# CHECK: Type: PT_TLS
+# CHECK-NEXT: Offset: 0x0
+# CHECK-NEXT: VirtualAddress: 0x0
+# CHECK-NEXT: PhysicalAddress: 0x0
+# CHECK-NEXT: FileSize: 0
+# CHECK-NEXT: MemSize: 0
Removed: lld/trunk/test/ELF/linkerscript/expr-sections.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/expr-sections.s?rev=326414&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/expr-sections.s (original)
+++ lld/trunk/test/ELF/linkerscript/expr-sections.s (removed)
@@ -1,22 +0,0 @@
-# REQUIRES: x86
-# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o
-# RUN: echo "SECTIONS { \
-# RUN: . = . + 4; \
-# RUN: .text : { \
-# RUN: *(.text) \
-# RUN: foo1 = ADDR(.text) + 1; bar1 = 1 + ADDR(.text); \
-# RUN: foo2 = ADDR(.text) & 1; bar2 = 1 & ADDR(.text); \
-# RUN: foo3 = ADDR(.text) | 1; bar3 = 1 | ADDR(.text); \
-# RUN: } \
-# RUN: };" > %t.script
-# RUN: ld.lld -o %t.so --script %t.script %t.o -shared
-# RUN: llvm-objdump -t -h %t.so | FileCheck %s
-
-# CHECK: 1 .text 00000000 0000000000000004 TEXT DATA
-
-# CHECK: 0000000000000005 .text 00000000 foo1
-# CHECK: 0000000000000005 .text 00000000 bar1
-# CHECK: 0000000000000000 .text 00000000 foo2
-# CHECK: 0000000000000000 .text 00000000 bar2
-# CHECK: 0000000000000005 .text 00000000 foo3
-# CHECK: 0000000000000005 .text 00000000 bar3
Added: lld/trunk/test/ELF/linkerscript/expr-sections.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/expr-sections.test?rev=326415&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/expr-sections.test (added)
+++ lld/trunk/test/ELF/linkerscript/expr-sections.test Wed Feb 28 20:21:42 2018
@@ -0,0 +1,23 @@
+# REQUIRES: x86
+# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux /dev/null -o %t.o
+# RUN: ld.lld -o %t.so --script %s %t.o -shared
+# RUN: llvm-objdump -t -h %t.so | FileCheck %s
+
+SECTIONS {
+ . = . + 4;
+ .text : {
+ *(.text)
+ foo1 = ADDR(.text) + 1; bar1 = 1 + ADDR(.text);
+ foo2 = ADDR(.text) & 1; bar2 = 1 & ADDR(.text);
+ foo3 = ADDR(.text) | 1; bar3 = 1 | ADDR(.text);
+ }
+};
+
+# CHECK: 1 .text 00000000 0000000000000004 TEXT DATA
+
+# CHECK: 0000000000000005 .text 00000000 foo1
+# CHECK: 0000000000000005 .text 00000000 bar1
+# CHECK: 0000000000000000 .text 00000000 foo2
+# CHECK: 0000000000000000 .text 00000000 bar2
+# CHECK: 0000000000000005 .text 00000000 foo3
+# CHECK: 0000000000000005 .text 00000000 bar3
Removed: lld/trunk/test/ELF/linkerscript/extend-pt-load.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/extend-pt-load.s?rev=326414&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/extend-pt-load.s (original)
+++ lld/trunk/test/ELF/linkerscript/extend-pt-load.s (removed)
@@ -1,68 +0,0 @@
-# REQUIRES: x86
-# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o
-
-# This test demonstrates an odd consequence of the way we handle sections with just symbol
-# assignments.
-
-# First, run a test with no such section.
-
-# RUN: echo "SECTIONS { \
-# RUN: . = SIZEOF_HEADERS; \
-# RUN: .dynsym : { } \
-# RUN: .hash : { } \
-# RUN: .dynstr : { } \
-# RUN: .text : { *(.text) } \
-# RUN: . = ALIGN(0x1000); \
-# RUN: .data.rel.ro : { *(.data.rel.ro) } \
-# RUN: }" > %t.script
-# RUN: ld.lld --hash-style=sysv -o %t1 --script %t.script %t.o -shared
-# RUN: llvm-readobj --elf-output-style=GNU -l -s %t1 | FileCheck --check-prefix=CHECK1 %s
-
-# CHECK1: .text PROGBITS 00000000000001bc 0001bc 000001 00 AX
-# CHECK1-NEXT: .data.rel.ro PROGBITS 0000000000001000 001000 000001 00 WA
-
-# CHECK1: LOAD 0x000000 0x0000000000000000 0x0000000000000000 0x0001bd 0x0001bd R E
-# CHECK1-NEXT: LOAD 0x001000 0x0000000000001000 0x0000000000001000 0x000068 0x000068 RW
-
-# Then add the section bar. Note how bar is given AX flags, which causes the PT_LOAD to now
-# cover the padding bits created by ALIGN.
-
-# RUN: echo "SECTIONS { \
-# RUN: . = SIZEOF_HEADERS; \
-# RUN: .dynsym : { } \
-# RUN: .hash : { } \
-# RUN: .dynstr : { } \
-# RUN: .text : { *(.text) } \
-# RUN: bar : { . = ALIGN(0x1000); } \
-# RUN: .data.rel.ro : { *(.data.rel.ro) } \
-# RUN: }" > %t.script
-# RUN: ld.lld --hash-style=sysv -o %t2 --script %t.script %t.o -shared
-# RUN: llvm-readobj --elf-output-style=GNU -l -s %t2 | FileCheck --check-prefix=CHECK2 %s
-
-# CHECK2: .text PROGBITS 00000000000001bc 0001bc 000001 00 AX
-# CHECK2-NEXT: bar NOBITS 00000000000001bd 0001bd 000e43 00 AX
-# CHECK2-NEXT: .data.rel.ro PROGBITS 0000000000001000 001000 000001 00 WA
-
-# CHECK2: LOAD 0x000000 0x0000000000000000 0x0000000000000000 0x0001bd 0x001000 R E
-# CHECK2-NEXT: LOAD 0x001000 0x0000000000001000 0x0000000000001000 0x000068 0x000068 RW
-
-# If the current behavior becomes a problem we should consider just moving the commands out
-# of the section. That is, handle the above like the following test.
-
-# RUN: echo "SECTIONS { \
-# RUN: . = SIZEOF_HEADERS; \
-# RUN: .dynsym : { } \
-# RUN: .hash : { } \
-# RUN: .dynstr : { } \
-# RUN: .text : { *(.text) } \
-# RUN: . = ALIGN(0x1000); \
-# RUN: HIDDEN(bar_sym = .); \
-# RUN: .data.rel.ro : { *(.data.rel.ro) } \
-# RUN: }" > %t.script
-# RUN: ld.lld --hash-style=sysv -o %t3 --script %t.script %t.o -shared
-# RUN: llvm-readobj --elf-output-style=GNU -l -s %t3 | FileCheck --check-prefix=CHECK1 %s
-
-nop
-
-.section .data.rel.ro, "aw"
-.byte 0
Added: lld/trunk/test/ELF/linkerscript/extend-pt-load1.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/extend-pt-load1.test?rev=326415&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/extend-pt-load1.test (added)
+++ lld/trunk/test/ELF/linkerscript/extend-pt-load1.test Wed Feb 28 20:21:42 2018
@@ -0,0 +1,23 @@
+# REQUIRES: x86
+# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %p/Inputs/extend-pt-load.s -o %t.o
+# RUN: ld.lld --hash-style=sysv -o %t1 --script %s %t.o -shared
+# RUN: llvm-readobj --elf-output-style=GNU -l -s %t1 | FileCheck %s
+
+# This test demonstrates an odd consequence of the way we handle sections with just symbol
+# assignments.
+
+SECTIONS {
+ . = SIZEOF_HEADERS;
+ .dynsym : {}
+ .hash : {}
+ .dynstr : {}
+ .text : { *(.text) }
+ . = ALIGN(0x1000);
+ .data.rel.ro : { *(.data.rel.ro) }
+}
+
+# CHECK: .text PROGBITS 00000000000001bc 0001bc 000001 00 AX
+# CHECK-NEXT: .data.rel.ro PROGBITS 0000000000001000 001000 000001 00 WA
+
+# CHECK: LOAD 0x000000 0x0000000000000000 0x0000000000000000 0x0001bd 0x0001bd R E
+# CHECK-NEXT: LOAD 0x001000 0x0000000000001000 0x0000000000001000 0x000068 0x000068 RW
Added: lld/trunk/test/ELF/linkerscript/extend-pt-load2.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/extend-pt-load2.test?rev=326415&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/extend-pt-load2.test (added)
+++ lld/trunk/test/ELF/linkerscript/extend-pt-load2.test Wed Feb 28 20:21:42 2018
@@ -0,0 +1,24 @@
+# REQUIRES: x86
+# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %p/Inputs/extend-pt-load.s -o %t.o
+# RUN: ld.lld --hash-style=sysv -o %t2 --script %s %t.o -shared
+# RUN: llvm-readobj --elf-output-style=GNU -l -s %t2 | FileCheck %s
+
+# Then add the section bar. Note how bar is given AX flags, which causes the PT_LOAD to now
+# cover the padding bits created by ALIGN.
+
+SECTIONS {
+ . = SIZEOF_HEADERS;
+ .dynsym : {}
+ .hash : {}
+ .dynstr : {}
+ .text : { *(.text) }
+ bar : { . = ALIGN(0x1000); }
+ .data.rel.ro : { *(.data.rel.ro) }
+}
+
+# CHECK: .text PROGBITS 00000000000001bc 0001bc 000001 00 AX
+# CHECK-NEXT: bar NOBITS 00000000000001bd 0001bd 000e43 00 AX
+# CHECK-NEXT: .data.rel.ro PROGBITS 0000000000001000 001000 000001 00 WA
+
+# CHECK: LOAD 0x000000 0x0000000000000000 0x0000000000000000 0x0001bd 0x001000 R E
+# CHECK-NEXT: LOAD 0x001000 0x0000000000001000 0x0000000000001000 0x000068 0x000068 RW
Added: lld/trunk/test/ELF/linkerscript/extend-pt-load3.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/extend-pt-load3.test?rev=326415&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/extend-pt-load3.test (added)
+++ lld/trunk/test/ELF/linkerscript/extend-pt-load3.test Wed Feb 28 20:21:42 2018
@@ -0,0 +1,24 @@
+# REQUIRES: x86
+# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %p/Inputs/extend-pt-load.s -o %t.o
+# RUN: ld.lld --hash-style=sysv -o %t3 --script %s %t.o -shared
+# RUN: llvm-readobj --elf-output-style=GNU -l -s %t3 | FileCheck --check-prefix=CHECK %s
+
+# If the current behavior becomes a problem we should consider just moving the commands out
+# of the section. That is, handle the above like the following test.
+
+SECTIONS {
+ . = SIZEOF_HEADERS;
+ .dynsym : {}
+ .hash : {}
+ .dynstr : {}
+ .text : { *(.text) }
+ . = ALIGN(0x1000);
+ HIDDEN(bar_sym = .);
+ .data.rel.ro : { *(.data.rel.ro) }
+}
+
+# CHECK: .text PROGBITS 00000000000001bc 0001bc 000001 00 AX
+# CHECK-NEXT: .data.rel.ro PROGBITS 0000000000001000 001000 000001 00 WA
+
+# CHECK: LOAD 0x000000 0x0000000000000000 0x0000000000000000 0x0001bd 0x0001bd R E
+# CHECK-NEXT: LOAD 0x001000 0x0000000000001000 0x0000000000001000 0x000068 0x000068 RW
\ No newline at end of file
Modified: lld/trunk/test/ELF/linkerscript/filename-spec.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/filename-spec.s?rev=326415&r1=326414&r2=326415&view=diff
==============================================================================
--- lld/trunk/test/ELF/linkerscript/filename-spec.s (original)
+++ lld/trunk/test/ELF/linkerscript/filename-spec.s Wed Feb 28 20:21:42 2018
@@ -1,55 +1,43 @@
# REQUIRES: x86
-# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %tfirst.o
+# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %tx.o
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux \
-# RUN: %p/Inputs/filename-spec.s -o %tsecond.o
+# RUN: %p/Inputs/filename-spec.s -o %ty.o
-# RUN: echo "SECTIONS { .foo : { \
-# RUN: KEEP(*first.o(.foo)) \
-# RUN: KEEP(*second.o(.foo)) } }" > %t1.script
-# RUN: ld.lld -o %t1 --script %t1.script %tfirst.o %tsecond.o
-# RUN: llvm-objdump -s %t1 | FileCheck --check-prefix=FIRSTSECOND %s
-# FIRSTSECOND: Contents of section .foo:
-# FIRSTSECOND-NEXT: 01000000 00000000 11000000 00000000
-
-# RUN: echo "SECTIONS { .foo : { \
-# RUN: KEEP(*second.o(.foo)) \
-# RUN: KEEP(*first.o(.foo)) } }" > %t2.script
-# RUN: ld.lld -o %t2 --script %t2.script %tfirst.o %tsecond.o
+# RUN: echo "SECTIONS{.foo :{ KEEP(*x.o(.foo)) KEEP(*y.o(.foo)) }}" > %t1.script
+# RUN: ld.lld -o %t1 --script %t1.script %tx.o %ty.o
+# RUN: llvm-objdump -s %t1 | FileCheck --check-prefix=FIRSTY %s
+# FIRSTY: Contents of section .foo:
+# FIRSTY-NEXT: 01000000 00000000 11000000 00000000
+
+# RUN: echo "SECTIONS{.foo :{ KEEP(*y.o(.foo)) KEEP(*x.o(.foo)) }}" > %t2.script
+# RUN: ld.lld -o %t2 --script %t2.script %tx.o %ty.o
# RUN: llvm-objdump -s %t2 | FileCheck --check-prefix=SECONDFIRST %s
# SECONDFIRST: Contents of section .foo:
# SECONDFIRST-NEXT: 11000000 00000000 01000000 00000000
## Now the same tests but without KEEP. Checking that file name inside
## KEEP is parsed fine.
-# RUN: echo "SECTIONS { .foo : { \
-# RUN: *first.o(.foo) \
-# RUN: *second.o(.foo) } }" > %t3.script
-# RUN: ld.lld -o %t3 --script %t3.script %tfirst.o %tsecond.o
-# RUN: llvm-objdump -s %t3 | FileCheck --check-prefix=FIRSTSECOND %s
-
-# RUN: echo "SECTIONS { .foo : { \
-# RUN: *second.o(.foo) \
-# RUN: *first.o(.foo) } }" > %t4.script
-# RUN: ld.lld -o %t4 --script %t4.script %tfirst.o %tsecond.o
+# RUN: echo "SECTIONS{.foo :{ *x.o(.foo) *y.o(.foo) }}" > %t3.script
+# RUN: ld.lld -o %t3 --script %t3.script %tx.o %ty.o
+# RUN: llvm-objdump -s %t3 | FileCheck --check-prefix=FIRSTY %s
+
+# RUN: echo "SECTIONS{.foo :{ *y.o(.foo) *x.o(.foo) }}" > %t4.script
+# RUN: ld.lld -o %t4 --script %t4.script %tx.o %ty.o
# RUN: llvm-objdump -s %t4 | FileCheck --check-prefix=SECONDFIRST %s
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %T/filename-spec1.o
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux \
# RUN: %p/Inputs/filename-spec.s -o %T/filename-spec2.o
-# RUN: echo "SECTIONS { .foo : { \
-# RUN: %T/filename-spec2.o(.foo) \
-# RUN: %T/filename-spec1.o(.foo) } }" > %t5.script
+# RUN: echo "SECTIONS{.foo :{ %T/filename-spec2.o(.foo) %T/filename-spec1.o(.foo) }}" > %t5.script
# RUN: ld.lld -o %t5 --script %t5.script \
# RUN: %T/filename-spec1.o %T/filename-spec2.o
# RUN: llvm-objdump -s %t5 | FileCheck --check-prefix=SECONDFIRST %s
-# RUN: echo "SECTIONS { .foo : { \
-# RUN: %T/filename-spec1.o(.foo) \
-# RUN: %T/filename-spec2.o(.foo) } }" > %t6.script
+# RUN: echo "SECTIONS{.foo :{ %T/filename-spec1.o(.foo) %T/filename-spec2.o(.foo) }}" > %t6.script
# RUN: ld.lld -o %t6 --script %t6.script \
# RUN: %T/filename-spec1.o %T/filename-spec2.o
-# RUN: llvm-objdump -s %t6 | FileCheck --check-prefix=FIRSTSECOND %s
+# RUN: llvm-objdump -s %t6 | FileCheck --check-prefix=FIRSTY %s
# RUN: mkdir -p %t.testdir1 %t.testdir2
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.testdir1/filename-spec1.o
@@ -59,33 +47,25 @@
# RUN: llvm-ar rsc %t.testdir2/lib2.a %t.testdir2/filename-spec2.o
# Verify matching of archive library names.
-# RUN: echo "SECTIONS { .foo : { \
-# RUN: *lib2*(.foo) \
-# RUN: *lib1*(.foo) } }" > %t7.script
+# RUN: echo "SECTIONS{.foo :{ *lib2*(.foo) *lib1*(.foo) }}" > %t7.script
# RUN: ld.lld -o %t7 --script %t7.script --whole-archive \
# RUN: %t.testdir1/lib1.a %t.testdir2/lib2.a
# RUN: llvm-objdump -s %t7 | FileCheck --check-prefix=SECONDFIRST %s
# Verify matching directories.
-# RUN: echo "SECTIONS { .foo : { \
-# RUN: *testdir2*(.foo) \
-# RUN: *testdir1*(.foo) } }" > %t8.script
+# RUN: echo "SECTIONS{.foo :{ *testdir2*(.foo) *testdir1*(.foo) }}" > %t8.script
# RUN: ld.lld -o %t8 --script %t8.script --whole-archive \
# RUN: %t.testdir1/lib1.a %t.testdir2/lib2.a
# RUN: llvm-objdump -s %t8 | FileCheck --check-prefix=SECONDFIRST %s
# Verify matching of archive library names in KEEP.
-# RUN: echo "SECTIONS { .foo : { \
-# RUN: KEEP(*lib2*(.foo)) \
-# RUN: KEEP(*lib1*(.foo)) } }" > %t9.script
+# RUN: echo "SECTIONS{.foo :{ KEEP(*lib2*(.foo)) KEEP(*lib1*(.foo)) }}" > %t9.script
# RUN: ld.lld -o %t9 --script %t9.script --whole-archive \
# RUN: %t.testdir1/lib1.a %t.testdir2/lib2.a
# RUN: llvm-objdump -s %t9 | FileCheck --check-prefix=SECONDFIRST %s
# Verify matching directories in KEEP.
-# RUN: echo "SECTIONS { .foo : { \
-# RUN: KEEP(*testdir2*(.foo)) \
-# RUN: KEEP(*testdir1*(.foo)) } }" > %t10.script
+# RUN: echo "SECTIONS{.foo :{ KEEP(*testdir2*(.foo)) KEEP(*testdir1*(.foo)) }}" > %t10.script
# RUN: ld.lld -o %t10 --script %t10.script --whole-archive \
# RUN: %t.testdir1/lib1.a %t.testdir2/lib2.a
# RUN: llvm-objdump -s %t10 | FileCheck --check-prefix=SECONDFIRST %s
Removed: lld/trunk/test/ELF/linkerscript/fill.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/fill.s?rev=326414&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/fill.s (original)
+++ lld/trunk/test/ELF/linkerscript/fill.s (removed)
@@ -1,31 +0,0 @@
-# REQUIRES: x86
-# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o
-# RUN: echo "SECTIONS { \
-# RUN: .out : { \
-# RUN: FILL(0x11111111) \
-# RUN: . += 2; \
-# RUN: *(.aaa) \
-# RUN: . += 4; \
-# RUN: *(.bbb) \
-# RUN: . += 4; \
-# RUN: FILL(0x22222222); \
-# RUN: . += 4; \
-# RUN: } \
-# RUN: }; " > %t.script
-# RUN: ld.lld -o %t --script %t.script %t.o
-# RUN: llvm-objdump -s %t | FileCheck %s
-
-# CHECK: Contents of section .out:
-# CHECK-NEXT: 2222aa22 222222bb 22222222 22222222
-
-.text
-.globl _start
-_start:
-
-.section .aaa, "a"
-.align 1
-.byte 0xAA
-
-.section .bbb, "a"
-.align 1
-.byte 0xBB
Added: lld/trunk/test/ELF/linkerscript/fill.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/fill.test?rev=326415&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/fill.test (added)
+++ lld/trunk/test/ELF/linkerscript/fill.test Wed Feb 28 20:21:42 2018
@@ -0,0 +1,20 @@
+# REQUIRES: x86
+# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %p/Inputs/fill.s -o %t.o
+# RUN: ld.lld -o %t --script %s %t.o
+# RUN: llvm-objdump -s %t | FileCheck %s
+
+SECTIONS {
+ .out : {
+ FILL(0x11111111)
+ . += 2;
+ *(.aaa)
+ . += 4;
+ *(.bbb)
+ . += 4;
+ FILL(0x22222222);
+ . += 4;
+ }
+}
+
+# CHECK: Contents of section .out:
+# CHECK-NEXT: 2222aa22 222222bb 22222222 22222222
More information about the llvm-commits
mailing list