public inbox for linux-kbuild@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/7] scripts: objdiff: various clean-up, fix and new features
@ 2014-05-30 11:11 Masahiro Yamada
  2014-05-30 11:11 ` [PATCH 1/7] scripts: objdiff: get the path to .tmp_objdiff more simply Masahiro Yamada
                   ` (7 more replies)
  0 siblings, 8 replies; 14+ messages in thread
From: Masahiro Yamada @ 2014-05-30 11:11 UTC (permalink / raw)
  To: linux-kbuild; +Cc: Masahiro Yamada, Jason Cooper

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Cc: Jason Cooper <jason@lakedaemon.net>

Masahiro Yamada (7):
  scripts: objdiff: get the path to .tmp_objdiff more simply
  scripts: objdiff: direct error messages to stderr
  scripts: objdiff: remove unnecessary code
  scripts: objdiff: improve path flexibility for record command
  scripts: objdiff: change the extension of disassembly from .o to .dis
  scripts: objdiff: fix a comment
  scripts: objdiff: support directories for the augument of record
    command

 scripts/objdiff | 74 +++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 46 insertions(+), 28 deletions(-)

-- 
1.9.1


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH 1/7] scripts: objdiff: get the path to .tmp_objdiff more simply
  2014-05-30 11:11 [PATCH 0/7] scripts: objdiff: various clean-up, fix and new features Masahiro Yamada
@ 2014-05-30 11:11 ` Masahiro Yamada
  2014-05-30 11:11 ` [PATCH 2/7] scripts: objdiff: direct error messages to stderr Masahiro Yamada
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 14+ messages in thread
From: Masahiro Yamada @ 2014-05-30 11:11 UTC (permalink / raw)
  To: linux-kbuild; +Cc: Masahiro Yamada, Jason Cooper

This commit is a minor refactoring.

Temporary files for objdiff are stored in .tmp_objdiff directory
which is located at the top directory.

To get the path to this directory,

  SRCTREE=`git rev-parse --show-toplevel`
  TMPD=$SRCTREE/.tmp_objdiff

seems easier to understand than

  GIT_DIR=`git rev-parse --git-dir`
  TMPD=${GIT_DIR%git}tmp_objdiff

Besides, it is not always necessary to create .tmp_objdiff dicrectory.
It should be created only for "record" command.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Cc: Jason Cooper <jason@lakedaemon.net>
---
 scripts/objdiff | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/scripts/objdiff b/scripts/objdiff
index b3e4f10..b8f7fc6 100755
--- a/scripts/objdiff
+++ b/scripts/objdiff
@@ -25,17 +25,15 @@
 #
 # Note: 'make mrproper' will also remove .tmp_objdiff
 
-GIT_DIR="`git rev-parse --git-dir`"
+SRCTREE=$(git rev-parse --show-toplevel 2>/dev/null)
 
-if [ -d "$GIT_DIR" ]; then
-	TMPD="${GIT_DIR%git}tmp_objdiff"
-
-	[ -d "$TMPD" ] || mkdir "$TMPD"
-else
-	echo "ERROR: git directory not found."
+if [ -z "$SRCTREE" ]; then
+	echo "ERROR: Not a git repository."
 	exit 1
 fi
 
+TMPD=$SRCTREE/.tmp_objdiff
+
 usage() {
 	echo "Usage: $0 <command> <args>"
 	echo "  record    <list of object files>"
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 2/7] scripts: objdiff: direct error messages to stderr
  2014-05-30 11:11 [PATCH 0/7] scripts: objdiff: various clean-up, fix and new features Masahiro Yamada
  2014-05-30 11:11 ` [PATCH 1/7] scripts: objdiff: get the path to .tmp_objdiff more simply Masahiro Yamada
@ 2014-05-30 11:11 ` Masahiro Yamada
  2014-06-06 15:28   ` Jason Cooper
  2014-05-30 11:11 ` [PATCH 3/7] scripts: objdiff: remove unnecessary code Masahiro Yamada
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 14+ messages in thread
From: Masahiro Yamada @ 2014-05-30 11:11 UTC (permalink / raw)
  To: linux-kbuild; +Cc: Masahiro Yamada, Jason Cooper

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Cc: Jason Cooper <jason@lakedaemon.net>
---
 scripts/objdiff | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/scripts/objdiff b/scripts/objdiff
