This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
PATCH: IA64 HP-UX C++ failures (_Unwind_GetIPInfo)
- From: Steve Ellcey <sje at cup dot hp dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: jakub at redhat dot com
- Date: Wed, 1 Mar 2006 08:15:46 -0800 (PST)
- Subject: PATCH: IA64 HP-UX C++ failures (_Unwind_GetIPInfo)
- Reply-to: sje at cup dot hp dot com
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);
+}