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-07-25 15:32:35 -0500
commitace889170837e550871cf0d33f88ba2470c7d834 (patch)
tree117f7a10878a1c180d9b0cb85d535bf9768d6e16
parentdad835a11f370afd2dae4bac554fa64fac5a8c6e (diff)
downloadglibc-ace889170837e550871cf0d33f88ba2470c7d834.tar.gz
glibc-ace889170837e550871cf0d33f88ba2470c7d834.tar.xz
glibc-ace889170837e550871cf0d33f88ba2470c7d834.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
(cherry picked from commit b0f1246ab45b6d27e2bba64aa8dfe407ac740537)
-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 021665218b..3eee9be66e 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-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
 
 	* sysdeps/powerpc/fpu/s_llround.c: Fix libm ABI issue with missing
diff --git a/sysdeps/powerpc/powerpc32/start.S b/sysdeps/powerpc/powerpc32/start.S
index 4935e64976..2e454c0722 100644
--- a/sysdeps/powerpc/powerpc32/start.S
+++ b/sysdeps/powerpc/powerpc32/start.S
@@ -37,6 +37,13 @@
 #include <sysdep.h>
 #include "bp-sym.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 d9c92d139f..aadaf0fae8 100644
--- a/sysdeps/powerpc/powerpc64/start.S
+++ b/sysdeps/powerpc/powerpc64/start.S
@@ -37,6 +37,13 @@
 #include <sysdep.h>
 #include "bp-sym.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"