index b8f7fc6..cc67365 100755
--- a/scripts/objdiff
+++ b/scripts/objdiff
@@ -28,17 +28,17 @@
 SRCTREE=$(git rev-parse --show-toplevel 2>/dev/null)
 
 if [ -z "$SRCTREE" ]; then
-	echo "ERROR: Not a git repository."
+	echo >&2 "ERROR: Not a git repository."
 	exit 1
 fi
 
 TMPD=$SRCTREE/.tmp_objdiff
 
 usage() {
-	echo "Usage: $0 <command> <args>"
-	echo "  record    <list of object files>"
-	echo "  diff      <commitA> <commitB>"
-	echo "  clean     all | <commit>"
+	echo >&2 "Usage: $0 <command> <args>"
+	echo >&2 "  record    <list of object files>"
+	echo >&2 "  diff      <commitA> <commitB>"
+	echo >&2 "  clean     all | <commit>"
 	exit 1
 }
 
@@ -88,12 +88,12 @@ dodiff() {
 	DSTD="$TMPD/$DST"
 
 	if [ ! -d "$SRCD" ]; then
-		echo "ERROR: $SRCD doesn't exist"
+		echo >&2 "ERROR: $SRCD doesn't exist"
 		exit 1
 	fi
 
 	if [ ! -d "$DSTD" ]; then
-		echo "ERROR: $DSTD doesn't exist"
+		echo >&2 "ERROR: $DSTD doesn't exist"
 		exit 1
 	fi
 
@@ -112,7 +112,7 @@ doclean() {
 		if [ -d "$TMPD/$CMT" ]; then
 			rm -rf $TMPD/$CMT
 		else
-			echo "$CMT not found"
+			echo >&2 "$CMT not found"
 		fi
 	fi
 }
@@ -133,7 +133,7 @@ case "$1" in
 		doclean $*
 		;;
 	*)
-		echo "Unrecognized command '$1'"
+		echo >&2 "Unrecognized command '$1'"
 		exit 1
 		;;
 esac
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 3/7] scripts: objdiff: remove unnecessary code
  2014-05-30 11:11 [PATCH 0/7] scripts: objdiff: various clean-up, fix and new features Masahiro Yamada
  2014-05-30 11:11 ` [PATCH 1/7] scripts: objdiff: get the path to .tmp_objdiff more simply Masahiro Yamada
  2014-05-30 11:11 ` [PATCH 2/7] scripts: objdiff: direct error messages to stderr Masahiro Yamada
@ 2014-05-30 11:11 ` Masahiro Yamada
  2014-05-30 11:11 ` [PATCH 4/7] scripts: objdiff: improve path flexibility for record command Masahiro Yamada
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 14+ messages in thread
From: Masahiro Yamada @ 2014-05-30 11:11 UTC (permalink / raw)
  To: linux-kbuild; +Cc: Masahiro Yamada, Jason Cooper

The directories for objdump is created by the code
a few lines below:

  [ ! -d "$OBJDIFFD/$dn" ] && mkdir -p "$OBJDIFFD/$dn"

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Cc: Jason Cooper <jason@lakedaemon.net>
---
 scripts/objdiff | 2 --
 1 file changed, 2 deletions(-)

diff --git a/scripts/objdiff b/scripts/objdiff
index cc67365..6e72f96 100755
--- a/scripts/objdiff
+++ b/scripts/objdiff
@@ -52,8 +52,6 @@ dorecord() {
 	OBJDUMP="${CROSS_COMPILE}objdump"
 	OBJDIFFD="$TMPD/$CMT"
 
-	[ ! -d "$OBJDIFFD" ] && mkdir -p "$OBJDIFFD"
-
 	for f in $FILES; do
 		dn="${f%/*}"
 		bn="${f##*/}"
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 4/7] scripts: objdiff: improve path flexibility for record command
  2014-05-30 11:11 [PATCH 0/7] scripts: objdiff: various clean-up, fix and new features Masahiro Yamada
                   ` (2 preceding siblings ...)
  2014-05-30 11:11 ` [PATCH 3/7] scripts: objdiff: remove unnecessary code Masahiro Yamada
@ 2014-05-30 11:11 ` Masahiro Yamada
  2014-06-06 15:33   ` Jason Cooper
  2014-05-30 11:11 ` [PATCH 5/7] scripts: objdiff: change the extension of disassembly from .o to .dis Masahiro Yamada
                   ` (3 subsequent siblings)
  7 siblings, 1 reply; 14+ messages in thread
From: Masahiro Yamada @ 2014-05-30 11:11 UTC (permalink / raw)
  To: linux-kbuild; +Cc: Masahiro Yamada, Jason Cooper

Prior to this commit, scripts/objdiff expected to be run at the top
directory and only the reltive path of objects.

This commit provides more flexibility in terms of object path:

[1] scripts/objdiff can be run at any directory

For example,

  $ scripts/objdiff record init/main.o

and

  $ cd init; ../scripts/objdiff record main.o

produce the same result.

[2] Support absolute path for objects

  $ scripts/objdiff record /home/foo/bar/linux/init/main.o

work as well.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Cc: Jason Cooper <jason@lakedaemon.net>
---
 scripts/objdiff | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git a/scripts/objdiff b/scripts/objdiff
index 6e72f96..499eb4b 100755
--- a/scripts/objdiff
+++ b/scripts/objdiff
@@ -25,7 +25,7 @@
 #
 # Note: 'make mrproper' will also remove .tmp_objdiff
 
-SRCTREE=$(git rev-parse --show-toplevel 2>/dev/null)
+SRCTREE=$(cd $(git rev-parse --show-toplevel 2>/dev/null); pwd)
 
 if [ -z "$SRCTREE" ]; then
 	echo >&2 "ERROR: Not a git repository."
@@ -42,6 +42,18 @@ usage() {
 	exit 1
 }
 
+get_output_dir() {
+	dir=${1%/*}
+
+	if [ "$dir" = "$1" ]; then
+		dir=.
+	fi
+
+	dir=$(cd $dir; pwd)
+
+	echo $TMPD/$CMT${dir#$SRCTREE}
+}
+
 dorecord() {
 	[ $# -eq 0 ] && usage
 
@@ -50,18 +62,16 @@ dorecord() {
 	CMT="`git rev-parse --short HEAD`"
 
 	OBJDUMP="${CROSS_COMPILE}objdump"
-	OBJDIFFD="$TMPD/$CMT"
 
 	for f in $FILES; do
-		dn="${f%/*}"
+		dir=$(get_output_dir $f)
 		bn="${f##*/}"
 
-		[ ! -d "$OBJDIFFD/$dn" ] && mkdir -p "$OBJDIFFD/$dn"
+		[ ! -d "$dir" ] && mkdir -p $dir
 
 		# remove addresses for a more clear diff
 		# http://dummdida.tumblr.com/post/60924060451/binary-diff-between-libc-from-scientificlinux-and
-		$OBJDUMP -D "$f" | sed "s/^[[:space:]]\+[0-9a-f]\+//" \
-			>"$OBJDIFFD/$dn/$bn"
+		$OBJDUMP -D $f | sed "s/^[[:space:]]\+[0-9a-f]\+//" > $dir/$bn
 	done
 }
 
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 5/7] scripts: objdiff: change the extension of disassembly from .o to .dis
  2014-05-30 11:11 [PATCH 0/7] scripts: objdiff: various clean-up, fix and new features Masahiro Yamada
                   ` (3 preceding siblings ...)
  2014-05-30 11:11 ` [PATCH 4/7] scripts: objdiff: improve path flexibility for record command Masahiro Yamada
@ 2014-05-30 11:11 ` Masahiro Yamada
  2014-05-30 11:11 ` [PATCH 6/7] scripts: objdiff: fix a comment Masahiro Yamada
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 14+ messages in thread
From: Masahiro Yamada @ 2014-05-30 11:11 UTC (permalink / raw)
  To: linux-kbuild; +Cc: Masahiro Yamada, Jason Cooper

