162306a36Sopenharmony_ci#!/bin/sh 262306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-or-later 362306a36Sopenharmony_ci 462306a36Sopenharmony_ci# Copyright © 2015 IBM Corporation 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci# This script checks the relocations of a vmlinux for "suspicious" 862306a36Sopenharmony_ci# relocations. 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci# based on relocs_check.pl 1162306a36Sopenharmony_ci# Copyright © 2009 IBM Corporation 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ciif [ $# -lt 3 ]; then 1462306a36Sopenharmony_ci echo "$0 [path to objdump] [path to nm] [path to vmlinux]" 1>&2 1562306a36Sopenharmony_ci exit 1 1662306a36Sopenharmony_cifi 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_cibad_relocs=$( 1962306a36Sopenharmony_ci${srctree}/scripts/relocs_check.sh "$@" | 2062306a36Sopenharmony_ci # These relocations are okay 2162306a36Sopenharmony_ci # On PPC64: 2262306a36Sopenharmony_ci # R_PPC64_RELATIVE, R_PPC64_NONE 2362306a36Sopenharmony_ci # On PPC: 2462306a36Sopenharmony_ci # R_PPC_RELATIVE, R_PPC_ADDR16_HI, 2562306a36Sopenharmony_ci # R_PPC_ADDR16_HA,R_PPC_ADDR16_LO, 2662306a36Sopenharmony_ci # R_PPC_NONE 2762306a36Sopenharmony_ci grep -F -w -v 'R_PPC64_RELATIVE 2862306a36Sopenharmony_ciR_PPC64_NONE 2962306a36Sopenharmony_ciR_PPC64_UADDR64 3062306a36Sopenharmony_ciR_PPC_ADDR16_LO 3162306a36Sopenharmony_ciR_PPC_ADDR16_HI 3262306a36Sopenharmony_ciR_PPC_ADDR16_HA 3362306a36Sopenharmony_ciR_PPC_RELATIVE 3462306a36Sopenharmony_ciR_PPC_NONE' 3562306a36Sopenharmony_ci) 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ciif [ -z "$bad_relocs" ]; then 3862306a36Sopenharmony_ci exit 0 3962306a36Sopenharmony_cifi 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_cinum_bad=$(echo "$bad_relocs" | wc -l) 4262306a36Sopenharmony_ciecho "WARNING: $num_bad bad relocations" 4362306a36Sopenharmony_ciecho "$bad_relocs" 44