* ld-elf/merge.d: xfail crisv32-*-*.

* ld-cris/dsov32-1.s, ld-cris/dsov32-2.s, ld-cris/dsov32-3.s,
	ld-cris/dsov32-4.s, ld-cris/libdso-10.d, ld-cris/libdso-11.d,
	ld-cris/libdso-12.d, ld-cris/libdso-13.d, ld-cris/libdso-14.d,
	ld-cris/move-1.s, ld-cris/pv32-1.d, ld-cris/pv32.s,
	ld-cris/start1.s, ld-cris/v10-v32.d, ld-cris/v10-va.d,
	ld-cris/v32-ba-1.d, ld-cris/v32-ba-1.s, ld-cris/v32-bin-1.d,
	ld-cris/v32-bin-1.s, ld-cris/v32-v10.d, ld-cris/v32-va.d,
	ld-cris/va-v10.d, ld-cris/va-v32.d: New tests.
	* ld-cris/ldsym1.d: Adjust for change in linker script.
This commit is contained in:
Hans-Peter Nilsson 2004-11-04 15:04:05 +00:00
parent 05e6b3155d
commit 1f02b94b93
26 changed files with 403 additions and 5 deletions

View File

@ -1,3 +1,16 @@
2004-11-04 Hans-Peter Nilsson <hp@bitrange.com>
* ld-elf/merge.d: xfail crisv32-*-*.
* ld-cris/dsov32-1.s, ld-cris/dsov32-2.s, ld-cris/dsov32-3.s,
ld-cris/dsov32-4.s, ld-cris/libdso-10.d, ld-cris/libdso-11.d,
ld-cris/libdso-12.d, ld-cris/libdso-13.d, ld-cris/libdso-14.d,
ld-cris/move-1.s, ld-cris/pv32-1.d, ld-cris/pv32.s,
ld-cris/start1.s, ld-cris/v10-v32.d, ld-cris/v10-va.d,
ld-cris/v32-ba-1.d, ld-cris/v32-ba-1.s, ld-cris/v32-bin-1.d,
ld-cris/v32-bin-1.s, ld-cris/v32-v10.d, ld-cris/v32-va.d,
ld-cris/va-v10.d, ld-cris/va-v32.d: New tests.
* ld-cris/ldsym1.d: Adjust for change in linker script.
2004-11-02 Hans-Peter Nilsson <hp@axis.com>
* ld-cris/expdyn1.d, ld-cris/expdyn5.d, ld-cris/expdyn6.d,

View File

@ -0,0 +1,8 @@
.text
.global dsofn3
.type dsofn3,@function
dsofn3:
bsr dsofn:PLT
nop
.Lfe1:
.size dsofn3,.Lfe1-dsofn3

View File

@ -0,0 +1,10 @@
.text
.global dsofn4
.type dsofn4,@function
dsofn4:
lapc _GLOBAL_OFFSET_TABLE_,$r0
addo.w expobj:GOT16,$r0,$acr
bsr dsofn4:PLT
nop
.Lfe1:
.size dsofn4,.Lfe1-dsofn4

View File

@ -0,0 +1,8 @@
.text
.global dsofn5
.type dsofn5,@function
dsofn5:
bsr dsofn
nop
.Lfe1:
.size dsofn5,.Lfe1-dsofn5

View File

@ -0,0 +1,14 @@
.text
.global dsofn5
.type dsofn5,@function
dsofn5:
bsr localfn
nop
.Lfe:
.size dsofn5,.Lfe-dsofn5
.type localfn,@function
localfn:
nop
.Lfe1:
.size localfn,.Lfe1-localfn

View File

@ -13,8 +13,8 @@
Disassembly of section \.text:
0+6 <__start>:
6: 0f05 nop
0+ <__start>:
0: 0f05 nop
0+8 <expfn>:
8: 0f05 nop
0+2 <expfn>:
2: 0f05 nop

View File

