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