diff mbox

scripts: objdiff: Ignore debug info when comparing

Message ID 20170216211820.4337-1-stephen.boyd@linaro.org (mailing list archive)
State New, archived
Headers show

Commit Message

Stephen Boyd Feb. 16, 2017, 9:18 p.m. UTC
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.

Cc: Masahiro Yamada <yamada.m@jp.panasonic.com>
Cc: Jason Cooper <jason@lakedaemon.net>
Signed-off-by: Stephen Boyd <stephen.boyd@linaro.org>
---
 scripts/objdiff | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Jason Cooper Feb. 17, 2017, 1:58 p.m. UTC | #1
Hi Stephen,

On Thu, Feb 16, 2017 at 01:18:20PM -0800, Stephen Boyd wrote:
> 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.
> 
> Cc: Masahiro Yamada <yamada.m@jp.panasonic.com>
> Cc: Jason Cooper <jason@lakedaemon.net>
> Signed-off-by: Stephen Boyd <stephen.boyd@linaro.org>

Reviewed-by: Jason Cooper <jason@lakedaemon.net>

I'm glad it's useful!

thx,

Jason.
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Masahiro Yamada Feb. 26, 2017, 6:12 a.m. UTC | #2
Hi.

2017-02-17 6:18 GMT+09:00 Stephen Boyd <stephen.boyd@linaro.org>:
> 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.
>
> Cc: Masahiro Yamada <yamada.m@jp.panasonic.com>
> Cc: Jason Cooper <jason@lakedaemon.net>
> Signed-off-by: Stephen Boyd <stephen.boyd@linaro.org>


Great!

Reviewed-by: Masahiro Yamada <yamada.masahiro@socionext.com>


BTW, I left Panasonic two years ago,
so the old address yamada.m@jp.panasonic.com
is not working any more.

Please drop the "Cc: Masahiro Yamada <yamada.m@jp.panasonic.com>"
when this patch is applied.


Thanks!
Masahiro Yamada March 11, 2017, 5:48 a.m. UTC | #3
2017-02-17 6:18 GMT+09:00 Stephen Boyd <stephen.boyd@linaro.org>:
> 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.
>
> Cc: Masahiro Yamada <yamada.m@jp.panasonic.com>
> Cc: Jason Cooper <jason@lakedaemon.net>
> Signed-off-by: Stephen Boyd <stephen.boyd@linaro.org>


Applied to linux-kbuild/misc with Jason's Reviewed-by.


Thanks!


Best Regards
Masahiro Yamada
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/scripts/objdiff b/scripts/objdiff
index 62e51dae2138..4fb5d6796893 100755
--- a/scripts/objdiff
+++ b/scripts/objdiff
@@ -57,13 +57,15 @@  get_output_dir() {
 do_objdump() {
 	dir=$(get_output_dir $1)
 	base=${1##*/}
+	stripped=$dir/${base%.o}.stripped
 	dis=$dir/${base%.o}.dis
 
 	[ ! -d "$dir" ] && mkdir -p $dir
 
 	# remove addresses for a cleaner diff
 	# http://dummdida.tumblr.com/post/60924060451/binary-diff-between-libc-from-scientificlinux-and
-	$OBJDUMP -D $1 | sed "s/^[[:space:]]\+[0-9a-f]\+//" > $dis
+	$STRIP -g $1 -R __bug_table -R .note -R .comment -o $stripped
+	$OBJDUMP -D $stripped | sed -e "s/^[[:space:]]\+[0-9a-f]\+//" -e "s:^$stripped:$1:" > $dis
 }
 
 dorecord() {
@@ -73,6 +75,7 @@  dorecord() {
 
 	CMT="`git rev-parse --short HEAD`"
 
+	STRIP="${CROSS_COMPILE}strip"
 	OBJDUMP="${CROSS_COMPILE}objdump"
 
 	for d in $FILES; do