History

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.

Masahiro Yamada committed 12 years ago

Commit 7fa0e6d1 parent 8ac28be1 file · +22 −11Browse files

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

Unified · Split

scripts/objdiff+22−11
@@ -36,7 +36,7 @@ TMPD=$SRCTREE/.tmp_objdiff · 35 unmodified lines
36 36
37usage() {37usage() {
38 echo >&2 "Usage: $0 <command> <args>"38 echo >&2 "Usage: $0 <command> <args>"
39 echo >&2 " record <list of object files>"39 echo >&2 " record <list of object files or directories>"
40 echo >&2 " diff <commitA> <commitB>"40 echo >&2 " diff <commitA> <commitB>"
41 echo >&2 " clean all | <commit>"41 echo >&2 " clean all | <commit>"
42 exit 142 exit 1
@@ -54,6 +54,18 @@ get_output_dir() { · 11 unmodified lines
54 echo $TMPD/$CMT${dir#$SRCTREE}54 echo $TMPD/$CMT${dir#$SRCTREE}
55}55}
56 56
57do_objdump() {
58 dir=$(get_output_dir $1)
59 base=${1##*/}
60 dis=$dir/${base%.o}.dis
61
62 [ ! -d "$dir" ] && mkdir -p $dir
63
64 # remove addresses for a cleaner diff
65 # 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}
68
57dorecord() {69dorecord() {
58 [ $# -eq 0 ] && usage70 [ $# -eq 0 ] && usage
59 71
@@ -63,16 +75,15 @@ dorecord() { · 3 unmodified lines
63 75
64 OBJDUMP="${CROSS_COMPILE}objdump"76 OBJDUMP="${CROSS_COMPILE}objdump"
65 77
66 for f in $FILES; do78 for d in $FILES; do
67 dir=$(get_output_dir $f)79 if [ -d "$d" ]; then
68 base=${f##*/}80 for f in $(find $d -name '*.o')
69 dis=$dir/${base%.o}.dis81 do
70 82 do_objdump $f
71 [ ! -d "$dir" ] && mkdir -p $dir83 done
72 84 else
73 # remove addresses for a cleaner diff85 do_objdump $d
74 # http://dummdida.tumblr.com/post/60924060451/binary-diff-between-libc-from-scientificlinux-and86 fi
75 $OBJDUMP -D $f | sed "s/^[[:space:]]\+[0-9a-f]\+//" > $dis
76 done87 done
77}88}
78 89