Prior to this commit, the command "scripts/objdiff record path/to/*.o"
disassembles the given object into ".tmp_objdiff/path/to/*.o" file.

The problem here is that recorded disassemblies are lost if we run
"make clean" because "make clean" removes all the *.o files.
Disassembled code should be dumped into *.dis instead of *.o file.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Cc: Jason Cooper <jason@lakedaemon.net>
---
 scripts/objdiff | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/scripts/objdiff b/scripts/objdiff
index 499eb4b..c997e44 100755
--- a/scripts/objdiff
+++ b/scripts/objdiff
@@ -65,13 +65,14 @@ dorecord() {
 
 	for f in $FILES; do
 		dir=$(get_output_dir $f)
-		bn="${f##*/}"
+		base=${f##*/}
+		dis=$dir/${base%.o}.dis
 
 		[ ! -d "$dir" ] && mkdir -p $dir
 
 		# remove addresses for a more clear diff
 		# http://dummdida.tumblr.com/post/60924060451/binary-diff-between-libc-from-scientificlinux-and
-		$OBJDUMP -D $f | sed "s/^[[:space:]]\+[0-9a-f]\+//" > $dir/$bn
+		$OBJDUMP -D $f | sed "s/^[[:space:]]\+[0-9a-f]\+//" > $dis
 	done
 }
 
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 6/7] scripts: objdiff: fix a comment
  2014-05-30 11:11 [PATCH 0/7] scripts: objdiff: various clean-up, fix and new features Masahiro Yamada
                   ` (4 preceding siblings ...)
  2014-05-30 11:11 ` [PATCH 5/7] scripts: objdiff: change the extension of disassembly from .o to .dis Masahiro Yamada
@ 2014-05-30 11:11 ` Masahiro Yamada
  2014-06-06 15:35   ` Jason Cooper
  2014-05-30 11:11 ` [PATCH 7/7] scripts: objdiff: support directories for the augument of record command Masahiro Yamada
  2014-06-06 15:38 ` [PATCH 0/7] scripts: objdiff: various clean-up, fix and new features Jason Cooper
  7 siblings, 1 reply; 14+ messages in thread
From: Masahiro Yamada @ 2014-05-30 11:11 UTC (permalink / raw)
  To: linux-kbuild; +Cc: Masahiro Yamada, Jason Cooper

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Cc: Jason Cooper <jason@lakedaemon.net>
---
 scripts/objdiff | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/objdiff b/scripts/objdiff
index c997e44..4d3a197 100755
--- a/scripts/objdiff
+++ b/scripts/objdiff
@@ -70,7 +70,7 @@ dorecord() {
 
 		[ ! -d "$dir" ] && mkdir -p $dir
 
-		# remove addresses for a more clear diff
+		# remove addresses for a clearer diff
 		# http://dummdida.tumblr.com/post/60924060451/binary-diff-between-libc-from-scientificlinux-and
 		$OBJDUMP -D $f | sed "s/^[[:space:]]\+[0-9a-f]\+//" > $dis
 	done
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 7/7] scripts: objdiff: support directories for the augument of record command
  2014-05-30 11:11 [PATCH 0/7] scripts: objdiff: various clean-up, fix and new features Masahiro Yamada
                   ` (5 preceding siblings ...)
  2014-05-30 11:11 ` [PATCH 6/7] scripts: objdiff: fix a comment Masahiro Yamada
@ 2014-05-30 11:11 ` Masahiro Yamada
  2014-06-06 15:38 ` [PATCH 0/7] scripts: objdiff: various clean-up, fix and new features Jason Cooper
  7 siblings, 0 replies; 14+ messages in thread
From: Masahiro Yamada @ 2014-05-30 11:11 UTC (permalink / raw)
  To: linux-kbuild; +Cc: Masahiro Yamada, Jason Cooper

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: Masahiro Yamada <yamada.m@jp.panasonic.com>
Cc: Jason Cooper <jason@lakedaemon.net>
---
 scripts/objdiff | 33 ++++++++++++++++++++++-----------
 1 file changed, 22 insertions(+), 11 deletions(-)

