1130b656e5
This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long. Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
90 lines
1.3 KiB
Bash
Executable File
90 lines
1.3 KiB
Bash
Executable File
#!/bin/sh
|
|
# $FreeBSD$
|
|
# 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
|