From 5830150a57f01dcf73d4d7cfcd2374fd68291a9f Mon Sep 17 00:00:00 2001
From: Alexandre Oliva <aoliva@redhat.com>
Date: Tue, 18 Aug 2009 19:44:04 +0000
Subject: [PATCH] * compare-debug: Drop .eh_frame relocations too.

From-SVN: r150901
---
 contrib/ChangeLog     |  4 ++++
 contrib/compare-debug | 38 +++++++++++++++-----------------------
 2 files changed, 19 insertions(+), 23 deletions(-)

diff --git a/contrib/ChangeLog b/contrib/ChangeLog
index 6ea5ebf24f5d..778f380eddc4 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 e91e05d576e5..9864ee91f307 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
 
-- 
GitLab