diff --git a/scripts/objdiff b/scripts/objdiff
index 4d3a197..661f6fe 100755
--- a/scripts/objdiff
+++ b/scripts/objdiff
@@ -36,7 +36,7 @@ TMPD=$SRCTREE/.tmp_objdiff
 
 usage() {
 	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 "  clean     all | <commit>"
 	exit 1
@@ -54,6 +54,18 @@ get_output_dir() {
 	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 clearer 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() {
 	[ $# -eq 0 ] && usage
 
@@ -63,16 +75,15 @@ dorecord() {
 
 	OBJDUMP="${CROSS_COMPILE}objdump"
 
-	for f in $FILES; do
-		dir=$(get_output_dir $f)
-		base=${f##*/}
-		dis=$dir/${base%.o}.dis
-
-		[ ! -d "$dir" ] && mkdir -p $dir
-
-		# remove addresses for a clearer diff
-		# http://dummdida.tumblr.com/post/60924060451/binary-diff-between-libc-from-scientificlinux-and
-		$OBJDUMP -D $f | sed "s/^[[:space:]]\+[0-9a-f]\+//" > $dis
+	for d in $FILES; do
+		if [ -d "$d" ]; then
+			for f in $(find $d -name '*.o')
+			do
+				do_objdump $f
+			done
+		else
+			do_objdump $d
+		fi
 	done
 }
 
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/7] scripts: objdiff: direct error messages to stderr
  2014-05-30 11:11 ` [PATCH 2/7] scripts: objdiff: direct error messages to stderr Masahiro Yamada
@ 2014-06-06 15:28   ` Jason Cooper
  0 siblings, 0 replies; 14+ messages in thread
From: Jason Cooper @ 2014-06-06 15:28 UTC (permalink / raw)
  To: Masahiro Yamada; +Cc: linux-kbuild

Masahiro,

Thanks for the patch series!

On Fri, May 30, 2014 at 08:11:50PM +0900, Masahiro Yamada wrote:
> Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
> Cc: Jason Cooper <jason@lakedaemon.net>
> ---
>  scripts/objdiff | 18 +++++++++---------
>  1 file changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/scripts/objdiff b/scripts/objdiff
> index b8f7fc6..cc67365 100755
> --- a/scripts/objdiff
> +++ b/scripts/objdiff
> @@ -28,17 +28,17 @@
>  SRCTREE=$(git rev-parse --show-toplevel 2>/dev/null)
>  
>  if [ -z "$SRCTREE" ]; then
> -	echo "ERROR: Not a git repository."
> +	echo >&2 "ERROR: Not a git repository."
>  	exit 1
>  fi
>  
>  TMPD=$SRCTREE/.tmp_objdiff
>  
>  usage() {
> -	echo "Usage: $0 <command> <args>"
> -	echo "  record    <list of object files>"
> -	echo "  diff      <commitA> <commitB>"
> -	echo "  clean     all | <commit>"
> +	echo >&2 "Usage: $0 <command> <args>"
> +	echo >&2 "  record    <list of object files>"
> +	echo >&2 "  diff      <commitA> <commitB>"
> +	echo >&2 "  clean     all | <commit>"

I must admit I've never seen it written this way, but my CDO [1]
definitely likes it :)

>  	exit 1
>  }
>  
> @@ -88,12 +88,12 @@ dodiff() {
>  	DSTD="$TMPD/$DST"
>  
>  	if [ ! -d "$SRCD" ]; then
> -		echo "ERROR: $SRCD doesn't exist"
> +		echo >&2 "ERROR: $SRCD doesn't exist"
>  		exit 1
>  	fi
>  
>  	if [ ! -d "$DSTD" ]; then
> -		echo "ERROR: $DSTD doesn't exist"
> +		echo >&2 "ERROR: $DSTD doesn't exist"
>  		exit 1
>  	fi
>  
> @@ -112,7 +112,7 @@ doclean() {
>  		if [ -d "$TMPD/$CMT" ]; then
>  			rm -rf $TMPD/$CMT
>  		else
> -			echo "$CMT not found"
> +			echo >&2 "$CMT not found"
>  		fi
>  	fi
>  }
> @@ -133,7 +133,7 @@ case "$1" in
>  		doclean $*
>  		;;
>  	*)
> -		echo "Unrecognized command '$1'"
> +		echo >&2 "Unrecognized command '$1'"
>  		exit 1
>  		;;
>  esac


thx,

Jason.

[1] CDO: OCD with the letters neatly arranged in alphabetical order.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 4/7] scripts: objdiff: improve path flexibility for record command
  2014-05-30 11:11 ` [PATCH 4/7] scripts: objdiff: improve path flexibility for record command Masahiro Yamada
@ 2014-06-06 15:33   ` Jason Cooper
  0 siblings, 0 replies; 14+ messages in thread
From: Jason Cooper @ 2014-06-06 15:33 UTC (permalink / raw)
  To: Masahiro Yamada; +Cc: linux-kbuild

On Fri, May 30, 2014 at 08:11:52PM +0900, Masahiro Yamada wrote:
> Prior to this commit, scripts/objdiff expected to be run at the top
> directory and only the reltive path of objects.

nit: s/reltive/relative/

thx,

Jason.

> This commit provides more flexibility in terms of object path:
> 
> [1] scripts/objdiff can be run at any directory
> 
> For example,
> 
>   $ scripts/objdiff record init/main.o
> 
> and
> 
>   $ cd init; ../scripts/objdiff record main.o
> 
> produce the same result.
> 
> [2] Support absolute path for objects
> 
>   $ scripts/objdiff record /home/foo/bar/linux/init/main.o
> 
> work as well.
> 
> Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
> Cc: Jason Cooper <jason@lakedaemon.net>
> ---
>  scripts/objdiff | 22 ++++++++++++++++------
>  1 file changed, 16 insertions(+), 6 deletions(-)
> 
> diff --git a/scripts/objdiff b/scripts/objdiff
> index 6e72f96..499eb4b 100755
> --- a/scripts/objdiff
> +++ b/scripts/objdiff
> @@ -25,7 +25,7 @@
>  #
>  # Note: 'make mrproper' will also remove .tmp_objdiff
>  
> -SRCTREE=$(git rev-parse --show-toplevel 2>/dev/null)
> +SRCTREE=$(cd $(git rev-parse --show-toplevel 2>/dev/null); pwd)
>  
>  if [ -z "$SRCTREE" ]; then
>  	echo >&2 "ERROR: Not a git repository."
> @@ -42,6 +42,18 @@ usage() {
>  	exit 1
>  }
>  
> +get_output_dir() {
> +	dir=${1%/*}
> +
> +	if [ "$dir" = "$1" ]; then
> +		dir=.
> +	fi
> +
> +	dir=$(cd $dir; pwd)
> +
> +	echo $TMPD/$CMT${dir#$SRCTREE}
> +}
> +
>  dorecord() {
>  	[ $# -eq 0 ] && usage
>  
> @@ -50,18 +62,16 @@ dorecord() {
>  	CMT="`git rev-parse --short HEAD`"
>  
>  	OBJDUMP="${CROSS_COMPILE}objdump"
> -	OBJDIFFD="$TMPD/$CMT"
>  
>  	for f in $FILES; do
> -		dn="${f%/*}"
> +		dir=$(get_output_dir $f)
>  		bn="${f##*/}"
>  
> -		[ ! -d "$OBJDIFFD/$dn" ] && mkdir -p "$OBJDIFFD/$dn"
> +		[ ! -d "$dir" ] && mkdir -p $dir
>  
>  		# remove addresses for a more clear diff
>  		# http://dummdida.tumblr.com/post/60924060451/binary-diff-between-libc-from-scientificlinux-and
> -		$OBJDUMP -D "$f" | sed "s/^[[:space:]]\+[0-9a-f]\+//" \
> -			>"$OBJDIFFD/$dn/$bn"
> +		$OBJDUMP -D $f | sed "s/^[[:space:]]\+[0-9a-f]\+//" > $dir/$bn
>  	done
>  }
>  
> -- 
> 1.9.1
> 

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 6/7] scripts: objdiff: fix a comment
  2014-05-30 11:11 ` [PATCH 6/7] scripts: objdiff: fix a comment Masahiro Yamada
@ 2014-06-06 15:35   ` Jason Cooper
  0 siblings, 0 replies; 14+ messages in thread
From: Jason Cooper @ 2014-06-06 15:35 UTC (permalink / raw)
  To: Masahiro Yamada; +Cc: linux-kbuild

On Fri, May 30, 2014 at 08:11:54PM +0900, Masahiro Yamada wrote:
> Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
> Cc: Jason Cooper <jason@lakedaemon.net>
> ---
>  scripts/objdiff | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/scripts/objdiff b/scripts/objdiff
> index c997e44..4d3a197 100755
> --- a/scripts/objdiff
> +++ b/scripts/objdiff
> @@ -70,7 +70,7 @@ dorecord() {
>  
>  		[ ! -d "$dir" ] && mkdir -p $dir
>  
> -		# remove addresses for a more clear diff
> +		# remove addresses for a clearer diff

perhaps 'for a cleaner diff' ?  I have no strong opinion either way.

thx,

Jason.

>  		# http://dummdida.tumblr.com/post/60924060451/binary-diff-between-libc-from-scientificlinux-and
>  		$OBJDUMP -D $f | sed "s/^[[:space:]]\+[0-9a-f]\+//" > $dis
>  	done
> -- 
> 1.9.1
> 

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 0/7] scripts: objdiff: various clean-up, fix and new features
  2014-05-30 11:11 [PATCH 0/7] scripts: objdiff: various clean-up, fix and new features Masahiro Yamada
                   ` (6 preceding siblings ...)
  2014-05-30 11:11 ` [PATCH 7/7] scripts: objdiff: support directories for the augument of record command Masahiro Yamada
@ 2014-06-06 15:38 ` Jason Cooper
  2014-06-09  2:21   ` Masahiro Yamada
  7 siblings, 1 reply; 14+ messages in thread
From: Jason Cooper @ 2014-06-06 15:38 UTC (permalink / raw)
  To: Masahiro Yamada; +Cc: linux-kbuild

Masahiro,

On Fri, May 30, 2014 at 08:11:48PM +0900, Masahiro Yamada wrote:
> Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
> Cc: Jason Cooper <jason@lakedaemon.net>
> 
> Masahiro Yamada (7):
>   scripts: objdiff: get the path to .tmp_objdiff more simply
>   scripts: objdiff: direct error messages to stderr
>   scripts: objdiff: remove unnecessary code
>   scripts: objdiff: improve path flexibility for record command
>   scripts: objdiff: change the extension of disassembly from .o to .dis
>   scripts: objdiff: fix a comment
>   scripts: objdiff: support directories for the augument of record
>     command
> 
>  scripts/objdiff | 74 +++++++++++++++++++++++++++++++++++----------------------
>  1 file changed, 46 insertions(+), 28 deletions(-)

Other than the few minor things I noted on the individual patches,

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

Great patch series!

thx,

Jason.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 0/7] scripts: objdiff: various clean-up, fix and new features
  2014-06-06 15:38 ` [PATCH 0/7] scripts: objdiff: various clean-up, fix and new features Jason Cooper
@ 2014-06-09  2:21   ` Masahiro Yamada
  2014-06-10 10:04     ` Michal Marek
  0 siblings, 1 reply; 14+ messages in thread
From: Masahiro Yamada @ 2014-06-09  2:21 UTC (permalink / raw)
  To: Jason Cooper; +Cc: linux-kbuild

Hi Jason,

On Fri, 6 Jun 2014 11:38:51 -0400
Jason Cooper <jason@lakedaemon.net> wrote:

> Masahiro,
> 
> On Fri, May 30, 2014 at 08:11:48PM +0900, Masahiro Yamada wrote:
> > Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
> > Cc: Jason Cooper <jason@lakedaemon.net>
> > 
> > Masahiro Yamada (7):
> >   scripts: objdiff: get the path to .tmp_objdiff more simply
> >   scripts: objdiff: direct error messages to stderr
> >   scripts: objdiff: remove unnecessary code
> >   scripts: objdiff: improve path flexibility for record command
> >   scripts: objdiff: change the extension of disassembly from .o to .dis
> >   scripts: objdiff: fix a comment
> >   scripts: objdiff: support directories for the augument of record
> >     command
> > 
> >  scripts/objdiff | 74 +++++++++++++++++++++++++++++++++++----------------------
> >  1 file changed, 46 insertions(+), 28 deletions(-)
> 
> Other than the few minor things I noted on the individual patches,
> 
> Acked-by: Jason Cooper <jason@lakedaemon.net>
> 
> Great patch series!
> 
> thx,
> 
> Jason.

Thanks for your review!

I've sent v2 with minor fixes:
  - s/reltive/relative/
  - s/clearer/cleaner/


Best Regards
Masahiro Yamada


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 0/7] scripts: objdiff: various clean-up, fix and new features
  2014-06-09  2:21   ` Masahiro Yamada
