aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraoliva <>2009-08-18 18:44:04 +0000
committeraoliva <>2009-08-18 18:44:04 +0000
commit78a9e696cd7596d3f57929bf40eac13692452219 (patch)
tree2e6b825684f24764477329b5327cc36af371a034
parentc3f591c4feca483bea503952bf24b8e9d1220bfe (diff)
* compare-debug: Drop .eh_frame relocations too.var-tracking-assignments-merge-150905-trunk
-rw-r--r--contrib/ChangeLog4
-rwxr-xr-xcontrib/compare-debug38
2 files changed, 19 insertions, 23 deletions
diff --git a/contrib/ChangeLog b/contrib/ChangeLog
index 6ea5ebf24f5..778f380eddc 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 e91e05d576e..9864ee91f30 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