From 257385246e4e7790890d2d2927f1ca2efb780a37 Mon Sep 17 00:00:00 2001 From: Hans-Peter Nilsson Date: Sat, 20 Dec 2008 00:30:39 +0000 Subject: [PATCH] * ld-cris/tls-err-77.d, ld-cris/tls-gc-79.d, ld-cris/tls-ie-8e.s, ld-cris/tls-ie-8e1.d: New tests. --- ld/testsuite/ChangeLog | 5 +++++ ld/testsuite/ld-cris/tls-err-77.d | 7 +++++++ ld/testsuite/ld-cris/tls-gc-79.d | 34 +++++++++++++++++++++++++++++++ ld/testsuite/ld-cris/tls-ie-8e.s | 8 ++++++++ ld/testsuite/ld-cris/tls-ie-8e1.d | 42 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 96 insertions(+) create mode 100644 ld/testsuite/ld-cris/tls-err-77.d create mode 100644 ld/testsuite/ld-cris/tls-gc-79.d create mode 100644 ld/testsuite/ld-cris/tls-ie-8e.s create mode 100644 ld/testsuite/ld-cris/tls-ie-8e1.d diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index daee5dc..9421562 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2008-12-20 Hans-Peter Nilsson + + * ld-cris/tls-err-77.d, ld-cris/tls-gc-79.d, ld-cris/tls-ie-8e.s, + ld-cris/tls-ie-8e1.d: New tests. + 2008-12-18 H.J. Lu * ld-i386/tlsld1.dd: Remove trailing white spaces after nop. diff --git a/ld/testsuite/ld-cris/tls-err-77.d b/ld/testsuite/ld-cris/tls-err-77.d new file mode 100644 index 0000000..9c714bf --- /dev/null +++ b/ld/testsuite/ld-cris/tls-err-77.d @@ -0,0 +1,7 @@ +#source: tls-ie-8e.s +#source: tls-x.s +#as: --no-underscore --em=criself +#ld: --shared -m crislinux +#error: \A[^\n]*\.o, [^\n]*\n[^\n]*mixup[^\n]*\n[^\n]*Invalid operation\Z + +# Check that a R_CRIS_32_IE in input to a DSO is flagged as an error. diff --git a/ld/testsuite/ld-cris/tls-gc-79.d b/ld/testsuite/ld-cris/tls-gc-79.d new file mode 100644 index 0000000..37e8fce --- /dev/null +++ b/ld/testsuite/ld-cris/tls-gc-79.d @@ -0,0 +1,34 @@ +#source: start1.s +#source: tls128.s +#source: tls-ie-8e.s +#source: tls-x.s +#as: --no-underscore --em=criself +#ld: -m crislinux --gc-sections +#objdump: -s -t -r -p + +# An executable with a single R_CRIS_32_IE, with gc. Check that we +# have nothing left but the start symbol and its code. Can't get rid +# of the GOT just yet. + +.*: file format elf32-cris + +Program Header: + LOAD off 0x0+ vaddr 0x0+80000 paddr 0x0+80000 align 2\*\*13 + filesz 0x0+78 memsz 0x0+78 flags r-x + LOAD off 0x0+78 vaddr 0x0+82078 paddr 0x0+82078 align 2\*\*13 + filesz 0x0+c memsz 0x0+c flags rw- +private flags = 0: + +SYMBOL TABLE: +0+80074 l d .text 0+ .text +0+82078 l d .got 0+ .got +0+82078 l O .got 0+ .hidden _GLOBAL_OFFSET_TABLE_ +0+80074 g .text 0+ _start +0+82084 g \*ABS\* 0+ __bss_start +0+82084 g \*ABS\* 0+ _edata +0+820a0 g \*ABS\* 0+ _end + +Contents of section .text: + 80074 41b20+ .* +Contents of section .got: + 82078 0+ 0+ 0+ .* diff --git a/ld/testsuite/ld-cris/tls-ie-8e.s b/ld/testsuite/ld-cris/tls-ie-8e.s new file mode 100644 index 0000000..fc6e121 --- /dev/null +++ b/ld/testsuite/ld-cris/tls-ie-8e.s @@ -0,0 +1,8 @@ + .text + .global tlsfn + .type tlsfn,@function + .p2align 1 +tlsfn: + move.d x:IE,$r10 +.Lfe8: + .size tlsfn,.Lfe8-tlsfn diff --git a/ld/testsuite/ld-cris/tls-ie-8e1.d b/ld/testsuite/ld-cris/tls-ie-8e1.d new file mode 100644 index 0000000..e2bcfd2 --- /dev/null +++ b/ld/testsuite/ld-cris/tls-ie-8e1.d @@ -0,0 +1,42 @@ +#as: --no-underscore --em=criself +#ld: -m crislinux +#source: start1.s +#source: tls-ie-8e.s +#source: tls128g.s +#source: tls-x.s +#objdump: -d -s -h -t -r -p + +# Executable with a single R_CRIS_32_IE, defined in the executable. +# Check that we have proper NPTL/TLS markings and a constant GOT. + +.*: file format elf32-cris + +Program Header: +#... + TLS off 0x0+a0 vaddr 0x0+820a0 paddr 0x0+820a0 align 2\*\*2 + filesz 0x0+84 memsz 0x0+84 flags r-- +private flags = 0: + +Sections: +#... + 2 .got[ ]+ 0+10 .* + CONTENTS, ALLOC, LOAD, DATA + +SYMBOL TABLE: +#... +0+80 g \.tdata 0+4 x +#... +Contents of section .text: + 80094 41b20000 6fae3021 08000000 .* +#... +Contents of section .got: + 82124 00000000 00000000 00000000 80000000 .* + +Disassembly of section .text: + +00080094 <_start>: + 80094: 41b2 moveq 1,\$r11 +#... +00080098 : + 80098: 6fae 3021 0800 move.d 82130 <_GLOBAL_OFFSET_TABLE_\+0xc>,\$r10 +#pass -- 2.7.4