blob: 6b350e75014c9edfa12ff37a9c2988d55c109af2 [file] [log] [blame]
Stephen Rothwella71aa052015-03-18 16:46:16 +11001#!/bin/sh
Thomas Gleixner2874c5f2019-05-27 08:55:01 +02002# SPDX-License-Identifier: GPL-2.0-or-later
Stephen Rothwella71aa052015-03-18 16:46:16 +11003
4# Copyright © 2015 IBM Corporation
5
Stephen Rothwella71aa052015-03-18 16:46:16 +11006
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
Alexandre Ghiti43e76cd2020-01-18 12:03:35 -050013if [ $# -lt 3 ]; then
14 echo "$0 [path to objdump] [path to nm] [path to vmlinux]" 1>&2
Stephen Rothwella71aa052015-03-18 16:46:16 +110015 exit 1
16fi
17
Stephen Rothwella71aa052015-03-18 16:46:16 +110018bad_relocs=$(
Alexandre Ghiti47981b52023-03-29 06:53:27 +020019${srctree}/scripts/relocs_check.sh "$@" |
Stephen Rothwella71aa052015-03-18 16:46:16 +110020 # These relocations are okay
21 # On PPC64:
22 # R_PPC64_RELATIVE, R_PPC64_NONE
Stephen Rothwella71aa052015-03-18 16:46:16 +110023 # 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
28R_PPC64_NONE
Alexey Kardashevskiyd7997692022-03-09 17:18:22 +110029R_PPC64_UADDR64
Stephen Rothwella71aa052015-03-18 16:46:16 +110030R_PPC_ADDR16_LO
31R_PPC_ADDR16_HI
32R_PPC_ADDR16_HA
33R_PPC_RELATIVE
Alexandre Ghiti47981b52023-03-29 06:53:27 +020034R_PPC_NONE'
Stephen Rothwella71aa052015-03-18 16:46:16 +110035)
36
37if [ -z "$bad_relocs" ]; then
38 exit 0
39fi
40
41num_bad=$(echo "$bad_relocs" | wc -l)
42echo "WARNING: $num_bad bad relocations"
43echo "$bad_relocs"