Commit b71dca98 authored by Stephen Rothwell's avatar Stephen Rothwell Committed by Michael Ellerman

powerpc: unrel_branch_check.sh: use nm to find symbol value

This is considerably faster then parsing the objdump asm output.  It will
also make the enabling of llvm-objdump a little easier.
Signed-off-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20200812081036.7969-2-sfr@canb.auug.org.au
parent af13a224
......@@ -18,7 +18,7 @@ quiet_cmd_relocs_check = CHKREL $@
ifdef CONFIG_PPC_BOOK3S_64
cmd_relocs_check = \
$(CONFIG_SHELL) $(srctree)/arch/powerpc/tools/relocs_check.sh "$(OBJDUMP)" "$(NM)" "$@" ; \
$(BASH) $(srctree)/arch/powerpc/tools/unrel_branch_check.sh "$(OBJDUMP)" "$@"
$(BASH) $(srctree)/arch/powerpc/tools/unrel_branch_check.sh "$(OBJDUMP)" "$(NM)" "$@"
else
cmd_relocs_check = \
$(CONFIG_SHELL) $(srctree)/arch/powerpc/tools/relocs_check.sh "$(OBJDUMP)" "$(NM)" "$@"
......
......@@ -5,18 +5,15 @@
# This script checks the unrelocated code of a vmlinux for "suspicious"
# branches to relocated code (head_64.S code).
# Have Kbuild supply the path to objdump so we handle cross compilation.
# Have Kbuild supply the path to objdump and nm so we handle cross compilation.
objdump="$1"
vmlinux="$2"
nm="$2"
vmlinux="$3"
#__end_interrupts should be located within the first 64K
kstart=0xc000000000000000
printf -v kend '0x%x' $(( kstart + 0x10000 ))
end_intr=0x$(
$objdump -R -d --start-address="$kstart" --stop-address="$kend" "$vmlinux" 2>/dev/null |
awk '$2 == "<__end_interrupts>:" { print $1 }'
)
end_intr=0x$($nm -p "$vmlinux" |
sed -E -n '/\s+[[:alpha:]]\s+__end_interrupts\s*$/{s///p;q}')
if [ "$end_intr" = "0x" ]; then
exit 0
fi
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment