| #!/bin/sh |
| # compare two object files, in depth. |
| |
| x=$1 |
| y=$2 |
| BOTH="$1 $2" |
| |
| |
| # if they cmp, we're fine. |
| if (cmp $BOTH > /dev/null) |
| then |
| exit 0 |
| fi |
| |
| # otherwise, we must look closer. |
| if (doboth $BOTH size) |
| then |
| echo Sizes ok. |
| else |
| echo Sizes differ: |
| size $BOTH |
| # exit 1 |
| fi |
| |
| if (doboth $BOTH objdump +header) |
| then |
| echo Headers ok. |
| else |
| echo Header differences. |
| # exit 1 |
| fi |
| |
| if (doboth $BOTH objdump +text > /dev/null) |
| then |
| echo Text ok. |
| else |
| echo Text differences. |
| # doboth $BOTH objdump +text |
| # exit 1 |
| fi |
| |
| if (doboth $BOTH objdump +data > /dev/null) |
| then |
| echo Data ok. |
| else |
| echo Data differences. |
| # doboth $BOTH objdump +data |
| # exit 1 |
| fi |
| |
| if (doboth $BOTH objdump +symbols > /dev/null) |
| then |
| echo Symbols ok. |
| else |
| echo -n Symbol differences... |
| |
| if (doboth $BOTH dounsortsymbols) |
| then |
| echo but symbols are simply ordered differently. |
| # echo Now what to do about relocs'?' |
| # exit 1 |
| else |
| echo and symbols differ in content. |
| exit 1 |
| fi |
| fi |
| |
| # of course, if there were symbol diffs, then the reloc symbol indexes |
| # will be off. |
| |
| if (doboth $BOTH objdump -r > /dev/null) |
| then |
| echo Reloc ok. |
| else |
| echo -n Reloc differences... |
| |
| if (doboth $BOTH dounsortreloc) |
| then |
| echo but relocs are simply ordered differently. |
| else |
| echo and relocs differ in content. |
| exit 1 |
| fi |
| fi |
| |
| exit |
| |
| # eof |