diff options
author | Max Filippov <jcmvbkbc@gmail.com> | 2018-07-19 21:00:29 -0700 |
---|---|---|
committer | Max Filippov <jcmvbkbc@gmail.com> | 2018-07-23 12:05:43 -0700 |
commit | f5e263426f1f191ae85584a82dd793cfd3c951e9 (patch) | |
tree | 06097447d4edcdc9a5bfbc66fe841cc83579588e /ld/testsuite | |
parent | da90fdf9936c532665e2a743d2fc5cf5e8f6816c (diff) | |
download | gdb-f5e263426f1f191ae85584a82dd793cfd3c951e9.zip gdb-f5e263426f1f191ae85584a82dd793cfd3c951e9.tar.gz gdb-f5e263426f1f191ae85584a82dd793cfd3c951e9.tar.bz2 |
xtensa: ld: add tests for static linkage relaxation
ld/
2018-07-23 Max Filippov <jcmvbkbc@gmail.com>
* testsuite/ld-xtensa/relax-static-defs.s: New file.
* testsuite/ld-xtensa/relax-static-local-pie.d: New file.
* testsuite/ld-xtensa/relax-static-local-shared.d: New file.
* testsuite/ld-xtensa/relax-static-local.s: New file.
* testsuite/ld-xtensa/relax-static-pie.d: New file.
* testsuite/ld-xtensa/relax-static-shared.d: New file.
* testsuite/ld-xtensa/relax-static.s: New file.
* testsuite/ld-xtensa/relax-undef-weak-local-pie.d: New file.
* testsuite/ld-xtensa/relax-undef-weak-local-shared.d: New file.
* testsuite/ld-xtensa/relax-undef-weak-local.s: New file.
* testsuite/ld-xtensa/relax-undef-weak-pie.d: New file.
* testsuite/ld-xtensa/relax-undef-weak-shared.d: New file.
* testsuite/ld-xtensa/relax-undef-weak.s: New file.
* testsuite/ld-xtensa/xtensa.exp: New file.
Diffstat (limited to 'ld/testsuite')
-rw-r--r-- | ld/testsuite/ld-xtensa/relax-static-defs.s | 33 | ||||
-rw-r--r-- | ld/testsuite/ld-xtensa/relax-static-local-pie.d | 17 | ||||
-rw-r--r-- | ld/testsuite/ld-xtensa/relax-static-local-shared.d | 17 | ||||
-rw-r--r-- | ld/testsuite/ld-xtensa/relax-static-local.s | 19 | ||||
-rw-r--r-- | ld/testsuite/ld-xtensa/relax-static-pie.d | 13 | ||||
-rw-r--r-- | ld/testsuite/ld-xtensa/relax-static-shared.d | 15 | ||||
-rw-r--r-- | ld/testsuite/ld-xtensa/relax-static.s | 9 | ||||
-rw-r--r-- | ld/testsuite/ld-xtensa/relax-undef-weak-local-pie.d | 6 | ||||
-rw-r--r-- | ld/testsuite/ld-xtensa/relax-undef-weak-local-shared.d | 6 | ||||
-rw-r--r-- | ld/testsuite/ld-xtensa/relax-undef-weak-local.s | 31 | ||||
-rw-r--r-- | ld/testsuite/ld-xtensa/relax-undef-weak-pie.d | 6 | ||||
-rw-r--r-- | ld/testsuite/ld-xtensa/relax-undef-weak-shared.d | 14 | ||||
-rw-r--r-- | ld/testsuite/ld-xtensa/relax-undef-weak.s | 12 | ||||
-rw-r--r-- | ld/testsuite/ld-xtensa/xtensa.exp | 34 |
14 files changed, 232 insertions, 0 deletions
diff --git a/ld/testsuite/ld-xtensa/relax-static-defs.s b/ld/testsuite/ld-xtensa/relax-static-defs.s new file mode 100644 index 0000000..cce2452 --- /dev/null +++ b/ld/testsuite/ld-xtensa/relax-static-defs.s @@ -0,0 +1,33 @@ + .type fd,@function + .globl fd + + .type fh,@function + .globl fh + .hidden fh + + .type fp,@function + .globl fp + .protected fp + + .type fi,@function + .globl fi + .internal fi + + .text + .globl _start +_start: + nop + + .section ".text.f" + .align 4 +fd: + nop + .align 4 +fh: + nop + .align 4 +fp: + nop + .align 4 +fi: + nop diff --git a/ld/testsuite/ld-xtensa/relax-static-local-pie.d b/ld/testsuite/ld-xtensa/relax-static-local-pie.d new file mode 100644 index 0000000..c23e33f --- /dev/null +++ b/ld/testsuite/ld-xtensa/relax-static-local-pie.d @@ -0,0 +1,17 @@ +#source: relax-static-local.s +#source: relax-static-defs.s +#ld: -pie +#readelf: -r +#... +Relocation section '\.rela\.dyn' .* 6 .* +#... +.*R_XTENSA_RELATIVE.* +.*R_XTENSA_RELATIVE.* +.*R_XTENSA_RELATIVE.* +.*R_XTENSA_RELATIVE.* +.*R_XTENSA_RELATIVE.* +.*R_XTENSA_RELATIVE.* +#failif +#... +Relocation section '\.rela\.plt' .* +#... diff --git a/ld/testsuite/ld-xtensa/relax-static-local-shared.d b/ld/testsuite/ld-xtensa/relax-static-local-shared.d new file mode 100644 index 0000000..8577894 --- /dev/null +++ b/ld/testsuite/ld-xtensa/relax-static-local-shared.d @@ -0,0 +1,17 @@ +#source: relax-static-local.s +#source: relax-static-defs.s +#ld: -shared +#readelf: -r +#... +Relocation section '\.rela\.dyn' .* 6 .* +#... +.*R_XTENSA_RELATIVE.* +.*R_XTENSA_RELATIVE.* +.*R_XTENSA_RELATIVE.* +.*R_XTENSA_RELATIVE.* +.*R_XTENSA_RELATIVE.* +.*R_XTENSA_RELATIVE.* +#failif +#... +Relocation section '\.rela\.plt' .* +#... diff --git a/ld/testsuite/ld-xtensa/relax-static-local.s b/ld/testsuite/ld-xtensa/relax-static-local.s new file mode 100644 index 0000000..002cb31 --- /dev/null +++ b/ld/testsuite/ld-xtensa/relax-static-local.s @@ -0,0 +1,19 @@ + .text + + movi a2, fh@plt + movi a2, fp@plt + movi a2, fi@plt + + movi a2, fh + movi a2, fp + movi a2, fi + + .section ".text.a" + + movi a2, fh@plt + movi a2, fp@plt + movi a2, fi@plt + + movi a2, fh + movi a2, fp + movi a2, fi diff --git a/ld/testsuite/ld-xtensa/relax-static-pie.d b/ld/testsuite/ld-xtensa/relax-static-pie.d new file mode 100644 index 0000000..ded9c1b --- /dev/null +++ b/ld/testsuite/ld-xtensa/relax-static-pie.d @@ -0,0 +1,13 @@ +#source: relax-static.s +#source: relax-static-defs.s +#ld: -pie +#readelf: -r +#... +Relocation section '\.rela\.dyn' .* 2 .* +#... +.*R_XTENSA_RELATIVE.* +.*R_XTENSA_RELATIVE.* +#failif +#... +Relocation section '\.rela\.plt' .* +#... diff --git a/ld/testsuite/ld-xtensa/relax-static-shared.d b/ld/testsuite/ld-xtensa/relax-static-shared.d new file mode 100644 index 0000000..a202810 --- /dev/null +++ b/ld/testsuite/ld-xtensa/relax-static-shared.d @@ -0,0 +1,15 @@ +#source: relax-static.s +#source: relax-static-defs.s +#ld: -shared +#readelf: -r +#... +Relocation section '\.rela\.dyn' .* 3 .* +#... +.*R_XTENSA_RTLD.* +.*R_XTENSA_RTLD.* +.*R_XTENSA_GLOB_DAT.*fd.* +#... +Relocation section '\.rela\.plt' .* 1 .* +#... +.*R_XTENSA_JMP_SLOT.*fd.* +#... diff --git a/ld/testsuite/ld-xtensa/relax-static.s b/ld/testsuite/ld-xtensa/relax-static.s new file mode 100644 index 0000000..727d00a --- /dev/null +++ b/ld/testsuite/ld-xtensa/relax-static.s @@ -0,0 +1,9 @@ + .text + + movi a2, fd@plt + movi a2, fd + + .section ".text.a" + + movi a2, fd@plt + movi a2, fd diff --git a/ld/testsuite/ld-xtensa/relax-undef-weak-local-pie.d b/ld/testsuite/ld-xtensa/relax-undef-weak-local-pie.d new file mode 100644 index 0000000..3603b25 --- /dev/null +++ b/ld/testsuite/ld-xtensa/relax-undef-weak-local-pie.d @@ -0,0 +1,6 @@ +#source: relax-undef-weak-local.s +#ld: -pie +#readelf: -r +#... +There are no relocations in this file. +#... diff --git a/ld/testsuite/ld-xtensa/relax-undef-weak-local-shared.d b/ld/testsuite/ld-xtensa/relax-undef-weak-local-shared.d new file mode 100644 index 0000000..2bcf373 --- /dev/null +++ b/ld/testsuite/ld-xtensa/relax-undef-weak-local-shared.d @@ -0,0 +1,6 @@ +#source: relax-undef-weak-local.s +#ld: -shared +#readelf: -r +#... +There are no relocations in this file. +#... diff --git a/ld/testsuite/ld-xtensa/relax-undef-weak-local.s b/ld/testsuite/ld-xtensa/relax-undef-weak-local.s new file mode 100644 index 0000000..93f393e --- /dev/null +++ b/ld/testsuite/ld-xtensa/relax-undef-weak-local.s @@ -0,0 +1,31 @@ + .type fp,@function + .weak fp + .protected fp + + .type fh,@function + .weak fh + .hidden fh + + .type fi,@function + .weak fi + .internal fi + + .globl _start +_start: + movi a5, fp@plt + movi a5, fh@plt + movi a5, fi@plt + + movi a6, fp + movi a6, fh + movi a6, fi + + .section ".text.a" +a: + movi a5, fp@plt + movi a5, fh@plt + movi a5, fi@plt + + movi a6, fp + movi a6, fh + movi a6, fi diff --git a/ld/testsuite/ld-xtensa/relax-undef-weak-pie.d b/ld/testsuite/ld-xtensa/relax-undef-weak-pie.d new file mode 100644 index 0000000..3eec896 --- /dev/null +++ b/ld/testsuite/ld-xtensa/relax-undef-weak-pie.d @@ -0,0 +1,6 @@ +#source: relax-undef-weak.s +#ld: -pie +#readelf: -r +#... +There are no relocations in this file. +#... diff --git a/ld/testsuite/ld-xtensa/relax-undef-weak-shared.d b/ld/testsuite/ld-xtensa/relax-undef-weak-shared.d new file mode 100644 index 0000000..1d7b20b --- /dev/null +++ b/ld/testsuite/ld-xtensa/relax-undef-weak-shared.d @@ -0,0 +1,14 @@ +#source: relax-undef-weak.s +#ld: -shared +#readelf: -r +#... +Relocation section '\.rela\.dyn' .* 3 .* +#... +.*R_XTENSA_RTLD.* +.*R_XTENSA_RTLD.* +.*R_XTENSA_GLOB_DAT.*fd.* +#... +Relocation section '\.rela\.plt' .* 1 .* +#... +.*R_XTENSA_JMP_SLOT.*fd.* +#... diff --git a/ld/testsuite/ld-xtensa/relax-undef-weak.s b/ld/testsuite/ld-xtensa/relax-undef-weak.s new file mode 100644 index 0000000..19e99b6 --- /dev/null +++ b/ld/testsuite/ld-xtensa/relax-undef-weak.s @@ -0,0 +1,12 @@ + .type fd,@function + .weak fd + + .globl _start +_start: + movi a5, fd@plt + movi a6, fd + + .section ".text.a" +a: + movi a5, fd@plt + movi a6, fd diff --git a/ld/testsuite/ld-xtensa/xtensa.exp b/ld/testsuite/ld-xtensa/xtensa.exp new file mode 100644 index 0000000..cd74be2 --- /dev/null +++ b/ld/testsuite/ld-xtensa/xtensa.exp @@ -0,0 +1,34 @@ +# Expect script for ld-xtensa tests +# Copyright (C) 2008-2018 Free Software Foundation, Inc. +# +# This file is part of the GNU Binutils. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, +# MA 02110-1301, USA. +# + +if { !([istarget "xtensa*-*-*"]) } { + return +} + +run_dump_test "relax-static-pie" +run_dump_test "relax-static-local-pie" +run_dump_test "relax-static-shared" +run_dump_test "relax-static-local-shared" + +run_dump_test "relax-undef-weak-pie" +run_dump_test "relax-undef-weak-local-pie" +run_dump_test "relax-undef-weak-shared" +run_dump_test "relax-undef-weak-local-shared" |