diff --git a/contrib/ChangeLog b/contrib/ChangeLog index 6ea5ebf24f5d57234b21c367402e125dae22c4dc..778f380eddc436b83c24f6805540688f7b198771 100644 --- a/contrib/ChangeLog +++ b/contrib/ChangeLog @@ -1,3 +1,7 @@ +2009-08-18 Alexandre Oliva <aoliva@redhat.com> + + * compare-debug: Drop .eh_frame relocations too. + 2009-08-18 H.J. Lu <hongjiu.lu@intel.com> PR testsuite/40704 diff --git a/contrib/compare-debug b/contrib/compare-debug index e91e05d576e5065b3ed2774c184458028b4ce935..9864ee91f307d176f03201370c491687a0afbcb7 100755 --- a/contrib/compare-debug +++ b/contrib/compare-debug @@ -107,41 +107,33 @@ else trap 'rm -f "$1.$suf1" "$2.$suf2" "$1.$suf3" "$2.$suf4"' 0 1 2 15 - if (objcopy -v) 2>&1 | grep -e "--remove-section" > /dev/null; then - objcopy --remove-section .eh_frame "$1.$suf1" "$1.$suf3" - cmp "$1.$suf1" "$1.$suf3" > /dev/null - cmp1=$? - - objcopy --remove-section .eh_frame "$2.$suf2" "$2.$suf4" - cmp "$2.$suf2" "$2.$suf4" > /dev/null - cmp2=$? + echo stripping off .eh_frame, then retrying >&2 + if (objcopy -v) 2>&1 | grep -e "--remove-section" > /dev/null; then + objcopy --remove-section .eh_frame --remove-section .rel.eh_frame --remove-section .rela.eh_frame "$1.$suf1" "$1.$suf3" mv "$1.$suf3" "$1.$suf1" + + objcopy --remove-section .eh_frame --remove-section .rel.eh_frame --remove-section .rela.eh_frame "$2.$suf2" "$2.$suf4" mv "$2.$suf4" "$2.$suf2" elif (strip --help) 2>&1 | grep -e --remove-section > /dev/null; then cp "$1.$suf1" "$1.$suf3" - strip --remove-section .eh_frame "$1.$suf3" + strip --remove-section .eh_frame --remove-section .rel.eh_frame --remove-section .rela.eh_frame "$1.$suf3" + mv "$1.$suf3" "$1.$suf1" cp "$2.$suf2" "$2.$suf4" - strip --remove-section .eh_frame "$2.$suf4" - - cmp "$1.$suf1" "$1.$suf3" > /dev/null - cmp1=$? - - cmp "$2.$suf2" "$2.$suf4" > /dev/null - cmp2=$? - - mv "$1.$suf3" "$1.$suf1" + strip --remove-section .eh_frame --remove-section .rel.eh_frame --remove-section .rela.eh_frame "$2.$suf4" mv "$2.$suf4" "$2.$suf2" + else + echo failed to strip off .eh_frame >&2 fi trap 'rm -f "$1.$suf1" "$2.$suf2"' 0 1 2 15 - fi - if test "x$cmp1" != "x$cmp2" && cmp "$1.$suf1" "$2.$suf2"; then - status=0 - else - status=1 + if cmp "$1.$suf1" "$2.$suf2"; then + status=0 + else + status=1 + fi fi fi