Commit | Line | Data |
---|---|---|
bfff1642 NC |
1 | # Expect script for ld-mn10300 tests |
2 | # Copyright (C) 2007 Free Software Foundation | |
3 | # | |
4 | # This file is free software; you can redistribute it and/or modify | |
5 | # it under the terms of the GNU General Public License as published by | |
6 | # the Free Software Foundation; either version 3 of the License, or | |
7 | # (at your option) any later version. | |
8 | # | |
9 | # This program is distributed in the hope that it will be useful, | |
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 | # GNU General Public License for more details. | |
13 | # | |
14 | # You should have received a copy of the GNU General Public License | |
15 | # along with this program; if not, write to the Free Software | |
16 | # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
17 | # | |
18 | ||
19 | if {!([istarget "am3*-*-*"]) && !([istarget "mn10300*-*-*"]) } { | |
20 | return | |
21 | } | |
22 | ||
23 | # Set up a list as described in ld-lib.exp | |
24 | ||
569006e5 | 25 | set mn10300_tests { |
bfff1642 NC |
26 | { |
27 | "am33 string merging" | |
569006e5 | 28 | "-relax -Ttext 0x8000074" |
bfff1642 NC |
29 | "" |
30 | { "i36434.s" "i36434-2.s" } | |
31 | { {objdump -dz i36434.d} } | |
32 | "i36434.x" | |
33 | } | |
34 | { | |
569006e5 | 35 | "difference of two same-section symbols" |
bfff1642 NC |
36 | "-Ttext 0" |
37 | "" | |
38 | { "i112045-1.s" } | |
39 | { {objdump -d i112045-1.d} } | |
40 | "i112045-1.x" | |
41 | } | |
42 | { | |
569006e5 NC |
43 | "difference of two same-section symbols where the difference is held in another section" |
44 | "-relax -Ttext 100" | |
bfff1642 | 45 | "" |
569006e5 NC |
46 | { "i112045-3.s" } |
47 | { {objdump -D i112045-3.d} } | |
48 | "i112045-3.x" | |
bfff1642 | 49 | } |
b5f5fd96 NC |
50 | { |
51 | "relaxation and alignment directives" | |
62d7f790 | 52 | "-relax -Ttext 100 -Tbss 300" |
b5f5fd96 NC |
53 | "" |
54 | { "i127740.s" } | |
55 | { {objdump -d i127740.d} } | |
56 | "i127740.x" | |
57 | } | |
bfff1642 NC |
58 | { |
59 | "adjustment of symbols due to relaxation" | |
569006e5 NC |
60 | "-Tdata 1f -Ttext 0 -relax" |
61 | "" | |
62 | { "i135409-1.s" } | |
63 | { {readelf --syms i135409-1.d} } | |
64 | "i135409-1.x" | |
65 | } | |
66 | { | |
67 | "adjustment of symbols due to relaxation (with alignment directives)" | |
68 | "-Tdata 1f -Ttext 0 -relax" | |
69 | "" | |
70 | { "i135409-2.s" } | |
71 | { {readelf --syms i135409-2.d} } | |
72 | "i135409-2.x" | |
73 | } | |
b5f5fd96 NC |
74 | { |
75 | "adjustment of symbols due to relaxation (with a symbol in the deleted region)" | |
76 | "-Tdata 1f -Ttext 0 -relax" | |
77 | "" | |
78 | { "i135409-3.s" } | |
79 | { {objdump -d i135409-3.d} } | |
80 | "i135409-3.x" | |
81 | } | |
fc91707c NC |
82 | { |
83 | "adjusting a 16 bit branch" | |
84 | "-Ti135409-4.t -relax" | |
85 | "" | |
86 | { "i135409-4.s" } | |
87 | { {objdump -d i135409-4.d} } | |
88 | "i135409-4.x" | |
89 | } | |
569006e5 NC |
90 | } |
91 | ||
92 | run_ld_link_tests $mn10300_tests | |
93 | ||
94 | if {!([istarget "am3*-*-*"])} { | |
95 | return | |
96 | } | |
97 | ||
98 | set am33_tests { | |
99 | { | |
100 | "difference of two same-section symbols (in a shared library)" | |
101 | "-shared" | |
bfff1642 | 102 | "" |
569006e5 NC |
103 | { "i112045-2.s" } |
104 | { {objdump -R i112045-2.d} } | |
105 | "i112045-2.x" | |
bfff1642 NC |
106 | } |
107 | } | |
108 | ||
109 | run_ld_link_tests $am33_tests | |
110 | ||
111 | proc i126256-test { } { | |
112 | global CC | |
113 | global ld | |
114 | global srcdir | |
115 | global subdir | |
116 | ||
117 | set tmpdir tmpdir | |
569006e5 NC |
118 | set testname "Seg fault whilst linking one shared library into another when relaxation is enabled." |
119 | ||
120 | if {![is_remote host] && [which $CC] == 0} then { | |
121 | return | |
122 | } | |
bfff1642 NC |
123 | |
124 | if { ![ld_compile "$CC -mrelax -fPIC" $srcdir/$subdir/i126256-1.c $tmpdir/i126256-1.o] } { | |
125 | unresolved $testname | |
126 | return | |
127 | } | |
128 | ||
129 | if { ![ld_compile "$CC -mrelax -fPIC" $srcdir/$subdir/i126256-2.c $tmpdir/i126256-2.o] } { | |
130 | unresolved $testname | |
131 | return | |
132 | } | |
133 | ||
134 | if { ![ld_simple_link $ld $tmpdir/i126256-1.so "-shared $tmpdir/i126256-1.o -e 0"]} { | |
135 | unresolved $testname | |
136 | return | |
137 | } | |
138 | ||
139 | if { ![ld_simple_link $ld $tmpdir/i126256-2.so "--relax -shared $tmpdir/i126256-2.o $tmpdir/i126256-1.so -e 0"]} { | |
140 | fail $testname | |
141 | return | |
142 | } | |
143 | ||
144 | pass $testname | |
145 | } | |
146 | ||
147 | i126256-test |