Commit 7fa0e6db3cedc9b70d68a4170f1352e2b1aa0f90
Committed by
Michal Marek
1 parent
8ac28bee76
Exists in
ti-lsk-linux-4.1.y
and in
10 other branches
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: Masahiro Yamada <yamada.m@jp.panasonic.com> Acked-by: Jason Cooper <jason@lakedaemon.net> Signed-off-by: Michal Marek <mmarek@suse.cz>
Showing 1 changed file with 22 additions and 11 deletions Side-by-side Diff
scripts/objdiff
... | ... | @@ -36,7 +36,7 @@ |
36 | 36 | |
37 | 37 | usage() { |
38 | 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 | 40 | echo >&2 " diff <commitA> <commitB>" |
41 | 41 | echo >&2 " clean all | <commit>" |
42 | 42 | exit 1 |
... | ... | @@ -54,6 +54,18 @@ |
54 | 54 | echo $TMPD/$CMT${dir#$SRCTREE} |
55 | 55 | } |
56 | 56 | |
57 | +do_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 | + | |
57 | 69 | dorecord() { |
58 | 70 | [ $# -eq 0 ] && usage |
59 | 71 | |
... | ... | @@ -63,16 +75,15 @@ |
63 | 75 | |
64 | 76 | OBJDUMP="${CROSS_COMPILE}objdump" |
65 | 77 | |
66 | - for f in $FILES; do | |
67 | - dir=$(get_output_dir $f) | |
68 | - base=${f##*/} | |
69 | - dis=$dir/${base%.o}.dis | |
70 | - | |
71 | - [ ! -d "$dir" ] && mkdir -p $dir | |
72 | - | |
73 | - # remove addresses for a cleaner diff | |
74 | - # http://dummdida.tumblr.com/post/60924060451/binary-diff-between-libc-from-scientificlinux-and | |
75 | - $OBJDUMP -D $f | sed "s/^[[:space:]]\+[0-9a-f]\+//" > $dis | |
78 | + for d in $FILES; do | |
79 | + if [ -d "$d" ]; then | |
80 | + for f in $(find $d -name '*.o') | |
81 | + do | |
82 | + do_objdump $f | |
83 | + done | |
84 | + else | |
85 | + do_objdump $d | |
86 | + fi | |
76 | 87 | done |
77 | 88 | } |
78 | 89 |