Home | History | Annotate | Download | only in testsuite
      1 #!/bin/sh
      2 
      3 # arm_unaligned_reloc.sh -- test ARM unaligned static data relocations.
      4 
      5 # Copyright (C) 2011-2016 Free Software Foundation, Inc.
      6 # Written by Doug Kwan <dougkwan (at] google.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 # This file goes with the assembler source file arm_unaligned_reloc.s,
     26 # that is assembled and linked as a dummy executable.  We want to check
     27 # it is okay to do unaligned static data relocations.
     28 
     29 check()
     30 {
     31     if ! grep -q -e "$2" "$1"
     32     then
     33 	echo "Did not find pattern \"$2\" in $1:"
     34 	echo "   $2"
     35 	echo ""
     36 	echo "Actual disassembly below:"
     37 	cat "$1"
     38 	exit 1
     39     fi
     40 }
     41 
     42 check arm_unaligned_reloc.stdout "^00009000 <x>:$"
     43 check arm_unaligned_reloc.stdout "^0000a001 <abs32>:$"
     44 check arm_unaligned_reloc.stdout '^[	 ]*a001:[	 ]*00009001[	 ].*$'
     45 check arm_unaligned_reloc.stdout "^0000a005 <rel32>:"
     46 check arm_unaligned_reloc.stdout "^[	 ]*a005:[	 ]*ffffeffc[	 ].*$"
     47 check arm_unaligned_reloc.stdout "^0000a009 <abs16>:"
     48 check arm_unaligned_reloc.stdout "^[	 ]*a009:[	 ]*00009001[	 ].*$"
     49 
     50 check arm_unaligned_reloc_r.stdout "^[	 ]*1:[	 ]*00000001[	 ].*$"
     51 check arm_unaligned_reloc_r.stdout "^[	]*1: R_ARM_ABS32[	]*.data.0$"
     52 check arm_unaligned_reloc_r.stdout "^[	 ]*5:[	 ]*00000001[	 ].*$"
     53 check arm_unaligned_reloc_r.stdout "^[	]*5: R_ARM_REL32[	]*.data.0$"
     54 check arm_unaligned_reloc_r.stdout "^[	 ]*9:[	 ]*00000001[	 ].*$"
     55 check arm_unaligned_reloc_r.stdout "^[	]*9: R_ARM_ABS16[	]*.data.0$"
     56 
     57 exit 0
     58