about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2013-03-28 12:16:28 -0500
committerRyan S. Arnold <rsa@linux.vnet.ibm.com>2013-03-28 12:16:28 -0500
commitb0f1246ab45b6d27e2bba64aa8dfe407ac740537 (patch)
tree6fe4031d0740221fd17d15cc1edd958d8aaab7c4
parentfbbe2b9a1f04c00ea0f8820a545bd4ca780ffa30 (diff)
downloadglibc-b0f1246ab45b6d27e2bba64aa8dfe407ac740537.tar.gz
glibc-b0f1246ab45b6d27e2bba64aa8dfe407ac740537.tar.xz
glibc-b0f1246ab45b6d27e2bba64aa8dfe407ac740537.zip
PowerPC: .eh_frame info in crt1.o isn't useful and triggers gold bug 14675.
The .eh_frame info in crt1.o isn't useful and this patch prevents it from
being generated on PowerPC.  It triggers the following gold bug:

http://sourceware.org/bugzilla/show_bug.cgi?id=14675
-rw-r--r--ChangeLog7
-rw-r--r--sysdeps/powerpc/powerpc32/start.S7
-rw-r--r--sysdeps/powerpc/powerpc64/start.S7
3 files changed, 21 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 390c5cb19c..183bedfae8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2013-03-28  Alan Modra  <amodra@gmail.com>
+
+	* sysdeps/powerpc/powerpc32/start.S (cfi_startproc, cfi_endproc):
+	Define as empty.
+	* sysdeps/powerpc/powerpc64/start.S (cfi_startproc, cfi_endproc):
+	Likewise.
+
 2013-03-28  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
 
 	[BZ #15214]
diff --git a/sysdeps/powerpc/powerpc32/start.S b/sysdeps/powerpc/powerpc32/start.S
index 9d5f8d344e..f04446bbba 100644
--- a/sysdeps/powerpc/powerpc32/start.S
+++ b/sysdeps/powerpc/powerpc32/start.S
@@ -35,6 +35,13 @@
 
 #include <sysdep.h>
 
+/* We do not want .eh_frame info for crt1.o since crt1.o is linked
+   before crtbegin.o, the file defining __EH_FRAME_BEGIN__.  */
+#undef cfi_startproc
+#define cfi_startproc
+#undef cfi_endproc
+#define cfi_endproc
+
  /* These are the various addresses we require.  */
 #ifdef PIC
 	.section ".data"
diff --git a/sysdeps/powerpc/powerpc64/start.S b/sysdeps/powerpc/powerpc64/start.S
index ec0fd30e74..09ab464cbc 100644
--- a/sysdeps/powerpc/powerpc64/start.S
+++ b/sysdeps/powerpc/powerpc64/start.S
@@ -35,6 +35,13 @@
 
 #include <sysdep.h>
 
+/* We do not want .eh_frame info for crt1.o since crt1.o is linked
+   before crtbegin.o, the file defining __EH_FRAME_BEGIN__.  */
+#undef cfi_startproc
+#define cfi_startproc
+#undef cfi_endproc
+#define cfi_endproc
+
  /* These are the various addresses we require.  */
 #ifdef PIC
 	.section ".data.rel.ro.local","aw"