Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

scripts: objdiff: Ignore debug info when comparing

If the kernel is configured to be built with debug symbols, or
has bug tables, comparing files may not work if line numbers
change. This makes comparing object files with these options
harder to do. Let's strip out the debug info and drop the
__bug_table here so that we don't see false positives. There may
be other things to drop later, and it may be architecture
specific, but this works for me with my ARM64 build.

Signed-off-by: Stephen Boyd <stephen.boyd@linaro.org>
Reviewed-by: Jason Cooper <jason@lakedaemon.net>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

authored by

Stephen Boyd and committed by
Masahiro Yamada
65ba6fa4 c1ae3cfa

+4 -1
+4 -1
scripts/objdiff
··· 57 57 do_objdump() { 58 58 dir=$(get_output_dir $1) 59 59 base=${1##*/} 60 + stripped=$dir/${base%.o}.stripped 60 61 dis=$dir/${base%.o}.dis 61 62 62 63 [ ! -d "$dir" ] && mkdir -p $dir 63 64 64 65 # remove addresses for a cleaner diff 65 66 # http://dummdida.tumblr.com/post/60924060451/binary-diff-between-libc-from-scientificlinux-and 66 - $OBJDUMP -D $1 | sed "s/^[[:space:]]\+[0-9a-f]\+//" > $dis 67 + $STRIP -g $1 -R __bug_table -R .note -R .comment -o $stripped 68 + $OBJDUMP -D $stripped | sed -e "s/^[[:space:]]\+[0-9a-f]\+//" -e "s:^$stripped:$1:" > $dis 67 69 } 68 70 69 71 dorecord() { ··· 75 73 76 74 CMT="`git rev-parse --short HEAD`" 77 75 76 + STRIP="${CROSS_COMPILE}strip" 78 77 OBJDUMP="${CROSS_COMPILE}objdump" 79 78 80 79 for d in $FILES; do