@ -0,0 +1,41 @@
#source: dso-1.s
#as: --pic --no-underscore --march=v32
#ld: --shared -m crislinux
#objdump: -p -h
# Sanity check; just an empty GOT.
.*: file format elf32-cris
Program Header:
LOAD off 0x0+ vaddr 0x0+ paddr 0x0+ align 2\*\*13
filesz 0x0+188 memsz 0x0+188 flags r-x
LOAD off 0x0+1a0 vaddr 0x0+21a0 paddr 0x0+21a0 align 2\*\*13
filesz 0x0+64 memsz 0x0+80 flags rw-
DYNAMIC off 0x0+1a0 vaddr 0x0+21a0 paddr 0x0+21a0 align 2\*\*2
filesz 0x0+58 memsz 0x0+58 flags rw-
Dynamic Section:
HASH 0x94
STRTAB 0x15c
SYMTAB 0xcc
STRSZ 0x28
SYMENT 0x10
private flags = 2: \[v32\]
Sections:
Idx Name Size VMA LMA File off Algn
0 \.hash 0+38 0+94 0+94 0+94 2\*\*2
CONTENTS, ALLOC, LOAD, READONLY, DATA
1 \.dynsym 0+90 0+cc 0+cc 0+cc 2\*\*2
CONTENTS, ALLOC, LOAD, READONLY, DATA
2 \.dynstr 0+28 0+15c 0+15c 0+15c 2\*\*0
CONTENTS, ALLOC, LOAD, READONLY, DATA
3 \.text 0+4 0+184 0+184 0+184 2\*\*0
CONTENTS, ALLOC, LOAD, READONLY, CODE
4 \.dynamic 0+58 0+21a0 0+21a0 0+1a0 2\*\*2
CONTENTS, ALLOC, LOAD, DATA
5 \.got 0+c 0+21f8 0+21f8 0+1f8 2\*\*2
CONTENTS, ALLOC, LOAD, DATA
6 \.data 0+ 0+2204 0+2204 0+204 2\*\*0
CONTENTS, ALLOC, LOAD, DATA
7 \.bss 0+1c 0+2204 0+2204 0+204 2\*\*0
ALLOC

View File

@ -0,0 +1,27 @@
#source: dso-1.s
#source: dsov32-1.s
#as: --pic --no-underscore --march=v32
#ld: --shared -m crislinux
#objdump: -s -T
.*: file format elf32-cris
DYNAMIC SYMBOL TABLE:
#...
0+1e4 g DF \.text 0+8 dsofn3
#...
0+1e0 g DF \.text 0+ dsofn
#...
Contents of section \.rela\.plt:
01a0 84220000 0b090000 00000000 .*
Contents of section \.plt:
01ac 84e20401 7e7a3f7a 04f26ffa bf09b005 .*
01bc 00000000 00000000 00006f0d 0c000000 .*
01cc 6ffabf09 b0053f7e 00000000 bf0ed4ff .*
01dc ffffb005 .*
Contents of section \.text:
01e0 b0050000 bfbee2ff ffffb005 .*
Contents of section \.dynamic:
#...
Contents of section \.got:
2278 00220000 00000000 00000000 d2010000 .*

View File

@ -0,0 +1,51 @@
#source: expdyn1.s
#source: dsov32-1.s
#source: dsov32-2.s
#as: --pic --no-underscore --march=v32
#ld: --shared -m crislinux -z nocombreloc
#objdump: -s -T
# Check for common DSO contents; load of GOT register, branch to
# function PLT, undefined symbol, GOT reloc.
.*: file format elf32-cris
DYNAMIC SYMBOL TABLE:
#...
0+282 g DF \.text 0+12 dsofn4
0+278 g DF \.text 0+2 expfn
0+2348 g DO \.data 0+ expobj
#...
0+27a g DF \.text 0+8 dsofn3
#...
0+ D \*UND\* 0+ dsofn
#...
Contents of section \.rela\.got:
0204 44230000 0a070000 00000000 .*
Contents of section \.rela\.plt:
0210 3c230000 0b050000 00000000 40230000 .*
0220 0b0d0000 00000000 .*
Contents of section \.plt:
0228 84e20401 7e7a3f7a 04f26ffa bf09b005 .*
0238 00000000 00000000 00006f0d 0c000000 .*
0248 6ffabf09 b0053f7e 00000000 bf0ed4ff .*
0258 ffffb005 6f0d1000 00006ffa bf09b005 .*
0268 3f7e0c00 0000bf0e baffffff b005 .*
Contents of section \.text:
0276 b005b005 bfbee2ff ffffb005 7f0dae20 .*
0286 00005f0d 1400bfbe b6ffffff b0050000 .*
Contents of section \.dynamic:
22a0 04000000 94000000 05000000 c0010000 .*
22b0 06000000 e0000000 0a000000 43000000 .*
22c0 0b000000 10000000 03000000 30230000 .*
22d0 02000000 18000000 14000000 07000000 .*
22e0 17000000 10020000 07000000 04020000 .*
22f0 08000000 0c000000 09000000 0c000000 .*
2300 00000000 00000000 00000000 00000000 .*
2310 00000000 00000000 00000000 00000000 .*
2320 00000000 00000000 00000000 00000000 .*
Contents of section \.got:
2330 a0220000 00000000 00000000 4e020000 .*
2340 68020000 00000000 .*
Contents of section \.data:
2348 00000000 .*

