]> git.ipfire.org Git - thirdparty/linux.git/blob - scripts/relocs_check.sh
bcache: port block device access to files
[thirdparty/linux.git] / scripts / relocs_check.sh
1 #!/bin/sh
2 # SPDX-License-Identifier: GPL-2.0-or-later
3
4 # Get a list of all the relocations, remove from it the relocations
5 # that are known to be legitimate and return this list to arch specific
6 # script that will look for suspicious relocations.
7
8 objdump="$1"
9 nm="$2"
10 vmlinux="$3"
11
12 # Remove from the possible bad relocations those that match an undefined
13 # weak symbol which will result in an absolute relocation to 0.
14 # Weak unresolved symbols are of that form in nm output:
15 # " w _binary__btf_vmlinux_bin_end"
16 undef_weak_symbols=$($nm "$vmlinux" | awk '$1 ~ /w/ { print $2 }')
17
18 $objdump -R "$vmlinux" |
19 grep -E '\<R_' |
20 ([ "$undef_weak_symbols" ] && grep -F -w -v "$undef_weak_symbols" || cat)