diff options
-rw-r--r-- | ld/testsuite/ld-cris/dsofnf.s | 7 | ||||
-rw-r--r-- | ld/testsuite/ld-cris/dsofnf2.s | 8 | ||||
-rw-r--r-- | ld/testsuite/ld-cris/gotplt1.d | 48 | ||||
-rw-r--r-- | ld/testsuite/ld-cris/gotplt2.d | 37 | ||||
-rw-r--r-- | ld/testsuite/ld-cris/gotplt3.d | 35 |
5 files changed, 135 insertions, 0 deletions
diff --git a/ld/testsuite/ld-cris/dsofnf.s b/ld/testsuite/ld-cris/dsofnf.s new file mode 100644 index 0000000..bf0a4fa --- /dev/null +++ b/ld/testsuite/ld-cris/dsofnf.s @@ -0,0 +1,7 @@ + .text + .global f + .type f,@function +f: + move.d [$r0+dsofn:GOT],$r1 +0: + .size f,0b-f diff --git a/ld/testsuite/ld-cris/dsofnf2.s b/ld/testsuite/ld-cris/dsofnf2.s new file mode 100644 index 0000000..fbf2384 --- /dev/null +++ b/ld/testsuite/ld-cris/dsofnf2.s @@ -0,0 +1,8 @@ + .text + .global f + .type f,@function +f: + move.d [$r0+dsofn:GOT],$r1 + move.d dsofn,$r2 +0: + .size f,0b-f diff --git a/ld/testsuite/ld-cris/gotplt1.d b/ld/testsuite/ld-cris/gotplt1.d new file mode 100644 index 0000000..0065421 --- /dev/null +++ b/ld/testsuite/ld-cris/gotplt1.d @@ -0,0 +1,48 @@ +#source: dso-2.s +#source: dsofnf2.s +#source: gotrel1.s +#as: --pic --no-underscore +#ld: -m crislinux tmpdir/libdso-1.so +#objdump: -sR + +# Make sure we don't merge a PLT-specific entry +# (R_CRIS_JUMP_SLOT) with a non-PLT-GOT-specific entry +# (R_CRIS_GLOB_DAT) in an executable, since they may have +# different contents there. (If we merge them in a DSO it's ok: +# we make a round-trip to the PLT in the executable if it's +# referenced there, but that's still perceived as better than +# having an unnecessary PLT, dynamic reloc and lookup in the +# DSO.) In the executable, the GOT contents for the non-PLT +# reloc should be constant. + +.*: file format elf32-cris + +DYNAMIC RELOCATION RECORDS +OFFSET TYPE VALUE +000822d4 R_CRIS_JUMP_SLOT dsofn + +Contents of section .* +#... +Contents of section \.rela\.plt: + 801d8 d4220800 0b060000 00000000 .* +Contents of section \.plt: + 801e4 fce17e7e 7f0dcc22 0800307a 7f0dd022 .* + 801f4 08003009 7f0dd422 08003009 3f7e0000 .* + 80204 00002ffe d8ffffff .* +Contents of section \.text: + 8020c 5f1d0c00 30096f1d 0c000000 30090000 .* + 8021c 6f0d1000 0000611a 6f2ef801 08000000 .* + 8022c 6f3e64df ffff0000 .* +Contents of section \.dynamic: + 82240 01000000 01000000 04000000 e4000800 .* + 82250 05000000 84010800 06000000 14010800 .* + 82260 0a000000 51000000 0b000000 10000000 .* + 82270 15000000 00000000 03000000 c8220800 .* + 82280 02000000 0c000000 14000000 07000000 .* + 82290 17000000 d8010800 00000000 00000000 .* + 822a0 00000000 00000000 00000000 00000000 .* + 822b0 00000000 00000000 00000000 00000000 .* + 822c0 00000000 00000000 .* +Contents of section \.got: + 822c8 40220800 00000000 00000000 00020800 .* + 822d8 f8010800 .* diff --git a/ld/testsuite/ld-cris/gotplt2.d b/ld/testsuite/ld-cris/gotplt2.d new file mode 100644 index 0000000..82fac09 --- /dev/null +++ b/ld/testsuite/ld-cris/gotplt2.d @@ -0,0 +1,37 @@ +#source: dso-2.s +#source: dsofnf.s +#source: gotrel1.s +#as: --pic --no-underscore +#ld: -shared -m crislinux -z nocombreloc +#objdump: -sR + +# Make sure we merge a PLT-specific entry (usually +# R_CRIS_JUMP_SLOT) with a GOT-specific entry (R_CRIS_GLOB_DAT) +# in a DSO. It's ok: we make a round-trip to the PLT in the +# executable if it's referenced there, but that's still +# perceived as better than having an unnecessary PLT, dynamic +# reloc and lookup in the DSO.) + +.*: file format elf32-cris + +DYNAMIC RELOCATION RECORDS +OFFSET TYPE VALUE +0000235c R_CRIS_GLOB_DAT dsofn + +Contents of section .* +#... +Contents of section \.rela\.got: + 02a8 5c230000 0a120000 00000000 .* +Contents of section \.text: + 02b4 5f1d0c00 30096f1d 0c000000 30090000 .* + 02c4 6f0d0c00 0000611a 6f3e7cdf ffff0000 .* +Contents of section \.dynamic: + 22e0 04000000 94000000 05000000 5c020000 .* + 22f0 06000000 2c010000 0a000000 49000000 .* + 2300 0b000000 10000000 07000000 a8020000 .* + 2310 08000000 0c000000 09000000 0c000000 .* + 2320 00000000 00000000 00000000 00000000 .* + 2330 00000000 00000000 00000000 00000000 .* + 2340 00000000 00000000 00000000 00000000 .* +Contents of section \.got: + 2350 e0220000 00000000 00000000 00000000 .* diff --git a/ld/testsuite/ld-cris/gotplt3.d b/ld/testsuite/ld-cris/gotplt3.d new file mode 100644 index 0000000..a79af50 --- /dev/null +++ b/ld/testsuite/ld-cris/gotplt3.d @@ -0,0 +1,35 @@ +#source: dso-2.s +#source: dsofnf.s +#source: gotrel1.s +#source: dso-1.s +#as: --pic --no-underscore +#ld: -shared -m crislinux -z nocombreloc +#objdump: -sR + +# Like gotplt2, but make sure we merge right when we have a +# definition of the function too. + +.*: file format elf32-cris + +DYNAMIC RELOCATION RECORDS +OFFSET TYPE VALUE +0000235c R_CRIS_GLOB_DAT dsofn + +Contents of section .* +#... +Contents of section \.rela\.got: + 02a8 5c230000 0a120000 00000000 .* +Contents of section \.text: + 02b4 5f1d0c00 30096f1d 0c000000 30090000 .* + 02c4 6f0d0c00 0000611a 6f3e7cdf ffff0000 .* + 02d4 0f050000 .* +Contents of section \.dynamic: + 22e0 04000000 94000000 05000000 5c020000 .* + 22f0 06000000 2c010000 0a000000 49000000 .* + 2300 0b000000 10000000 07000000 a8020000 .* + 2310 08000000 0c000000 09000000 0c000000 .* + 2320 00000000 00000000 00000000 00000000 .* + 2330 00000000 00000000 00000000 00000000 .* + 2340 00000000 00000000 00000000 00000000 .* +Contents of section \.got: + 2350 e0220000 00000000 00000000 00000000 .* |