View File

@ -0,0 +1,28 @@
#source: dso-1.s
#source: dsov32-3.s
#as: --pic --no-underscore --march=v32
#ld: --shared -m crislinux
#readelf: -d -r
#error: relocation R_CRIS_32_PCREL should not be used in a shared object; recompile with -fPIC
# FIXME: Have a textrel-enabling linker option. Split out the
# expected readelf output into a separate test using that option.
# Check that a TEXTREL reloc is correctly generated for PCREL
# relocations.
Dynamic segment at offset 0x240 contains 10 entries:
Tag[ ]+Type[ ]+Name/Value
0x0+4 \(HASH\)[ ]+0x94
0x0+5 \(STRTAB\)[ ]+0x1e8
0x0+6 \(SYMTAB\)[ ]+0xe8
0x0+a \(STRSZ\)[ ]+47 \(bytes\)
0x0+b \(SYMENT\)[ ]+16 \(bytes\)
0x0+7 \(RELA\)[ ]+0x218
0x0+8 \(RELASZ\)[ ]+12 \(bytes\)
0x0+9 \(RELAENT\)[ ]+12 \(bytes\)
0x0+16 \(TEXTREL\)[ ]+0x0
0x0+ \(NULL\)[ ]+0x0
Relocation section '\.rela\.text' at offset 0x218 contains 1 entries:
Offset[ ]+Info[ ]+Type[ ]+Sym\.Value Sym\. Name \+ Addend
0+22a 0+f06 R_CRIS_32_PCREL[ ]+0+224[ ]+dsofn \+ 6

View File

@ -0,0 +1,19 @@
#source: dso-1.s
#source: dsov32-4.s
#as: --pic --no-underscore --march=v32
#ld: --shared -m crislinux
#readelf: -d -r
# Checking that a bsr to a non-PLT-decorated nonvisible function
# doesn't make the DSO textrel.
Dynamic section at offset 0x1c0 contains 6 entries:
Tag[ ]+Type[ ]+Name/Value
0x0+4 \(HASH\)[ ]+0x94
0x0+5 \(STRTAB\)[ ]+0x170
0x0+6 \(SYMTAB\)[ ]+0xd0
0x0+a \(STRSZ\)[ ]+47 \(bytes\)
0x0+b \(SYMENT\)[ ]+16 \(bytes\)
0x0+ \(NULL\)[ ]+0x0
There are no relocations in this file.

View File

@ -0,0 +1,3 @@
.text
localsym:
moveq 1,$r10

View File

@ -0,0 +1,41 @@
#source: pv32.s
#as: --march=v32 --no-underscore
#ld: -e here -m crislinux tmpdir/libdso-12.so
#objdump: -s -T
# Trivial test of linking a program to a v32 DSO.
.*: file format elf32-cris
DYNAMIC SYMBOL TABLE:
0+822a0 g DO \*ABS\* 0+ _DYNAMIC
0+8023a DF \*UND\* 0+2 expfn
0+82354 g DO \.bss 0+ expobj
0+82354 g D \*ABS\* 0+ __bss_start
0+80254 DF \*UND\* 0+8 dsofn3
0+82354 g D \*ABS\* 0+ _edata
0+82360 g D \*ABS\* 0+ _end
0+80280 g DF \.text 0+8 dsofn
Contents of section \.interp:
800d4 2f6c6962 2f6c642e 736f2e31 00 .*
#...
Contents of section \.rela\.dyn:
801fc 54230800 09030000 00000000 .*
Contents of section \.rela\.plt:
80208 4c230800 0b020000 00000000 50230800 .*
80218 0b050000 00000000 .*
Contents of section \.plt:
80220 84e26ffe 44230800 7e7a3f7a 04f26ffa .*
80230 bf09b005 00000000 00006ffe 4c230800 .*
80240 6ffabf09 b0053f7e 00000000 bf0ed4ff .*
80250 ffffb005 6ffe5023 08006ffa bf09b005 .*
80260 3f7e0c00 0000bf0e baffffff b005 .*
Contents of section \.text:
8026e b005bfbe caffffff b005bfbe dcffffff .*
8027e b0056fae 54230800 b0050000 .*
Contents of section \.dynamic:
#...
Contents of section \.got:
82340 a0220800 00000000 00000000 46020800 .*
82350 60020800 .*

