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 | ||
25 | set am33_tests { | |
26 | { | |
27 | "am33 string merging" | |
28 | "--relax -Ttext 0x8000000" | |
29 | "" | |
30 | { "i36434.s" "i36434-2.s" } | |
31 | { {objdump -dz i36434.d} } | |
32 | "i36434.x" | |
33 | } | |
34 | { | |
35 | "difference of two symbols" | |
36 | "-Ttext 0" | |
37 | "" | |
38 | { "i112045-1.s" } | |
39 | { {objdump -d i112045-1.d} } | |
40 | "i112045-1.x" | |
41 | } | |
42 | { | |
43 | "(shared) difference of two symbols" | |
44 | "-shared" | |
45 | "" | |
46 | { "i112045-2.s" } | |
47 | { {objdump -R i112045-2.d} } | |
48 | "i112045-2.x" | |
49 | } | |
50 | { | |
51 | "adjustment of symbols due to relaxation" | |
52 | "-Tdata 1f -relax" | |
53 | "" | |
54 | { "i135409.s" } | |
55 | { {readelf --syms i135409.d } } | |
56 | "i135409.x" | |
57 | } | |
58 | } | |
59 | ||
60 | run_ld_link_tests $am33_tests | |
61 | ||
62 | proc i126256-test { } { | |
63 | global CC | |
64 | global ld | |
65 | global srcdir | |
66 | global subdir | |
67 | ||
68 | set tmpdir tmpdir | |
69 | set testname "Issue 126256 - seg fault whilst linking one shared library into another when relaxation is enabled." | |
70 | ||
71 | if { ![ld_compile "$CC -mrelax -fPIC" $srcdir/$subdir/i126256-1.c $tmpdir/i126256-1.o] } { | |
72 | unresolved $testname | |
73 | return | |
74 | } | |
75 | ||
76 | if { ![ld_compile "$CC -mrelax -fPIC" $srcdir/$subdir/i126256-2.c $tmpdir/i126256-2.o] } { | |
77 | unresolved $testname | |
78 | return | |
79 | } | |
80 | ||
81 | if { ![ld_simple_link $ld $tmpdir/i126256-1.so "-shared $tmpdir/i126256-1.o -e 0"]} { | |
82 | unresolved $testname | |
83 | return | |
84 | } | |
85 | ||
86 | if { ![ld_simple_link $ld $tmpdir/i126256-2.so "--relax -shared $tmpdir/i126256-2.o $tmpdir/i126256-1.so -e 0"]} { | |
87 | fail $testname | |
88 | return | |
89 | } | |
90 | ||
91 | pass $testname | |
92 | } | |
93 | ||
94 | i126256-test |