diff options
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/mkdiff_obj | 39 | ||||
-rwxr-xr-x | scripts/mkdiff_obj_bloat | 33 |
2 files changed, 72 insertions, 0 deletions
diff --git a/scripts/mkdiff_obj b/scripts/mkdiff_obj new file mode 100755 index 000000000..a6ec5e602 --- /dev/null +++ b/scripts/mkdiff_obj | |||
@@ -0,0 +1,39 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | filter() { | ||
4 | # sed removes " address: " prefixes which mess up diff | ||
5 | sed $'s/^\\(\t*\\)[ ]*[0-9a-f][0-9a-f]*:[ \t]*/\\1/' \ | ||
6 | | sed 's/__GI_//g' | ||
7 | } | ||
8 | |||
9 | test -d "$1" || exit 1 | ||
10 | test -d "$2" || exit 1 | ||
11 | |||
12 | { | ||
13 | ( | ||
14 | cd "$1" || exit 1 | ||
15 | find -name '*.o' -o -name '*.os' # -o -name '*.so' | ||
16 | ) | ||
17 | ( | ||
18 | cd "$2" || exit 1 | ||
19 | find -name '*.o' -o -name '*.os' # -o -name '*.so' | ||
20 | ) | ||
21 | } | sed 's:^\./::' | sort | uniq | \ | ||
22 | tee LST | \ | ||
23 | ( | ||
24 | IFS='' | ||
25 | while read -r oname; do | ||
26 | if ! test -f "$1/$oname"; then | ||
27 | echo "Only $2/$oname" | ||
28 | continue | ||
29 | fi | ||
30 | if ! test -f "$2/$oname"; then | ||
31 | echo "Only $1/$oname" | ||
32 | continue | ||
33 | fi | ||
34 | diff -q -- "$1/$oname" "$2/$oname" >/dev/null && continue | ||
35 | (cd "$1"; objdump -dr "$oname" | filter >"$oname.disasm") | ||
36 | (cd "$2"; objdump -dr "$oname" | filter >"$oname.disasm") | ||
37 | diff -u "$1/$oname.disasm" "$2/$oname.disasm" | ||
38 | done | ||
39 | ) | ||
diff --git a/scripts/mkdiff_obj_bloat b/scripts/mkdiff_obj_bloat new file mode 100755 index 000000000..63b2c2ee1 --- /dev/null +++ b/scripts/mkdiff_obj_bloat | |||
@@ -0,0 +1,33 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | test -d "$1" || exit 1 | ||
4 | test -d "$2" || exit 1 | ||
5 | |||
6 | { | ||
7 | ( | ||
8 | cd "$1" || exit 1 | ||
9 | find -name '*.o' -o -name '*.os' # -o -name '*.so' | ||
10 | ) | ||
11 | ( | ||
12 | cd "$2" || exit 1 | ||
13 | find -name '*.o' -o -name '*.os' # -o -name '*.so' | ||
14 | ) | ||
15 | } | sed 's:^\./::' | sort | uniq | \ | ||
16 | tee LST | \ | ||
17 | ( | ||
18 | IFS='' | ||
19 | while read -r oname; do | ||
20 | if ! test -f "$1/$oname"; then | ||
21 | echo "Only $2/$oname" | ||
22 | continue | ||
23 | fi | ||
24 | if ! test -f "$2/$oname"; then | ||
25 | echo "Only $1/$oname" | ||
26 | continue | ||
27 | fi | ||
28 | $1/scripts/bloat-o-meter $1/$oname $2/$oname | grep 'otal: 0 byte' >/dev/null && continue | ||
29 | $1/scripts/bloat-o-meter $1/$oname $2/$oname | ||
30 | size $1/$oname $2/$oname | ||
31 | echo | ||
32 | done | ||
33 | ) | ||