Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
[linux-2.6-microblaze.git] / arch / powerpc / tools / relocs_check.sh
1 #!/bin/sh
2 # SPDX-License-Identifier: GPL-2.0-or-later
3
4 # Copyright © 2015 IBM Corporation
5
6
7 # This script checks the relocations of a vmlinux for "suspicious"
8 # relocations.
9
10 # based on relocs_check.pl
11 # Copyright © 2009 IBM Corporation
12
13 if [ $# -lt 3 ]; then
14         echo "$0 [path to objdump] [path to nm] [path to vmlinux]" 1>&2
15         exit 1
16 fi
17
18 bad_relocs=$(
19 ${srctree}/scripts/relocs_check.sh "$@" |
20         # These relocations are okay
21         # On PPC64:
22         #       R_PPC64_RELATIVE, R_PPC64_NONE
23         # On PPC:
24         #       R_PPC_RELATIVE, R_PPC_ADDR16_HI,
25         #       R_PPC_ADDR16_HA,R_PPC_ADDR16_LO,
26         #       R_PPC_NONE
27         grep -F -w -v 'R_PPC64_RELATIVE
28 R_PPC64_NONE
29 R_PPC64_UADDR64
30 R_PPC_ADDR16_LO
31 R_PPC_ADDR16_HI
32 R_PPC_ADDR16_HA
33 R_PPC_RELATIVE
34 R_PPC_NONE'
35 )
36
37 if [ -z "$bad_relocs" ]; then
38         exit 0
39 fi
40
41 num_bad=$(echo "$bad_relocs" | wc -l)
42 echo "WARNING: $num_bad bad relocations"
43 echo "$bad_relocs"