* stabsread.c (rs6000_builtin_type): Move function from
xcoffread.c:builtin_type. * xcoffread.c (builtin_type): Move to stabsread. Remove IBM6000_HOST dependency. Move misplaced comments. (various): Change printf's to complaints. (patch_block_stabs, process_xcoff_symbol case C_DECL): Add objfile argument to read_type calls under #if 0. (process_xcoff_symbol case C_RSYM): Fix typo in #ifdef. * xcoffexec.c (map_vmap): Don't allocate an objfile for the exec_file. * Makefile.in: xcoffread.o is not built by default. * config/rs6000.mh (NATDEPFILES): xcoffread.o is native only. * doc/gdbint.texinfo: Eliminate IBM6000_HOST, document IBM6000_TARGET.
This commit is contained in:
parent
7413f20a5e
commit
dd46978997
|
@ -1,3 +1,19 @@
|
||||||
|
Wed Feb 10 23:42:37 1993 John Gilmore (gnu@cygnus.com)
|
||||||
|
|
||||||
|
* stabsread.c (rs6000_builtin_type): Move function from
|
||||||
|
xcoffread.c:builtin_type.
|
||||||
|
* xcoffread.c (builtin_type): Move to stabsread. Remove
|
||||||
|
IBM6000_HOST dependency. Move misplaced comments.
|
||||||
|
(various): Change printf's to complaints.
|
||||||
|
(patch_block_stabs, process_xcoff_symbol case C_DECL): Add
|
||||||
|
objfile argument to read_type calls under #if 0.
|
||||||
|
(process_xcoff_symbol case C_RSYM): Fix typo in #ifdef.
|
||||||
|
* xcoffexec.c (map_vmap): Don't allocate an objfile for the exec_file.
|
||||||
|
* Makefile.in: xcoffread.o is not built by default.
|
||||||
|
* config/rs6000.mh (NATDEPFILES): xcoffread.o is native only.
|
||||||
|
* doc/gdbint.texinfo: Eliminate IBM6000_HOST, document
|
||||||
|
IBM6000_TARGET.
|
||||||
|
|
||||||
Wed Feb 10 18:31:20 1993 Stu Grossman (grossman at cygnus.com)
|
Wed Feb 10 18:31:20 1993 Stu Grossman (grossman at cygnus.com)
|
||||||
|
|
||||||
* findvar.c (read_var_value): If REG_STRUCT_HAS_ADDR, then set
|
* findvar.c (read_var_value): If REG_STRUCT_HAS_ADDR, then set
|
||||||
|
|
101
gdb/stabsread.c
101
gdb/stabsread.c
|
@ -87,6 +87,9 @@ read_sun_floating_type PARAMS ((char **, int [2], struct objfile *));
|
||||||
static struct type *
|
static struct type *
|
||||||
read_enum_type PARAMS ((char **, struct type *, struct objfile *));
|
read_enum_type PARAMS ((char **, struct type *, struct objfile *));
|
||||||
|
|
||||||
|
static struct type *
|
||||||
|
rs6000_builtin_type PARAMS ((char **pp));
|
||||||
|
|
||||||
static int
|
static int
|
||||||
read_member_functions PARAMS ((struct field_info *, char **, struct type *,
|
read_member_functions PARAMS ((struct field_info *, char **, struct type *,
|
||||||
struct objfile *));
|
struct objfile *));
|
||||||
|
@ -183,6 +186,9 @@ struct complaint vtbl_notfound_complaint =
|
||||||
struct complaint unrecognized_cplus_name_complaint =
|
struct complaint unrecognized_cplus_name_complaint =
|
||||||
{"Unknown C++ symbol name `%s'", 0, 0};
|
{"Unknown C++ symbol name `%s'", 0, 0};
|
||||||
|
|
||||||
|
struct complaint rs6000_builtin_complaint =
|
||||||
|
{"Unknown builtin type -%d", 0, 0};
|
||||||
|
|
||||||
struct complaint stabs_general_complaint =
|
struct complaint stabs_general_complaint =
|
||||||
{"%s", 0, 0};
|
{"%s", 0, 0};
|
||||||
|
|
||||||
|
@ -1161,8 +1167,7 @@ read_type (pp, objfile)
|
||||||
}
|
}
|
||||||
|
|
||||||
case '-': /* RS/6000 built-in type */
|
case '-': /* RS/6000 built-in type */
|
||||||
(*pp)--;
|
type = rs6000_builtin_type (pp);
|
||||||
type = builtin_type (pp); /* (in xcoffread.c) */
|
|
||||||
goto after_digits;
|
goto after_digits;
|
||||||
|
|
||||||
case '0':
|
case '0':
|
||||||
|
@ -1333,6 +1338,64 @@ read_type (pp, objfile)
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* RS/6000 xlc/dbx combination uses a set of builtin types, starting from -1.
|
||||||
|
Return the proper type node for a given builtin type number. */
|
||||||
|
|
||||||
|
static struct type *
|
||||||
|
rs6000_builtin_type (pp)
|
||||||
|
char **pp;
|
||||||
|
{
|
||||||
|
int typenums[2];
|
||||||
|
|
||||||
|
read_type_number (pp, typenums);
|
||||||
|
|
||||||
|
/* default types are defined in dbxstclass.h. */
|
||||||
|
switch ( typenums[1] ) {
|
||||||
|
case 1:
|
||||||
|
return lookup_fundamental_type (current_objfile, FT_INTEGER);
|
||||||
|
case 2:
|
||||||
|
return lookup_fundamental_type (current_objfile, FT_CHAR);
|
||||||
|
case 3:
|
||||||
|
return lookup_fundamental_type (current_objfile, FT_SHORT);
|
||||||
|
case 4:
|
||||||
|
return lookup_fundamental_type (current_objfile, FT_LONG);
|
||||||
|
case 5:
|
||||||
|
return lookup_fundamental_type (current_objfile, FT_UNSIGNED_CHAR);
|
||||||
|
case 6:
|
||||||
|
return lookup_fundamental_type (current_objfile, FT_SIGNED_CHAR);
|
||||||
|
case 7:
|
||||||
|
return lookup_fundamental_type (current_objfile, FT_UNSIGNED_SHORT);
|
||||||
|
case 8:
|
||||||
|
return lookup_fundamental_type (current_objfile, FT_UNSIGNED_INTEGER);
|
||||||
|
case 9:
|
||||||
|
return lookup_fundamental_type (current_objfile, FT_UNSIGNED_INTEGER);
|
||||||
|
case 10:
|
||||||
|
return lookup_fundamental_type (current_objfile, FT_UNSIGNED_LONG);
|
||||||
|
case 11:
|
||||||
|
return lookup_fundamental_type (current_objfile, FT_VOID);
|
||||||
|
case 12:
|
||||||
|
return lookup_fundamental_type (current_objfile, FT_FLOAT);
|
||||||
|
case 13:
|
||||||
|
return lookup_fundamental_type (current_objfile, FT_DBL_PREC_FLOAT);
|
||||||
|
case 14:
|
||||||
|
return lookup_fundamental_type (current_objfile, FT_EXT_PREC_FLOAT);
|
||||||
|
case 15:
|
||||||
|
/* requires a builtin `integer' */
|
||||||
|
return lookup_fundamental_type (current_objfile, FT_INTEGER);
|
||||||
|
case 16:
|
||||||
|
return lookup_fundamental_type (current_objfile, FT_BOOLEAN);
|
||||||
|
case 17:
|
||||||
|
/* requires builtin `short real' */
|
||||||
|
return lookup_fundamental_type (current_objfile, FT_FLOAT);
|
||||||
|
case 18:
|
||||||
|
/* requires builtin `real' */
|
||||||
|
return lookup_fundamental_type (current_objfile, FT_FLOAT);
|
||||||
|
default:
|
||||||
|
complain (rs6000_builtin_complaint, typenums[1]);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* This page contains subroutines of read_type. */
|
/* This page contains subroutines of read_type. */
|
||||||
|
|
||||||
#define VISIBILITY_PRIVATE '0' /* Stabs character for private field */
|
#define VISIBILITY_PRIVATE '0' /* Stabs character for private field */
|
||||||
|
@ -2279,14 +2342,34 @@ read_struct_type (pp, type, objfile)
|
||||||
/* Now read the baseclasses, if any, read the regular C struct or C++
|
/* Now read the baseclasses, if any, read the regular C struct or C++
|
||||||
class member fields, attach the fields to the type, read the C++
|
class member fields, attach the fields to the type, read the C++
|
||||||
member functions, attach them to the type, and then read any tilde
|
member functions, attach them to the type, and then read any tilde
|
||||||
fields. */
|
field (baseclass specifier for the class holding the main vtable). */
|
||||||
|
|
||||||
if (!read_baseclasses (&fi, pp, type, objfile)
|
if (!read_baseclasses (&fi, pp, type, objfile))
|
||||||
|| !read_struct_fields (&fi, pp, type, objfile)
|
{
|
||||||
|| !attach_fields_to_type (&fi, type, objfile)
|
do_cleanups (back_to);
|
||||||
|| !read_member_functions (&fi, pp, type, objfile)
|
return (error_type (pp));
|
||||||
|| !attach_fn_fields_to_type (&fi, type)
|
}
|
||||||
|| !read_tilde_fields (&fi, pp, type, objfile))
|
if (!read_struct_fields (&fi, pp, type, objfile))
|
||||||
|
{
|
||||||
|
do_cleanups (back_to);
|
||||||
|
return (error_type (pp));
|
||||||
|
}
|
||||||
|
if (!attach_fields_to_type (&fi, type, objfile))
|
||||||
|
{
|
||||||
|
do_cleanups (back_to);
|
||||||
|
return (error_type (pp));
|
||||||
|
}
|
||||||
|
if (!read_member_functions (&fi, pp, type, objfile))
|
||||||
|
{
|
||||||
|
do_cleanups (back_to);
|
||||||
|
return (error_type (pp));
|
||||||
|
}
|
||||||
|
if (!attach_fn_fields_to_type (&fi, type))
|
||||||
|
{
|
||||||
|
do_cleanups (back_to);
|
||||||
|
return (error_type (pp));
|
||||||
|
}
|
||||||
|
if (!read_tilde_fields (&fi, pp, type, objfile))
|
||||||
{
|
{
|
||||||
do_cleanups (back_to);
|
do_cleanups (back_to);
|
||||||
return (error_type (pp));
|
return (error_type (pp));
|
||||||
|
|
|
@ -332,19 +332,19 @@ map_vmap (bfd *bf, bfd *arch)
|
||||||
vmap_bfd.pvmap = vp;
|
vmap_bfd.pvmap = vp;
|
||||||
bfd_map_over_sections (bf, sex_to_vmap, &vmap_bfd);
|
bfd_map_over_sections (bf, sex_to_vmap, &vmap_bfd);
|
||||||
|
|
||||||
obj = lookup_objfile_bfd (bf);
|
|
||||||
if (exec_bfd && !obj) {
|
|
||||||
obj = allocate_objfile (bf, 0);
|
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
/* This is only needed if we want to load shared libraries no matter what.
|
/* This is only needed if we want to load shared libraries no matter what.
|
||||||
Since we provide the choice of incremental loading of shared objects
|
Since we provide the choice of incremental loading of shared objects
|
||||||
now, we do not have to load them as default anymore. */
|
now, we do not have to load them as default anymore. */
|
||||||
|
|
||||||
|
obj = lookup_objfile_bfd (bf);
|
||||||
|
if (exec_bfd && !obj) {
|
||||||
|
obj = allocate_objfile (bf, 0);
|
||||||
|
|
||||||
syms_from_objfile (obj, 0, 0, 0);
|
syms_from_objfile (obj, 0, 0, 0);
|
||||||
new_symfile_objfile (obj, 0, 0);
|
new_symfile_objfile (obj, 0, 0);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* find the end of the list, and append. */
|
/* find the end of the list, and append. */
|
||||||
for (vpp = &vmap; *vpp; vpp = &(*vpp)->nxt)
|
for (vpp = &vmap; *vpp; vpp = &(*vpp)->nxt)
|
||||||
|
|
131
gdb/xcoffread.c
131
gdb/xcoffread.c
|
@ -1,5 +1,5 @@
|
||||||
/* Read AIX xcoff symbol tables and convert to internal format, for GDB.
|
/* Read AIX xcoff symbol tables and convert to internal format, for GDB.
|
||||||
Copyright 1986, 1987, 1988, 1989, 1990, 1991, 1992
|
Copyright 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
Derived from coffread.c, dbxread.c, and a lot of hacking.
|
Derived from coffread.c, dbxread.c, and a lot of hacking.
|
||||||
Contributed by IBM Corporation.
|
Contributed by IBM Corporation.
|
||||||
|
@ -20,13 +20,12 @@ You should have received a copy of the GNU General Public License
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||||
|
|
||||||
#include "defs.h"
|
|
||||||
#include "bfd.h"
|
|
||||||
|
|
||||||
#if defined(IBM6000_HOST) && defined(IBM6000_TARGET)
|
|
||||||
/* Native only: Need struct tbtable in <sys/debug.h> from host, and
|
/* Native only: Need struct tbtable in <sys/debug.h> from host, and
|
||||||
need xcoff_add_toc_to_loadinfo in rs6000-tdep.c from target. */
|
need xcoff_add_toc_to_loadinfo in rs6000-tdep.c from target. */
|
||||||
|
|
||||||
|
#include "defs.h"
|
||||||
|
#include "bfd.h"
|
||||||
|
|
||||||
/* AIX XCOFF names have a preceeding dot `.' */
|
/* AIX XCOFF names have a preceeding dot `.' */
|
||||||
#define NAMES_HAVE_DOT 1
|
#define NAMES_HAVE_DOT 1
|
||||||
|
|
||||||
|
@ -49,6 +48,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||||
#include "buildsym.h"
|
#include "buildsym.h"
|
||||||
#include "stabsread.h"
|
#include "stabsread.h"
|
||||||
#include "gdb-stabs.h"
|
#include "gdb-stabs.h"
|
||||||
|
#include "complaints.h"
|
||||||
|
|
||||||
#include "coff/internal.h" /* FIXME, internal data from BFD */
|
#include "coff/internal.h" /* FIXME, internal data from BFD */
|
||||||
#include "libcoff.h" /* FIXME, internal data from BFD */
|
#include "libcoff.h" /* FIXME, internal data from BFD */
|
||||||
|
@ -143,25 +143,19 @@ static unsigned local_n_tmask;
|
||||||
|
|
||||||
static unsigned local_symesz;
|
static unsigned local_symesz;
|
||||||
|
|
||||||
|
|
||||||
/* coff_symfile_init()
|
|
||||||
is the coff-specific initialization routine for reading symbols.
|
|
||||||
It is passed a struct sym_fns which contains, among other things,
|
|
||||||
the BFD for the file whose symbols are being read, and a slot for
|
|
||||||
a pointer to "private data" which we fill with cookies and other
|
|
||||||
treats for coff_symfile_read().
|
|
||||||
|
|
||||||
We will only be called if this is a COFF or COFF-like file.
|
|
||||||
BFD handles figuring out the format of the file, and code in symtab.c
|
|
||||||
uses BFD's determination to vector to us.
|
|
||||||
|
|
||||||
The ultimate result is a new symtab (or, FIXME, eventually a psymtab). */
|
|
||||||
|
|
||||||
struct coff_symfile_info {
|
struct coff_symfile_info {
|
||||||
file_ptr min_lineno_offset; /* Where in file lowest line#s are */
|
file_ptr min_lineno_offset; /* Where in file lowest line#s are */
|
||||||
file_ptr max_lineno_offset; /* 1+last byte of line#s in file */
|
file_ptr max_lineno_offset; /* 1+last byte of line#s in file */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static struct complaint rsym_complaint =
|
||||||
|
{"Non-stab C_RSYM `%s' needs special handling", 0, 0};
|
||||||
|
|
||||||
|
static struct complaint storclass_complaint =
|
||||||
|
{"Unexpected storage class: %d", 0, 0};
|
||||||
|
|
||||||
|
static struct complaint bf_notfound_complaint =
|
||||||
|
{"line numbers off, `.bf' symbol not found", 0, 0};
|
||||||
|
|
||||||
static void
|
static void
|
||||||
enter_line_range PARAMS ((struct subfile *, unsigned, unsigned,
|
enter_line_range PARAMS ((struct subfile *, unsigned, unsigned,
|
||||||
|
@ -330,7 +324,7 @@ struct pending_stabs *stabs;
|
||||||
pp += 2;
|
pp += 2;
|
||||||
|
|
||||||
if (*(pp-1) == 'F' || *(pp-1) == 'f')
|
if (*(pp-1) == 'F' || *(pp-1) == 'f')
|
||||||
SYMBOL_TYPE (sym) = lookup_function_type (read_type (&pp));
|
SYMBOL_TYPE (sym) = lookup_function_type (read_type (&pp, objfile));
|
||||||
else
|
else
|
||||||
SYMBOL_TYPE (sym) = read_type (&pp, objfile);
|
SYMBOL_TYPE (sym) = read_type (&pp, objfile);
|
||||||
}
|
}
|
||||||
|
@ -1707,7 +1701,7 @@ process_xcoff_symbol (cs, objfile)
|
||||||
obsavestring (name, qq-name,
|
obsavestring (name, qq-name,
|
||||||
&objfile->symbol_obstack);
|
&objfile->symbol_obstack);
|
||||||
}
|
}
|
||||||
ttype = SYMBOL_TYPE (sym) = read_type (&pp);
|
ttype = SYMBOL_TYPE (sym) = read_type (&pp, objfile);
|
||||||
|
|
||||||
/* if there is no name for this typedef, you don't have to keep its
|
/* if there is no name for this typedef, you don't have to keep its
|
||||||
symbol, since nobody could ask for it. Otherwise, build a symbol
|
symbol, since nobody could ask for it. Otherwise, build a symbol
|
||||||
|
@ -1884,9 +1878,8 @@ process_xcoff_symbol (cs, objfile)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case C_RSYM:
|
case C_RSYM:
|
||||||
|
|
||||||
#ifdef NO_DEFINE_SYMBOL
|
|
||||||
pp = (char*) strchr (name, ':');
|
pp = (char*) strchr (name, ':');
|
||||||
|
#ifdef NO_DEFINE_SYMBOL
|
||||||
SYMBOL_CLASS (sym) = LOC_REGISTER;
|
SYMBOL_CLASS (sym) = LOC_REGISTER;
|
||||||
SYMBOL_VALUE (sym) = STAB_REG_TO_REGNUM (cs->c_value);
|
SYMBOL_VALUE (sym) = STAB_REG_TO_REGNUM (cs->c_value);
|
||||||
if (pp) {
|
if (pp) {
|
||||||
|
@ -1912,13 +1905,13 @@ process_xcoff_symbol (cs, objfile)
|
||||||
return sym;
|
return sym;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
warning ("A non-stab C_RSYM needs special handling.");
|
complain (rsym_complaint, name);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
default :
|
default :
|
||||||
warning ("Unexpected storage class: %d.", cs->c_sclass);
|
complain (storclass_complaint, cs->c_sclass);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1956,7 +1949,7 @@ read_symbol_lineno (symtable, symno)
|
||||||
symno += symbol->n_numaux+1;
|
symno += symbol->n_numaux+1;
|
||||||
}
|
}
|
||||||
|
|
||||||
printf ("GDB Error: `.bf' not found.\n");
|
complain (bf_notfound_complaint);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
gotit:
|
gotit:
|
||||||
|
@ -2041,75 +2034,26 @@ init_lineno (abfd, offset, size)
|
||||||
printf ("Gdb Error: symbol names on multiple lines not implemented.\n")
|
printf ("Gdb Error: symbol names on multiple lines not implemented.\n")
|
||||||
|
|
||||||
|
|
||||||
/* xlc/dbx combination uses a set of builtin types, starting from -1. return
|
|
||||||
the proper type node fora given builtin type #. */
|
|
||||||
|
|
||||||
struct type *
|
|
||||||
builtin_type (pp)
|
|
||||||
char **pp;
|
|
||||||
{
|
|
||||||
int typenums[2];
|
|
||||||
|
|
||||||
if (**pp != '-') {
|
|
||||||
printf ("ERROR!, unknown built-in type!\n");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
*pp += 1;
|
|
||||||
read_type_number (pp, typenums);
|
|
||||||
|
|
||||||
/* default types are defined in dbxstclass.h. */
|
|
||||||
switch ( typenums[1] ) {
|
|
||||||
case 1:
|
|
||||||
return lookup_fundamental_type (current_objfile, FT_INTEGER);
|
|
||||||
case 2:
|
|
||||||
return lookup_fundamental_type (current_objfile, FT_CHAR);
|
|
||||||
case 3:
|
|
||||||
return lookup_fundamental_type (current_objfile, FT_SHORT);
|
|
||||||
case 4:
|
|
||||||
return lookup_fundamental_type (current_objfile, FT_LONG);
|
|
||||||
case 5:
|
|
||||||
return lookup_fundamental_type (current_objfile, FT_UNSIGNED_CHAR);
|
|
||||||
case 6:
|
|
||||||
return lookup_fundamental_type (current_objfile, FT_SIGNED_CHAR);
|
|
||||||
case 7:
|
|
||||||
return lookup_fundamental_type (current_objfile, FT_UNSIGNED_SHORT);
|
|
||||||
case 8:
|
|
||||||
return lookup_fundamental_type (current_objfile, FT_UNSIGNED_INTEGER);
|
|
||||||
case 9:
|
|
||||||
return lookup_fundamental_type (current_objfile, FT_UNSIGNED_INTEGER);
|
|
||||||
case 10:
|
|
||||||
return lookup_fundamental_type (current_objfile, FT_UNSIGNED_LONG);
|
|
||||||
case 11:
|
|
||||||
return lookup_fundamental_type (current_objfile, FT_VOID);
|
|
||||||
case 12:
|
|
||||||
return lookup_fundamental_type (current_objfile, FT_FLOAT);
|
|
||||||
case 13:
|
|
||||||
return lookup_fundamental_type (current_objfile, FT_DBL_PREC_FLOAT);
|
|
||||||
case 14:
|
|
||||||
return lookup_fundamental_type (current_objfile, FT_EXT_PREC_FLOAT);
|
|
||||||
case 15:
|
|
||||||
/* requires a builtin `integer' */
|
|
||||||
return lookup_fundamental_type (current_objfile, FT_INTEGER);
|
|
||||||
case 16:
|
|
||||||
return lookup_fundamental_type (current_objfile, FT_BOOLEAN);
|
|
||||||
case 17:
|
|
||||||
/* requires builtin `short real' */
|
|
||||||
return lookup_fundamental_type (current_objfile, FT_FLOAT);
|
|
||||||
case 18:
|
|
||||||
/* requires builtin `real' */
|
|
||||||
return lookup_fundamental_type (current_objfile, FT_FLOAT);
|
|
||||||
default :
|
|
||||||
printf ("ERROR! Unknown builtin type -%d\n", typenums[1]);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
xcoff_new_init (objfile)
|
xcoff_new_init (objfile)
|
||||||
struct objfile *objfile;
|
struct objfile *objfile;
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* xcoff_symfile_init()
|
||||||
|
is the xcoff-specific initialization routine for reading symbols.
|
||||||
|
It is passed an objfile which contains, among other things,
|
||||||
|
the BFD for the file whose symbols are being read, and a slot for
|
||||||
|
a pointer to "private data" which we fill with cookies and other
|
||||||
|
treats for xcoff_symfile_read().
|
||||||
|
|
||||||
|
We will only be called if this is an XCOFF or XCOFF-like file.
|
||||||
|
BFD handles figuring out the format of the file, and code in symfile.c
|
||||||
|
uses BFD's determination to vector to us.
|
||||||
|
|
||||||
|
The ultimate result is a new symtab (or, FIXME, eventually a psymtab). */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
xcoff_symfile_init (objfile)
|
xcoff_symfile_init (objfile)
|
||||||
struct objfile *objfile;
|
struct objfile *objfile;
|
||||||
|
@ -2353,12 +2297,3 @@ _initialize_xcoffread ()
|
||||||
{
|
{
|
||||||
add_symtab_fns(&xcoff_sym_fns);
|
add_symtab_fns(&xcoff_sym_fns);
|
||||||
}
|
}
|
||||||
|
|
||||||
#else /* IBM6000_HOST */
|
|
||||||
struct type *
|
|
||||||
builtin_type (ignore)
|
|
||||||
char **ignore;
|
|
||||||
{
|
|
||||||
fatal ("GDB internal error: builtin_type called on non-RS/6000!");
|
|
||||||
}
|
|
||||||
#endif /* IBM6000_HOST */
|
|
||||||
|
|
Loading…
Reference in New Issue