summaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authoraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>2009-08-18 19:44:04 +0000
committeraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>2009-08-18 19:44:04 +0000
commitdfd3ea34821fac7d792ce6c6a752f5fa2d07f7d2 (patch)
tree2e6b825684f24764477329b5327cc36af371a034 /contrib
parent6a23d9c285645acd3ead0fe5971dcbe79d8937fe (diff)
downloadgcc-dfd3ea34821fac7d792ce6c6a752f5fa2d07f7d2.tar.gz
* compare-debug: Drop .eh_frame relocations too.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150901 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'contrib')
-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