From e646467d714339cd17cbbbe71ae427ad865ab91b Mon Sep 17 00:00:00 2001 From: Hans-Peter Nilsson Date: Tue, 7 Sep 2004 18:32:27 +0000 Subject: [PATCH] * ld-cris/hiddef1.d, ld-cris/hiddef1.d, ld-cris/hidrefgotplt1.s: New test. --- ld/testsuite/ChangeLog | 5 +++++ ld/testsuite/ld-cris/hiddef1.d | 28 ++++++++++++++++++++++++++++ ld/testsuite/ld-cris/hiddef1.s | 2 ++ ld/testsuite/ld-cris/hidrefgotplt1.s | 2 ++ 4 files changed, 37 insertions(+) create mode 100644 ld/testsuite/ld-cris/hiddef1.d create mode 100644 ld/testsuite/ld-cris/hiddef1.s create mode 100644 ld/testsuite/ld-cris/hidrefgotplt1.s diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index a75a445..28aa2e9 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2004-09-07 Hans-Peter Nilsson + + * ld-cris/hiddef1.d, ld-cris/hiddef1.d, ld-cris/hidrefgotplt1.s: + New test. + 2004-09-03 Tomer Levi * ld-crx: New directory. diff --git a/ld/testsuite/ld-cris/hiddef1.d b/ld/testsuite/ld-cris/hiddef1.d new file mode 100644 index 0000000..0d6c4a8 --- /dev/null +++ b/ld/testsuite/ld-cris/hiddef1.d @@ -0,0 +1,28 @@ +#source: gotrel1.s +#source: hiddef1.s +#source: hidrefgotplt1.s +#ld: -shared -m crislinux +#as: --pic --no-underscore -I$srcdir/$subdir +#readelf: -S -s -r + +# Regression test for mishandling of GOTPLT relocs against a +# hidden symbol, where the reloc is found after the symbol +# definition. There should be no PLT, just a single GOT entry +# from a GOTPLT reloc moved to the .got section. It's hard to +# check for absence of a .plt section, so we just check the +# number of symbols and sections. When the number of symbols +# and sections change, make sure that there's no .plt and that +# dsofn is hidden (not exported as a dynamic symbol). + +There are 13 section headers, starting at offset 0x[0-9a-f]+: +#... + \[[ 0-9]+\] \.got PROGBITS [0-9a-f]+ [0-9a-f]+ 0+10 04 WA 0 0 4 +#... +Relocation section '\.rela\.dyn' at offset 0x[0-9a-f]+ contains 1 entries: +#... +[0-9a-f]+ 0+c R_CRIS_RELATIVE [0-9a-f]+ +#... +Symbol table '\.dynsym' contains 10 entries: +#... +Symbol table '\.symtab' contains 21 entries: +#pass diff --git a/ld/testsuite/ld-cris/hiddef1.s b/ld/testsuite/ld-cris/hiddef1.s new file mode 100644 index 0000000..ac24c81 --- /dev/null +++ b/ld/testsuite/ld-cris/hiddef1.s @@ -0,0 +1,2 @@ + .include "dso-1.s" + .hidden dsofn diff --git a/ld/testsuite/ld-cris/hidrefgotplt1.s b/ld/testsuite/ld-cris/hidrefgotplt1.s new file mode 100644 index 0000000..020ff16 --- /dev/null +++ b/ld/testsuite/ld-cris/hidrefgotplt1.s @@ -0,0 +1,2 @@ + .text + move.d [$r0+dsofn:GOTPLT],$r1 -- 2.7.4