diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index f29197f86f..15dc6f4f37 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2002-07-09 Hans-Peter Nilsson + * ld-cris/libdso-3.d, ld-cris/dso-3.s, ld-cris/noglob1.s, + ld-cris/noglob1.d: New tests. + * ld-cris/libdso-1.d: Tweak for change in size of dynamic sections. 2002-07-03 Alan Modra diff --git a/ld/testsuite/ld-cris/dso-3.s b/ld/testsuite/ld-cris/dso-3.s new file mode 100644 index 0000000000..6610504e1c --- /dev/null +++ b/ld/testsuite/ld-cris/dso-3.s @@ -0,0 +1,20 @@ +; The visibility definitions here override the default +; definitions in the object where the symbols are defined. We +; check STV_HIDDEN and STV_PROTECTED with function and object +; definition respectively. This is by no means a full coverage, +; just enough to be a test-case for the bug described in +; libdso-3.d. Use ld-elfvsb for general visibility tests. + + .hidden expobj + .protected expfn + + .text + .global globsym + .type globsym,@function +globsym: + move.d expfn:GOTOFF,$r3 + move.d expfn:PLTG,$r3 + move.d expfn:PLT,$r3 + move.d expobj:GOTOFF,$r3 +.Lfe1: + .size globsym,.Lfe1-globsym diff --git a/ld/testsuite/ld-cris/libdso-3.d b/ld/testsuite/ld-cris/libdso-3.d new file mode 100644 index 0000000000..9111797201 --- /dev/null +++ b/ld/testsuite/ld-cris/libdso-3.d @@ -0,0 +1,14 @@ +#source: expdyn1.s +#source: dso-3.s +#as: --pic --no-underscore +#ld: --shared -m crislinux +#objdump: -R + +# GOTOFF relocs against global symbols with non-default +# visibility got a linker error. (A non-default visibility is +# to be treated as a local definition for the reloc.) We also +# make sure we don't get unnecessary dynamic relocations. + +.*: file format elf32-cris + +DYNAMIC RELOCATION RECORDS \(none\) diff --git a/ld/testsuite/ld-cris/noglob1.d b/ld/testsuite/ld-cris/noglob1.d new file mode 100644 index 0000000000..a07cef8202 --- /dev/null +++ b/ld/testsuite/ld-cris/noglob1.d @@ -0,0 +1,8 @@ +#ld: +#objdump: -p + +# Check that we can link an object that doesn't have any global symbols; +# where elf_sym_hashes(bfd) is NULL. + +.*: file format elf32.*-cris +#pass diff --git a/ld/testsuite/ld-cris/noglob1.s b/ld/testsuite/ld-cris/noglob1.s new file mode 100644 index 0000000000..62111bf87f --- /dev/null +++ b/ld/testsuite/ld-cris/noglob1.s @@ -0,0 +1,4 @@ +; See noglob1.d + .text +x: + move.d .,$r0