source: trunk/binutils/ld/testsuite/ld-scripts/weak.exp

Last change on this file was 610, checked in by bird, 22 years ago

This commit was generated by cvs2svn to compensate for changes in r609,
which included commits to RCS files with non-trunk default branches.

  • Property cvs2svn:cvs-rev set to 1.1.1.2
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 2.1 KB
Line 
1# Test weak symbols.
2# By Ian Lance Taylor, Cygnus Solutions.
3# Copyright 2001
4# Free Software Foundation, Inc.
5#
6# This file 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 2 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19
20set testname "weak symbols"
21
22# This test only works for ELF targets. It ought to work for some
23# a.out targets, but it doesn't.
24if ![is_elf_format] {
25 return
26}
27
28
29if {! [ld_assemble $as $srcdir/$subdir/weak1.s tmpdir/weak1.o]
30 || ! [ld_assemble $as $srcdir/$subdir/weak2.s tmpdir/weak2.o]} then {
31 # It's OK if .weak doesn't work on this target.
32 unresolved $testname
33 return
34}
35
36set weak_regexp_big \
37".*Contents of section .text:.*1000 00001008 0000200c 12121212 34343434.*Contents of section .data:.*2000 00001008 0000200c 56565656 78787878.*"
38
39set weak_regexp_little \
40".*Contents of section .text:.*1000 08100000 0c200000 12121212 34343434.*Contents of section .data:.*2000 08100000 0c200000 56565656 78787878.*"
41
42if {! [ld_simple_link $ld tmpdir/weak "$flags -T $srcdir/$subdir/weak.t tmpdir/weak1.o tmpdir/weak2.o"] } then {
43 fail $testname
44} else {
45 if {[which $objdump] == 0} then {
46 unresolved $testname
47 return
48 }
49
50 verbose -log "$objdump -s tmpdir/weak"
51 catch "exec $objdump -s tmpdir/weak" exec_output
52 set exec_output [prune_warnings $exec_output]
53 verbose -log $exec_output
54
55 if {[regexp $weak_regexp_big $exec_output] \
56 || [regexp $weak_regexp_little $exec_output] } then {
57 pass $testname
58 } else {
59 fail $testname
60 }
61}
Note: See TracBrowser for help on using the repository browser.