doobjcmp 1.3 KB

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