View File

@ -0,0 +1,24 @@
.global here
.type here,@function
here:
nop
.Lfe3:
.size here,.Lfe3-dsofn
.type pfn,@function
pfn:
bsr expfn
nop
bsr dsofn3
nop
.Lfe1:
.size pfn,.Lfe1-pfn
.global dsofn
.type dsofn,@function
dsofn:
move.d expobj,$r10
nop
.Lfe2:
.size dsofn,.Lfe2-dsofn

View File

@ -0,0 +1,5 @@
.global _start
_start:
; This must be compilable with --march=common_v10_v32.
moveq 1,r11

View File

@ -0,0 +1,8 @@
# source: start1.s --march=v32
# source: move-1.s --march=v0_v10
# ld:
# error: contains non-CRIS-v32 code
# Test that linking a (classic) v10 object to a v32 object does
# not work.

View File

@ -0,0 +1,11 @@
# source: start1.s --march=common_v10_v32
# source: move-1.s --march=v0_v10
# ld:
# objdump: -p
# Test that linking a v10 compatible object to a v10+v32 object
# does work and results in the output marked as a v10 object.
#...
private flags = 1: \[symbols have a _ prefix\]
#pass

View File

@ -0,0 +1,18 @@
# as: --march=v32
# ld:
# objdump: -d
# Check that 32-bit branches (PCREL:s) are relocated right.
.*: file format elf32-us-cris
Disassembly of section \.text:
0+ <a>:
0: bf0e 0800 0000 ba 8 <b>
6: 5e82 moveq 30,r8
0+8 <b>:
8: 4312 moveq 3,r1
a: bf0e f6ff ffff ba 0 <(a|___init__start)>
10: 4db2 moveq 13,r11

View File

@ -0,0 +1,11 @@
.global a
a:
ba b
moveq 30,r8
.section .text.2,"ax"
.global b
b:
moveq 3,r1
ba a
moveq 13,r11

View File

@ -0,0 +1,11 @@
#as: --em=criself --march=v32
#ld: --oformat binary --defsym ext1=0x4000 --defsym ext2=0x6000
#objdump: -s -b binary
# Test that pcrel relocs work with --oformat binary.
.*: file format binary
Contents of section \.data:
0000 7f5d0020 0000bfbe fa7f0000 b0057f3d .*
0010 f23f0000 bfbeec5f 0000b005 .*

View File

@ -0,0 +1,7 @@
x:
lapc 0x2000,r5
bsr 0x8000
nop
lapc ext1,r3
bsr ext2
nop

View File

@ -0,0 +1,7 @@
# source: start1.s --march=v0_v10
# source: move-1.s --march=v32
# ld:
# error: contains CRIS v32 code
# Test that linking a v32 object to a (classic) v10 object does
# not work.

View File

@ -0,0 +1,11 @@
# source: start1.s --march=common_v10_v32
# source: move-1.s --march=v32
# ld:
# objdump: -p
# Test that linking a v32 object to a v10+v32 object
# does work and results in the output marked as a v32 object.
#...
private flags = 3: \[symbols have a _ prefix\] \[v32\]
#pass

View File

@ -0,0 +1,11 @@
# source: start1.s --march=v0_v10
# source: move-1.s --march=common_v10_v32
# ld:
# objdump: -p
# Test that linking a v10+v32 compatible object to a v10 object
# does work and results in the output marked as a v10 object.
#...
private flags = 1: \[symbols have a _ prefix\]
#pass

View File

@ -0,0 +1,11 @@
# source: start1.s --march=v32
# source: move-1.s --march=common_v10_v32
# ld:
# objdump: -p
# Test that linking a v10+v32 compatible object to a v32 object
# does work and results in the output marked as a v32 object.
#...
private flags = 3: \[symbols have a _ prefix\] \[v32\]
#pass

View File

@ -4,7 +4,7 @@
#xfail: "arc-*-*" "avr-*-*" "cris-*-*" "dlx-*-*" "fr30-*-*" "frv-*-*"
#xfail: "hppa*-*-*" "h8300-*-*" "i960-*-*" "ip2k-*-*" "m32r-*-*" "mcore-*-*"
#xfail: "mn10*-*-*" "mips*-*-*" "openrisc-*-*" "pj-*-*" "sparc*-*-*"
#xfail: "xtensa-*-*"
#xfail: "xtensa-*-*" "crisv32-*-*"
.*: file format .*elf.*