OpenCores
URL https://opencores.org/ocsvn/open8_urisc/open8_urisc/trunk

Subversion Repositories open8_urisc

[/] [open8_urisc/] [trunk/] [gnu/] [binutils/] [ld/] [testsuite/] [ld-undefined/] [weak-undef.exp] - Blame information for rev 262

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 120 khays
# Test handling of weak undefined symbols
2
#   Copyright 2001, 2002, 2004, 2005, 2007, 2010, 2011
3
#   Free Software Foundation, Inc.
4
#
5
# This file is part of the GNU Binutils.
6
#
7
# This program is free software; you can redistribute it and/or modify
8
# it under the terms of the GNU General Public License as published by
9
# the Free Software Foundation; either version 3 of the License, or
10
# (at your option) any later version.
11
#
12
# This program is distributed in the hope that it will be useful,
13
# but WITHOUT ANY WARRANTY; without even the implied warranty of
14
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
# GNU General Public License for more details.
16
#
17
# You should have received a copy of the GNU General Public License
18
# along with this program; if not, write to the Free Software
19
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
20
# MA 02110-1301, USA.
21
 
22
set testname "weak undefined symbols"
23
 
24
# This test only works for ELF targets.  It ought to work for some
25
# a.out targets, but it doesn't.
26
 
27
if { ![istarget *-*-sysv4*] \
28
     && ![istarget *-*-unixware*] \
29
     && ![istarget *-*-elf*] \
30
     && ![istarget *-*-eabi*] \
31
     && ![istarget hppa*64*-*-hpux*] \
32
     && ![istarget *-*-linux*] \
33
     && ![istarget *-*-gnu*] \
34
     && ![istarget *-*-irix5*] \
35
     && ![istarget *-*-irix6*] \
36
     && ![is_pecoff_format] \
37
     && ![istarget *-*-solaris2*] } then {
38
    unsupported $testname
39
    return
40
}
41
 
42
if { [istarget *-*-linux*aout*] \
43
     || [istarget *-*-linux*oldld*] } {
44
    unsupported $testname
45
    return
46
}
47
 
48
# Weak symbols are broken for non-i386 PE targets.
49
if {! [istarget i?86-*-*]} {
50
    setup_xfail *-*-pe*
51
}
52
 
53
setup_xfail pj-*-*
54
 
55
if {! [ld_assemble $as $srcdir/$subdir/weak-undef.s tmpdir/weak-undef.o]} then {
56
    # It's OK if .weak doesn't work on this target.
57
    unresolved $testname
58
    return
59
}
60
 
61
# The linker should accept references to undefined weaks without error,
62
# and resolve them to zero.
63
 
64
set output_regexp \
65
".*Contents of section .data:.*0000 00000000 11111111.*"
66
 
67
if {! [ld_simple_link $ld tmpdir/weak-undef "$flags tmpdir/weak-undef.o -T $srcdir/$subdir/weak-undef.t"] } then {
68
    fail $testname
69
} else {
70
    if {![is_remote host] && [which $objdump] == 0} then {
71
        unresolved $testname
72
        return
73
    }
74
 
75
    set exec_output [run_host_cmd "$objdump" "-s tmpdir/weak-undef"]
76
    set exec_output [prune_warnings $exec_output]
77
    verbose -log $exec_output
78
 
79
    if {[regexp $output_regexp $exec_output]} then {
80
        pass $testname
81
    } else {
82
        fail $testname
83
    }
84
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.