Source
50
50
fi
51
51
52
52
dir=$(cd $dir; pwd)
53
53
54
54
echo $TMPD/$CMT${dir#$SRCTREE}
55
55
}
56
56
57
57
do_objdump() {
58
58
dir=$(get_output_dir $1)
59
59
base=${1##*/}
60
+
stripped=$dir/${base%.o}.stripped
60
61
dis=$dir/${base%.o}.dis
61
62
62
63
[ ! -d "$dir" ] && mkdir -p $dir
63
64
64
65
# remove addresses for a cleaner diff
65
66
# 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
+
$STRIP -g $1 -R __bug_table -R .note -R .comment -o $stripped
68
+
$OBJDUMP -D $stripped | sed -e "s/^[[:space:]]\+[0-9a-f]\+//" -e "s:^$stripped:$1:" > $dis
67
69
}
68
70
69
71
dorecord() {
70
72
[ $# -eq 0 ] && usage
71
73
72
74
FILES="$*"
73
75
74
76
CMT="`git rev-parse --short HEAD`"
75
77
78
+
STRIP="${CROSS_COMPILE}strip"
76
79
OBJDUMP="${CROSS_COMPILE}objdump"
77
80
78
81
for d in $FILES; do
79
82
if [ -d "$d" ]; then
80
83
for f in $(find $d -name '*.o')
81
84
do
82
85
do_objdump $f
83
86
done
84
87
else
85
88
do_objdump $d