0f58af8501da3a0aad8c8202dbb96c29d1fd0f18
[external/binutils.git] / ld / testsuite / ld-vax-elf / vax-elf.exp
1 # Expect script for VAX ELF linker tests
2 #   Copyright (C) 2012-2017 Free Software Foundation, Inc.
3 #
4 # This file is part of the GNU Binutils.
5 #
6 # This program is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 3 of the License, or
9 # (at your option) any later version.
10 #
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
15 #
16 # You should have received a copy of the GNU General Public License
17 # along with this program; if not, write to the Free Software
18 # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
19 # MA 02110-1301, USA.
20 #
21
22 if { ![istarget vax-*-*] || ![is_elf_format] } {
23     return
24 }
25
26 run_ld_link_tests [list \
27     [list "PLT test (shared library)" \
28           "-shared -T plt-local-lib.ld --hash-style=sysv" "" \
29           "-k" \
30           { plt-local-lib.s } \
31           { { objdump -d plt-local-lib.dd } } \
32           "plt-local-lib.so"] \
33     [list "PLT test (object 1)" \
34           "-r" "" \
35           "-k" \
36           { plt-local-hidden-pic.s } \
37           {} \
38           "plt-local-hidden-pic-r.o"] \
39     [list "PLT test (object 2)" \
40           "-r" "" \
41           "-k" \
42           { plt-local-rehidden-pic.s } \
43           {} \
44           "plt-local-rehidden-pic-r.o"] \
45     [list "PLT test (executable)" \
46           "-T plt-local.ld --hash-style=sysv tmpdir/plt-local-hidden-pic-r.o tmpdir/plt-local-rehidden-pic-r.o tmpdir/plt-local-lib.so" "" \
47           "" \
48           { plt-local.s } \
49           { { objdump -d plt-local.dd } } \
50           "plt-local"]]
51
52 # Global offset table tests.  Make sure hidden symbols do not get GOT
53 # assignments.
54 run_ld_link_tests [list \
55     [list "GOT test (auxiliary shared library)" \
56           "-shared" "" \
57           "-k" \
58           { got-local-aux.s } \
59           {} \
60           "got-local-aux.so"] \
61     [list "GOT test (object 1)" \
62           "-r" "" \
63           "-k" \
64           { got-local-ref.s } \
65           {} \
66           "got-local-ref-r.o"] \
67     [list "GOT test (object 2)" \
68           "-r" "" \
69           "-k" \
70           { got-local-def.s } \
71           {} \
72           "got-local-def-r.o"] \
73     [list "GOT test (executable)" \
74           "-e 0 tmpdir/got-local-aux.so tmpdir/got-local-ref-r.o tmpdir/got-local-def-r.o" "" \
75           "" \
76           {} \
77           { { readelf "-x .got" got-local-exe.xd } } \
78           "got-local-exe"] \
79     [list "GOT test (shared library)" \
80           "-shared tmpdir/got-local-aux.so tmpdir/got-local-ref-r.o tmpdir/got-local-def-r.o" "" \
81           "" \
82           {} \
83           { { readelf "-x .got" got-local-lib.xd } } \
84           "got-local-lib.so"]]
85
86 # Export class relocation tests.
87 run_ld_link_tests [list \
88     [list \
89         "VAX export class call relocation test" \
90         "-shared -Ttext 0x12340000 -T export-class.ld --hash-style=sysv" "" \
91         "-k" \
92         [list export-class-call.s export-class-def.s] \
93         [list \
94             [list objdump -d export-class-call.dd] \
95             [list readelf -r export-class-call.rd] \
96             [list readelf "-x .got" export-class-call.xd]] \
97         "export-class-call.so"] \
98     [list \
99         "VAX export class data relocation test" \
100         "-shared -Ttext 0x12340000 -T export-class.ld --hash-style=sysv" "" \
101         "-k" \
102         [list export-class-data.s export-class-def.s] \
103         [list \
104             [list objdump -d export-class-data.dd] \
105             [list readelf -r export-class-data.rd] \
106             [list readelf "-x .got" export-class-data.xd]] \
107         "export-class-data.so"]]