2006-03-01 Randolph Chung <tausq@debian.org>

* hppa-hpux-tdep.c (initialize_hp_cxx_exception_support): Use
	TDEP->is_elf to determine if we are working with a SOM binary.
	(null_symtab_and_line): Remove unused variable.
	* config/pa/hppa64.mt: Use tm-hppa.h.
	* config/pa/tm-hppa64.h: Remove file.
This commit is contained in:
Randolph Chung 2006-03-01 05:19:13 +00:00
parent 848359aced
commit 477e69e8fd
4 changed files with 48 additions and 99 deletions

View File

@ -1,3 +1,11 @@
2006-03-01 Randolph Chung <tausq@debian.org>
* hppa-hpux-tdep.c (initialize_hp_cxx_exception_support): Use
TDEP->is_elf to determine if we are working with a SOM binary.
(null_symtab_and_line): Remove unused variable.
* config/pa/hppa64.mt: Use tm-hppa.h.
* config/pa/tm-hppa64.h: Remove file.
2006-03-01 Wu Zhou <woodzltc@cn.ibm.com>
* f-typeprint.c (f_type_print_base): Delete the redundant space.

View File

@ -1,3 +1,3 @@
# Target: HP PA-RISC 2.0 running HPUX 11.00 in wide mode
TDEPFILES= hppa-tdep.o hppa-hpux-tdep.o solib-som.o solib-pa64.o somread.o hpread.o solib.o
DEPRECATED_TM_FILE= tm-hppa64.h
DEPRECATED_TM_FILE= tm-hppa.h

View File

@ -1,58 +0,0 @@
/* Parameters for execution on any Hewlett-Packard PA-RISC machine.
Copyright 1986, 1987, 1989, 1990, 1991, 1992, 1993, 1995, 1999, 2000
Free Software Foundation, Inc.
Contributed by the Center for Software Science at the
University of Utah (pa-gdb-bugs@cs.utah.edu).
This file is part of GDB.
This program 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 of the License, or
(at your option) any later version.
This program 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 this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* PA 64-bit specific definitions. Override those which are in
tm-hppa.h */
struct frame_info;
/* jimb: this must go. I'm just using it to disable code I haven't
gotten working yet. */
#define GDB_TARGET_IS_HPPA_20W
/* NOTE: cagney/2003-07-27: Using CC='cc +DA2.0W -Ae' configure
hppa64-hp-hpux11.00; GDB managed to build / start / break main /
run with multi-arch enabled. Not sure about much else as there
appears to be an unrelated problem in the SOM symbol table reader
causing GDB to lose line number information. Since prior to this
switch and a other recent tweaks, 64 bit PA hadn't been building
for some months, this is probably the lesser of several evils. */
#include "pa/tm-hppah.h"
#undef FP4_REGNUM
#define FP4_REGNUM 68
#define AP_REGNUM 29 /* Argument Pointer Register */
#define DP_REGNUM 27
#define FP5_REGNUM 70
#define SR5_REGNUM 48
/* jimb: omitted dynamic linking stuff here */
#undef FUNC_LDIL_OFFSET
#undef FUNC_LDO_OFFSET
#undef SR4EXPORT_LDIL_OFFSET
#undef SR4EXPORT_LDO_OFFSET
/* jimb: omitted purify call support */

View File

@ -844,52 +844,54 @@ GDB will be unable to intercept exception events."),
return 0;
}
#ifndef GDB_TARGET_IS_HPPA_20W
/* Check whether the executable is dynamically linked or archive bound */
/* With an archive-bound executable we can use the raw addresses we find
for the callback function, etc. without modification. For an executable
with shared libraries, we have to do more work to find the plabel, which
can be the target of a call through $$dyncall from the aCC runtime support
library (libCsup) which is linked shared by default by aCC. */
/* This test below was copied from somsolib.c/somread.c. It may not be a very
reliable one to test that an executable is linked shared. pai/1997-07-18 */
shlib_info = bfd_get_section_by_name (symfile_objfile->obfd, "$SHLIB_INFO$");
if (shlib_info && (bfd_section_size (symfile_objfile->obfd, shlib_info) != 0))
if (!gdbarch_tdep (current_gdbarch)->is_elf)
{
/* The minsym we have has the local code address, but that's not
the plabel that can be used by an inter-load-module call. */
/* Find solib handle for main image (which has end.o), and use
that and the min sym as arguments to __d_shl_get() (which
does the equivalent of shl_findsym()) to find the plabel. */
/* Check whether the executable is dynamically linked or archive bound */
/* With an archive-bound executable we can use the raw addresses we find
for the callback function, etc. without modification. For an executable
with shared libraries, we have to do more work to find the plabel, which
can be the target of a call through $$dyncall from the aCC runtime
support library (libCsup) which is linked shared by default by aCC. */
/* This test below was copied from somsolib.c/somread.c. It may not be a very
reliable one to test that an executable is linked shared.
pai/1997-07-18 */
shlib_info = bfd_get_section_by_name (symfile_objfile->obfd, "$SHLIB_INFO$");
if (shlib_info && (bfd_section_size (symfile_objfile->obfd, shlib_info) != 0))
{
/* The minsym we have has the local code address, but that's not
the plabel that can be used by an inter-load-module call. */
/* Find solib handle for main image (which has end.o), and use
that and the min sym as arguments to __d_shl_get() (which
does the equivalent of shl_findsym()) to find the plabel. */
args_for_find_stub args;
static char message[] = "Error while finding exception callback hook:\n";
args_for_find_stub args;
static char message[] = _("Error while finding exception callback hook:\n");
args.solib_handle = gdbarch_tdep (current_gdbarch)->solib_get_solib_by_pc (eh_notify_callback_addr);
args.msym = msym;
args.return_val = 0;
args.solib_handle = gdbarch_tdep (current_gdbarch)->solib_get_solib_by_pc (eh_notify_callback_addr);
args.msym = msym;
args.return_val = 0;
recurse++;
catch_errors (cover_find_stub_with_shl_get, &args, message,
RETURN_MASK_ALL);
eh_notify_callback_addr = args.return_val;
recurse--;
recurse++;
catch_errors (cover_find_stub_with_shl_get, &args, message,
RETURN_MASK_ALL);
eh_notify_callback_addr = args.return_val;
recurse--;
deprecated_exception_catchpoints_are_fragile = 1;
deprecated_exception_catchpoints_are_fragile = 1;
if (!eh_notify_callback_addr)
{
/* We can get here either if there is no plabel in the export list
for the main image, or if something strange happened (?) */
warning (_("\
if (!eh_notify_callback_addr)
{
/* We can get here either if there is no plabel in the export list
for the main image, or if something strange happened (?) */
warning (_("\
Couldn't find a plabel (indirect function label) for the exception callback.\n\
GDB will not be able to intercept exception events."));
return 0;
}
return 0;
}
}
else
deprecated_exception_catchpoints_are_fragile = 0;
}
else
deprecated_exception_catchpoints_are_fragile = 0;
#endif
/* Now, look for the breakpointable routine in end.o */
/* This should also be available in the SOM symbol dict. if end.o linked in */
@ -1063,9 +1065,6 @@ Interception of exception events may not work."));
/* Record some information about the current exception event */
static struct exception_event_record current_ex_event;
/* Convenience struct */
static struct symtab_and_line null_symtab_and_line =
{NULL, 0, 0, 0};
/* Report current exception event. Returns a pointer to a record
that describes the kind of the event, where it was thrown from,