Commit 7fa0e6db authored by Masahiro Yamada's avatar Masahiro Yamada Committed by Michal Marek
Browse files

scripts: objdiff: support directories for the augument of record command



For example,

  $ scripts/objdiff record init drivers/usb

disassembles all the objects under init and drivers/usb directories.

This feature would be useful when we change various files under the
specific directory.

Signed-off-by: default avatarMasahiro Yamada <yamada.m@jp.panasonic.com>
Acked-by: default avatarJason Cooper <jason@lakedaemon.net>
Signed-off-by: default avatarMichal Marek <mmarek@suse.cz>
parent 8ac28bee
Loading
Loading
Loading
Loading
+22 −11
Original line number Original line Diff line number Diff line
@@ -36,7 +36,7 @@ TMPD=$SRCTREE/.tmp_objdiff


usage() {
usage() {
	echo >&2 "Usage: $0 <command> <args>"
	echo >&2 "Usage: $0 <command> <args>"
	echo >&2 "  record    <list of object files>"
	echo >&2 "  record    <list of object files or directories>"
	echo >&2 "  diff      <commitA> <commitB>"
	echo >&2 "  diff      <commitA> <commitB>"
	echo >&2 "  clean     all | <commit>"
	echo >&2 "  clean     all | <commit>"
	exit 1
	exit 1
@@ -54,6 +54,18 @@ get_output_dir() {
	echo $TMPD/$CMT${dir#$SRCTREE}
	echo $TMPD/$CMT${dir#$SRCTREE}
}
}


do_objdump() {
	dir=$(get_output_dir $1)
	base=${1##*/}
	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
}

dorecord() {
dorecord() {
	[ $# -eq 0 ] && usage
	[ $# -eq 0 ] && usage


@@ -63,16 +75,15 @@ dorecord() {


	OBJDUMP="${CROSS_COMPILE}objdump"
	OBJDUMP="${CROSS_COMPILE}objdump"


	for f in $FILES; do
	for d in $FILES; do
		dir=$(get_output_dir $f)
		if [ -d "$d" ]; then
		base=${f##*/}
			for f in $(find $d -name '*.o')
		dis=$dir/${base%.o}.dis
			do

				do_objdump $f
		[ ! -d "$dir" ] && mkdir -p $dir
			done

		else
		# remove addresses for a cleaner diff
			do_objdump $d
		# http://dummdida.tumblr.com/post/60924060451/binary-diff-between-libc-from-scientificlinux-and
		fi
		$OBJDUMP -D $f | sed "s/^[[:space:]]\+[0-9a-f]\+//" > $dis
	done
	done
}
}