This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PATCH: IA64 HP-UX C++ failures (_Unwind_GetIPInfo)


The recent addition of _Unwind_GetIPInfo to the GCC unwind library broke
C++ on IA64 HP-UX because C++ on IA64 HP-UX uses the system unwind
library and that library does not include _Unwind_GetIPInfo.  This patch
creates a new file, unwind-hpux.c, to define _Unwind_GetIPInfo and adds
it to the IA64 HP-UX libgcc build.

Tested on IA64 HP-UX with no regressions.

OK for checkin?

Steve Ellcey
sje@cup.hp.com



2006-03-01  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/unwind-hpux.c: New file.
	* config/ia64/t-hpux: Add unwind-hpux.c to libgcc.

Index: t-hpux
===================================================================
--- t-hpux	(revision 111502)
+++ t-hpux	(working copy)
@@ -9,10 +9,13 @@ MULTILIB_MATCHES =
 
 # Support routines for HP-UX 128 bit floats.
 
-LIB2FUNCS_EXTRA=quadlib.c $(srcdir)/config/floatunsitf.c
+LIB2FUNCS_EXTRA=quadlib.c $(srcdir)/config/floatunsitf.c unwind-hpux.c
 
 quadlib.c: $(srcdir)/config/ia64/quadlib.c
 	cat $(srcdir)/config/ia64/quadlib.c > quadlib.c
+
+unwind-hpux.c: $(srcdir)/config/ia64/unwind-hpux.c
+	cat $(srcdir)/config/ia64/unwind-hpux.c > unwind-hpux.c
 
 # We get an undefined main when building a cross compiler because our
 # linkspec has "-u main" and we want that for linking but it makes


Index: unwind-hpux.c
===================================================================
--- unwind-hpux.c	(revision 0)
+++ unwind-hpux.c	(revision 0)
@@ -0,0 +1,39 @@
+/* Subroutine for _Unwind_* routines not provided by the standard
+   HP-UX unwind library.
+
+   Copyright (C) 2006 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+In addition to the permissions in the GNU General Public License, the
+Free Software Foundation gives you unlimited permission to link the
+compiled version of this file into combinations with other programs,
+and to distribute those combinations without any restriction coming
+from the use of this file.  (The General Public License restrictions
+do apply in other respects; for example, they cover modification of
+the file, and distribution when not linked into a combine
+executable.)
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING.  If not, write to
+the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.  */
+
+#include <unwind.h>
+
+uint64_t
+_Unwind_GetIPInfo (struct _Unwind_Context *context, int *ip_before_insn)
+{
+  *ip_before_insn = 0;
+  return _Unwind_GetIP (context);
+}


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]