aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-vax-elf/vax-elf.exp
diff options
context:
space:
mode:
Diffstat (limited to 'ld/testsuite/ld-vax-elf/vax-elf.exp')
-rw-r--r--ld/testsuite/ld-vax-elf/vax-elf.exp85
1 files changed, 83 insertions, 2 deletions
diff --git a/ld/testsuite/ld-vax-elf/vax-elf.exp b/ld/testsuite/ld-vax-elf/vax-elf.exp
index 2748000..fb1fc3b 100644
--- a/ld/testsuite/ld-vax-elf/vax-elf.exp
+++ b/ld/testsuite/ld-vax-elf/vax-elf.exp
@@ -51,7 +51,7 @@ run_ld_link_tests [list \
"plt-local"]]
# Global offset table tests. Make sure hidden symbols do not get GOT
-# assignments.
+# assignments. Also verify offset references.
run_ld_link_tests [list \
[list "GOT test (auxiliary shared library)" \
"-shared" "" \
@@ -59,18 +59,48 @@ run_ld_link_tests [list \
{ got-local-aux.s } \
{} \
"got-local-aux.so"] \
+ [list "GOT test (auxiliary shared library for offsets)" \
+ "-shared" "" \
+ "-k" \
+ { got-local-aux-off.s } \
+ {} \
+ "got-local-aux-off.so"] \
[list "GOT test (object 1)" \
"-r" "" \
"-k" \
{ got-local-ref.s } \
{} \
"got-local-ref-r.o"] \
+ [list "GOT test (object 1 hidden reference with offset)" \
+ "-r" "" \
+ "-k" \
+ { got-local-ref-off-hidden.s } \
+ {} \
+ "got-local-ref-off-hidden-r.o"] \
+ [list "GOT test (object 1 visible reference with offset)" \
+ "-r" "" \
+ "-k" \
+ { got-local-ref-off-visible.s } \
+ {} \
+ "got-local-ref-off-visible-r.o"] \
+ [list "GOT test (object 1 external reference with offset)" \
+ "-r" "" \
+ "-k" \
+ { got-local-ref-off-external.s } \
+ {} \
+ "got-local-ref-off-external-r.o"] \
[list "GOT test (object 2)" \
"-r" "" \
"-k" \
{ got-local-def.s } \
{} \
"got-local-def-r.o"] \
+ [list "GOT test (object 2 for offsets)" \
+ "-r" "" \
+ "-k" \
+ { got-local-def-off.s } \
+ {} \
+ "got-local-def-off-r.o"] \
[list "GOT test (executable)" \
"-e 0 tmpdir/got-local-aux.so tmpdir/got-local-ref-r.o \
tmpdir/got-local-def-r.o" "" \
@@ -84,7 +114,58 @@ run_ld_link_tests [list \
"" \
{} \
{ { readelf "-x .got" got-local-lib.xd } } \
- "got-local-lib.so"]]
+ "got-local-lib.so"] \
+ [list "GOT test (executable hidden reference with offset)" \
+ "-e 0 -T got-local.ld tmpdir/got-local-aux-off.so \
+ tmpdir/got-local-ref-off-hidden-r.o \
+ tmpdir/got-local-def-off-r.o" "" \
+ "" \
+ {} \
+ { { readelf "-x .got" got-local-exe-off.xd } \
+ { objdump -d got-local-exe-off-hidden.dd } } \
+ "got-local-exe-off-hidden"] \
+ [list "GOT test (shared library hidden reference with offset)" \
+ "-shared -T got-local.ld tmpdir/got-local-aux-off.so \
+ tmpdir/got-local-ref-off-hidden-r.o \
+ tmpdir/got-local-def-off-r.o" "" \
+ "" \
+ {} \
+ { { readelf "-x .got" got-local-lib-off.xd } \
+ { objdump -d got-local-lib-off-hidden.dd } } \
+ "got-local-lib-off-hidden.so"] \
+ [list "GOT test (executable visible reference with offset)" \
+ "-e 0 -T got-local.ld tmpdir/got-local-aux-off.so \
+ tmpdir/got-local-ref-off-visible-r.o \
+ tmpdir/got-local-def-off-r.o" "" \
+ "" \
+ {} \
+ { { readelf "-x .got" got-local-exe-off.xd } \
+ { objdump -d got-local-exe-off-visible.dd } } \
+ "got-local-exe-off-visible"] \
+ [list "GOT test (shared library visible reference with offset)" \
+ "-shared -T got-local.ld tmpdir/got-local-aux-off.so \
+ tmpdir/got-local-ref-off-visible-r.o \
+ tmpdir/got-local-def-off-r.o" "" \
+ "" \
+ {} \
+ { { ld got-local-lib-off-visible.ed } } \
+ "got-local-lib-off-visible.so"] \
+ [list "GOT test (executable external reference with offset)" \
+ "-e 0 -T got-local.ld tmpdir/got-local-aux-off.so \
+ tmpdir/got-local-ref-off-external-r.o \
+ tmpdir/got-local-def-off-r.o" "" \
+ "" \
+ {} \
+ { { ld got-local-off-external.ed } } \
+ "got-local-exe-off-external"] \
+ [list "GOT test (shared library external reference with offset)" \
+ "-shared -T got-local.ld tmpdir/got-local-aux-off.so \
+ tmpdir/got-local-ref-off-external-r.o \
+ tmpdir/got-local-def-off-r.o" "" \
+ "" \
+ {} \
+ { { ld got-local-off-external.ed } } \
+ "got-local-lib-off-external.so"]]
# Export class relocation tests.
run_ld_link_tests [list \