@ 2014-06-10 10:04     ` Michal Marek
  0 siblings, 0 replies; 14+ messages in thread
From: Michal Marek @ 2014-06-10 10:04 UTC (permalink / raw)
  To: Masahiro Yamada, Jason Cooper; +Cc: linux-kbuild

On 2014-06-09 04:21, Masahiro Yamada wrote:
> Hi Jason,
> 
> On Fri, 6 Jun 2014 11:38:51 -0400
> Jason Cooper <jason@lakedaemon.net> wrote:
> 
>> Masahiro,
>>
>> On Fri, May 30, 2014 at 08:11:48PM +0900, Masahiro Yamada wrote:
>>> Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
>>> Cc: Jason Cooper <jason@lakedaemon.net>
>>>
>>> Masahiro Yamada (7):
>>>   scripts: objdiff: get the path to .tmp_objdiff more simply
>>>   scripts: objdiff: direct error messages to stderr
>>>   scripts: objdiff: remove unnecessary code
>>>   scripts: objdiff: improve path flexibility for record command
>>>   scripts: objdiff: change the extension of disassembly from .o to .dis
>>>   scripts: objdiff: fix a comment
>>>   scripts: objdiff: support directories for the augument of record
>>>     command
>>>
>>>  scripts/objdiff | 74 +++++++++++++++++++++++++++++++++++----------------------
>>>  1 file changed, 46 insertions(+), 28 deletions(-)
>>
>> Other than the few minor things I noted on the individual patches,
>>
>> Acked-by: Jason Cooper <jason@lakedaemon.net>
>>
>> Great patch series!
>>
>> thx,
>>
>> Jason.
> 
> Thanks for your review!
> 
> I've sent v2 with minor fixes:
>   - s/reltive/relative/
>   - s/clearer/cleaner/

And I just applied v2 to kbuild.git#misc.

Michal


^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2014-06-10 10:04 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-30 11:11 [PATCH 0/7] scripts: objdiff: various clean-up, fix and new features Masahiro Yamada
2014-05-30 11:11 ` [PATCH 1/7] scripts: objdiff: get the path to .tmp_objdiff more simply Masahiro Yamada
2014-05-30 11:11 ` [PATCH 2/7] scripts: objdiff: direct error messages to stderr Masahiro Yamada
2014-06-06 15:28   ` Jason Cooper
2014-05-30 11:11 ` [PATCH 3/7] scripts: objdiff: remove unnecessary code Masahiro Yamada
2014-05-30 11:11 ` [PATCH 4/7] scripts: objdiff: improve path flexibility for record command Masahiro Yamada
2014-06-06 15:33   ` Jason Cooper
2014-05-30 11:11 ` [PATCH 5/7] scripts: objdiff: change the extension of disassembly from .o to .dis Masahiro Yamada
2014-05-30 11:11 ` [PATCH 6/7] scripts: objdiff: fix a comment Masahiro Yamada
2014-06-06 15:35   ` Jason Cooper
2014-05-30 11:11 ` [PATCH 7/7] scripts: objdiff: support directories for the augument of record command Masahiro Yamada
2014-06-06 15:38 ` [PATCH 0/7] scripts: objdiff: various clean-up, fix and new features Jason Cooper
2014-06-09  2:21   ` Masahiro Yamada
2014-06-10 10:04     ` Michal Marek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox