|
Last change
on this file since 3232 was 2725, checked in by Bruno Cornec, 14 years ago |
- Update mindi-busybox to 1.18.3 to avoid problems with the tar command which is now failing on recent versions with busybox 1.7.3
|
-
Property svn:executable
set to
*
|
|
File size:
1.0 KB
|
| Line | |
|---|
| 1 | #!/bin/sh
|
|---|
| 2 |
|
|---|
| 3 | usage() {
|
|---|
| 4 | echo "Usage: ${0##*/} DIR1 DIR2"
|
|---|
| 5 | echo
|
|---|
| 6 | echo "Compares all object files recursivelty found in DIR1 and DIR2."
|
|---|
| 7 | echo "Prints diff of their disassembly."
|
|---|
| 8 | echo
|
|---|
| 9 | exit $1
|
|---|
| 10 | }
|
|---|
| 11 |
|
|---|
| 12 | filter() {
|
|---|
| 13 | # sed removes " address: " prefixes which mess up diff
|
|---|
| 14 | sed $'s/^\\(\t*\\)[ ]*[0-9a-f][0-9a-f]*:[ \t]*/\\1/' \
|
|---|
| 15 | | sed 's/__GI_//g'
|
|---|
| 16 | }
|
|---|
| 17 |
|
|---|
| 18 | test -d "$1" || usage 1
|
|---|
| 19 | test -d "$2" || usage 1
|
|---|
| 20 |
|
|---|
| 21 | {
|
|---|
| 22 | (
|
|---|
| 23 | cd "$1" || exit 1
|
|---|
| 24 | find -name '*.o' # -o -name '*.os' # -o -name '*.so'
|
|---|
| 25 | )
|
|---|
| 26 | (
|
|---|
| 27 | cd "$2" || exit 1
|
|---|
| 28 | find -name '*.o' # -o -name '*.os' # -o -name '*.so'
|
|---|
| 29 | )
|
|---|
| 30 | } | sed 's:^\./::' | sort | uniq | \
|
|---|
| 31 | (
|
|---|
| 32 | while IFS='' read -r oname; do
|
|---|
| 33 | if ! test -f "$1/$oname"; then
|
|---|
| 34 | echo "Only $2/$oname"
|
|---|
| 35 | continue
|
|---|
| 36 | fi
|
|---|
| 37 | if ! test -f "$2/$oname"; then
|
|---|
| 38 | echo "Only $1/$oname"
|
|---|
| 39 | continue
|
|---|
| 40 | fi
|
|---|
| 41 | diff -q -- "$1/$oname" "$2/$oname" >/dev/null && continue
|
|---|
| 42 | (cd "$1" && { size "$oname"; objdump -dr "$oname" | filter; } >"$oname.disasm")
|
|---|
| 43 | (cd "$2" && { size "$oname"; objdump -dr "$oname" | filter; } >"$oname.disasm")
|
|---|
| 44 | diff -u -- "$1/$oname.disasm" "$2/$oname.disasm"
|
|---|
| 45 | done
|
|---|
| 46 | )
|
|---|
Note:
See
TracBrowser
for help on using the repository browser.