Add MN10300 linker relaxation support for symbol differences
[external/binutils.git] / ld / testsuite / ld-mn10300 / mn10300.exp
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