History

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.

Stephen Boyd committed 9 years ago

Commit 65ba6fa1 parent c1ae3cf1 file · +4 −1Browse files

Showing the changes to scripts/objdiff (1 of 1 file). Show all

Unified · Split

scripts/objdiff+4−1
@@ -57,13 +57,15 @@ get_output_dir() { · 56 unmodified lines
57do_objdump() {57do_objdump() {
58 dir=$(get_output_dir $1)58 dir=$(get_output_dir $1)
59 base=${1##*/}59 base=${1##*/}
60 stripped=$dir/${base%.o}.stripped
60 dis=$dir/${base%.o}.dis61 dis=$dir/${base%.o}.dis
61 62
62 [ ! -d "$dir" ] && mkdir -p $dir63 [ ! -d "$dir" ] && mkdir -p $dir
63 64
64 # remove addresses for a cleaner diff65 # remove addresses for a cleaner diff
65 # http://dummdida.tumblr.com/post/60924060451/binary-diff-between-libc-from-scientificlinux-and66 # http://dummdida.tumblr.com/post/60924060451/binary-diff-between-libc-from-scientificlinux-and
66 $OBJDUMP -D $1 | sed "s/^[[:space:]]\+[0-9a-f]\+//" > $dis67 $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
69dorecord() {71dorecord() {
@@ -73,6 +75,7 @@ dorecord() { · 3 unmodified lines
73 75
74 CMT="`git rev-parse --short HEAD`"76 CMT="`git rev-parse --short HEAD`"
75 77
78 STRIP="${CROSS_COMPILE}strip"
76 OBJDUMP="${CROSS_COMPILE}objdump"79 OBJDUMP="${CROSS_COMPILE}objdump"
77 80
78 for d in $FILES; do81 for d in $FILES; do