Commit 527d86558eb45edd1543e38d77cd1e1f09936ec1

Authored by Stephen Boyd
Committed by Tom Rini
1 parent e43f74ac0b

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.

[ Import Linux commit: 65ba6fa439e7c3cbf97de9dce9e7a3390ae2638c ]

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>

Showing 1 changed file with 4 additions and 1 deletions Side-by-side Diff

... ... @@ -57,13 +57,15 @@
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() {
... ... @@ -73,6 +75,7 @@
73 75  
74 76 CMT="`git rev-parse --short HEAD`"
75 77  
  78 + STRIP="${CROSS_COMPILE}strip"
76 79 OBJDUMP="${CROSS_COMPILE}objdump"
77 80  
78 81 for d in $FILES; do