1 #!/bin/sh 2 # compare two object files, in depth. 3 4 x=$1 5 y=$2 6 BOTH="$1 $2" 7 8 9 # if they cmp, we're fine. 10 if (cmp $BOTH > /dev/null) 11 then 12 exit 0 13 fi 14 15 # otherwise, we must look closer. 16 if (doboth $BOTH size) 17 then 18 echo Sizes ok. 19 else 20 echo Sizes differ: 21 size $BOTH 22 # exit 1 23 fi 24 25 if (doboth $BOTH objdump +header) 26 then 27 echo Headers ok. 28 else 29 echo Header differences. 30 # exit 1 31 fi 32 33 if (doboth $BOTH objdump +text > /dev/null) 34 then 35 echo Text ok. 36 else 37 echo Text differences. 38 # doboth $BOTH objdump +text 39 # exit 1 40 fi 41 42 if (doboth $BOTH objdump +data > /dev/null) 43 then 44 echo Data ok. 45 else 46 echo Data differences. 47 # doboth $BOTH objdump +data 48 # exit 1 49 fi 50 51 if (doboth $BOTH objdump +symbols > /dev/null) 52 then 53 echo Symbols ok. 54 else 55 echo -n Symbol differences... 56 57 if (doboth $BOTH dounsortsymbols) 58 then 59 echo but symbols are simply ordered differently. 60 # echo Now what to do about relocs'?' 61 # exit 1 62 else 63 echo and symbols differ in content. 64 exit 1 65 fi 66 fi 67 68 # of course, if there were symbol diffs, then the reloc symbol indexes 69 # will be off. 70 71 if (doboth $BOTH objdump -r > /dev/null) 72 then 73 echo Reloc ok. 74 else 75 echo -n Reloc differences... 76 77 if (doboth $BOTH dounsortreloc) 78 then 79 echo but relocs are simply ordered differently. 80 else 81 echo and relocs differ in content. 82 exit 1 83 fi 84 fi 85 86 exit 87 88 # eof 89