]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gold/testsuite/pr21430.sh
cad3fd0f270d7550cc5882b2c0ebf2acba5cc5e2
[thirdparty/binutils-gdb.git] / gold / testsuite / pr21430.sh
1 #!/bin/sh
2
3 # pr21430.sh -- test the position of a relaxed section.
4
5 # Copyright (C) 2017-2022 Free Software Foundation, Inc.
6 # Written by Igor Kudrin <ikudrin@accesssoftek.com>
7
8 # This file is part of gold.
9
10 # This program is free software; you can redistribute it and/or modify
11 # it under the terms of the GNU General Public License as published by
12 # the Free Software Foundation; either version 3 of the License, or
13 # (at your option) any later version.
14
15 # This program is distributed in the hope that it will be useful,
16 # but WITHOUT ANY WARRANTY; without even the implied warranty of
17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 # GNU General Public License for more details.
19
20 # You should have received a copy of the GNU General Public License
21 # along with this program; if not, write to the Free Software
22 # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
23 # MA 02110-1301, USA.
24
25 file=pr21430.stdout
26
27 get_symbol_address()
28 {
29 symbol=$1
30 var=$2
31 pattern="\<$symbol\>"
32 found=`grep "$pattern" "$file"`
33 if test -z "$found"; then
34 echo "Symbol '$symbol' not found in file $file."
35 echo "Search pattern: $pattern"
36 echo ""
37 echo "Actual output below:"
38 cat "$file"
39 exit 1
40 fi
41 eval $var="0x0`echo $found | awk '{ print $1 }'`"
42 }
43
44 get_symbol_size()
45 {
46 symbol=$1
47 var=$2
48 pattern="\<$symbol\>"
49 found=`grep "$pattern" "$file"`
50 if test -z "$found"; then
51 echo "Symbol '$symbol' not found in file $file."
52 echo "Search pattern: $pattern"
53 echo ""
54 echo "Actual output below:"
55 cat "$file"
56 exit 1
57 fi
58 eval $var="0x0`echo $found | awk '{ print $2 }'`"
59 }
60
61 get_symbol_address "bar" bar_address
62 get_symbol_size "bar" bar_size
63 get_symbol_address "foo" foo_address
64
65 if test $(($foo_address)) -lt $(($bar_address+$bar_size)); then
66 echo "'foo' should not overlap the content of 'bar'."
67 echo ""
68 echo "Actual output below:"
69 cat "$file"
70 exit 1
71 fi
72
73 exit 0