1#!/bin/sh
2
3# pr23016_2.sh -- check that relocations get written to separate sections
4# when data sections of the same name are not merged.
5
6# Copyright (C) 2018-2020 Free Software Foundation, Inc.
7# Written by Cary Coutant <ccoutant@gmail.com>.
8
9# This file is part of gold.
10
11# This program is free software; you can redistribute it and/or modify
12# it under the terms of the GNU General Public License as published by
13# the Free Software Foundation; either version 3 of the License, or
14# (at your option) any later version.
15
16# This program is distributed in the hope that it will be useful,
17# but WITHOUT ANY WARRANTY; without even the implied warranty of
18# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19# GNU General Public License for more details.
20
21# You should have received a copy of the GNU General Public License
22# along with this program; if not, write to the Free Software
23# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
24# MA 02110-1301, USA.
25
26set -e
27
28awk '
29BEGIN {
30    sect = 0;
31    relocx = 0;
32    relocy = 0;
33  }
34/^Relocation section .\.relaone/ {
35    sect += 1;
36  }
37/R_X86_64_64.*x \+ 0/ {
38    relocx += sect;
39  }
40/R_X86_64_64.*y \+ 0/ {
41    relocy = sect;
42  }
43END {
44    if (relocx != 1)
45      {
46	printf "Relocation for x should be in first relocation section.\n";
47	exit 1;
48      }
49    if (relocy != 2)
50      {
51	printf "Relocation for y should be in second relocation section.\n";
52	exit 1;
53      }
54  }
55' pr23016_2.stdout
56
57exit 0
58