#!/bin/sh # $OpenBSD: doobjcmp,v 1.2 1998/02/15 18:50:12 niklas Exp $ # 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