diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2007-06-05 22:46:30 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@de.ibm.com> | 2007-06-05 22:46:30 +0000 |
commit | 5e787d22c9685b84fd1d7b22256d54a1d9d03aeb (patch) | |
tree | c0da9d34a47f536d58287407e7c4dab992b88764 | |
parent | 79d4951621eec323a92ad518f474f7ccee143aa3 (diff) | |
download | gdb-5e787d22c9685b84fd1d7b22256d54a1d9d03aeb.zip gdb-5e787d22c9685b84fd1d7b22256d54a1d9d03aeb.tar.gz gdb-5e787d22c9685b84fd1d7b22256d54a1d9d03aeb.tar.bz2 |
* objfiles.h (ImportEntry, ExportEntry): Remove types.
(struct objfile): Remove import_list, import_list_size,
export_list, export_list_size members.
(is_in_import_list): Remove prototype.
* objfiles.c (is_in_import_list): Remove.
* somread.c (init_import_symbols, init_export_symbols): Remove.
(som_symfile_read): Do not call init_import_symbols. Do not
set objfile->export_list and objfile->export_list_size.
-rw-r--r-- | gdb/ChangeLog | 11 | ||||
-rw-r--r-- | gdb/objfiles.c | 17 | ||||
-rw-r--r-- | gdb/objfiles.h | 32 | ||||
-rw-r--r-- | gdb/somread.c | 266 |
4 files changed, 11 insertions, 315 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index d7e4fa5..7c41b60 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,14 @@ +2007-06-06 Ulrich Weigand <uweigand@de.ibm.com> + + * objfiles.h (ImportEntry, ExportEntry): Remove types. + (struct objfile): Remove import_list, import_list_size, + export_list, export_list_size members. + (is_in_import_list): Remove prototype. + * objfiles.c (is_in_import_list): Remove. + * somread.c (init_import_symbols, init_export_symbols): Remove. + (som_symfile_read): Do not call init_import_symbols. Do not + set objfile->export_list and objfile->export_list_size. + 2007-06-05 Daniel Jacobowitz <dan@codesourcery.com> * dwarf2read.c (dwarf2_symbol_mark_computed): Fix formatting. diff --git a/gdb/objfiles.c b/gdb/objfiles.c index 64b2ecc..97c123f 100644 --- a/gdb/objfiles.c +++ b/gdb/objfiles.c @@ -794,23 +794,6 @@ in_plt_section (CORE_ADDR pc, char *name) && strcmp (s->the_bfd_section->name, ".plt") == 0); return (retval); } - -/* Return nonzero if NAME is in the import list of OBJFILE. Else - return zero. */ - -int -is_in_import_list (char *name, struct objfile *objfile) -{ - int i; - - if (!objfile || !name || !*name) - return 0; - - for (i = 0; i < objfile->import_list_size; i++) - if (objfile->import_list[i] && DEPRECATED_STREQ (name, objfile->import_list[i])) - return 1; - return 0; -} /* Keep a registry of per-objfile data-pointers required by other GDB diff --git a/gdb/objfiles.h b/gdb/objfiles.h index 7b3cf07..d3df7f8 100644 --- a/gdb/objfiles.h +++ b/gdb/objfiles.h @@ -149,24 +149,6 @@ struct obj_section int ovly_mapped; }; -/* An import entry contains information about a symbol that - is used in this objfile but not defined in it, and so needs - to be imported from some other objfile */ -/* Currently we just store the name; no attributes. 1997-08-05 */ -typedef char *ImportEntry; - - -/* An export entry contains information about a symbol that - is defined in this objfile and available for use in other - objfiles */ -typedef struct - { - char *name; /* name of exported symbol */ - int address; /* offset subject to relocation */ - /* Currently no other attributes 1997-08-05 */ - } -ExportEntry; - /* The "objstats" structure provides a place for gdb to record some interesting information about its internal state at runtime, on a @@ -406,18 +388,6 @@ struct objfile struct obj_section *sections, *sections_end; - /* Imported symbols */ - /* FIXME: ezannoni 2004-02-10: This is just SOM (HP) specific (see - somread.c). It should not pollute generic objfiles. */ - ImportEntry *import_list; - int import_list_size; - - /* Exported symbols */ - /* FIXME: ezannoni 2004-02-10: This is just SOM (HP) specific (see - somread.c). It should not pollute generic objfiles. */ - ExportEntry *export_list; - int export_list_size; - /* Link to objfile that contains the debug symbols for this one. One is loaded if this file has an debug link to an existing debug file with the right checksum */ @@ -558,8 +528,6 @@ extern struct obj_section *find_pc_sect_section (CORE_ADDR pc, extern int in_plt_section (CORE_ADDR, char *); -extern int is_in_import_list (char *, struct objfile *); - /* Keep a registry of per-objfile data-pointers required by other GDB modules. */ diff --git a/gdb/somread.c b/gdb/somread.c index 42cc7a6..7f31303 100644 --- a/gdb/somread.c +++ b/gdb/somread.c @@ -37,9 +37,6 @@ #include "solib-som.h" -/* Prototypes for local functions. */ -static int init_import_symbols (struct objfile *objfile); - /* LOCAL FUNCTION @@ -320,18 +317,6 @@ som_symfile_read (struct objfile *objfile, int mainline) init_minimal_symbol_collection (); back_to = make_cleanup_discard_minimal_symbols (); - /* Read in the import list and the export list. Currently - the export list isn't used; the import list is used in - hp-symtab-read.c to handle static vars declared in other - shared libraries. */ - init_import_symbols (objfile); -#if 0 /* Export symbols not used today 1997-08-05 */ - init_export_symbols (objfile); -#else - objfile->export_list = NULL; - objfile->export_list_size = 0; -#endif - /* Process the normal SOM symbol table first. This reads in the DNTT and string table, but doesn't actually scan the DNTT. It does scan the linker symbol @@ -433,257 +418,6 @@ som_symfile_offsets (struct objfile *objfile, struct section_addr_info *addrs) (objfile->section_offsets)->offsets[i] = text_addr; } } - -/* Read in and initialize the SOM import list which is present - for all executables and shared libraries. The import list - consists of the symbols that are referenced in OBJFILE but - not defined there. (Variables that are imported are dealt - with as "loc_indirect" vars.) - Return value = number of import symbols read in. */ -static int -init_import_symbols (struct objfile *objfile) -{ - unsigned int import_list; - unsigned int import_list_size; - unsigned int string_table; - unsigned int string_table_size; - char *string_buffer; - int i; - int j; - int k; - asection *text_section; /* section handle */ - unsigned int dl_header[12]; /* SOM executable header */ - - /* A struct for an entry in the SOM import list */ - typedef struct - { - int name; /* index into the string table */ - short dont_care1; /* we don't use this */ - unsigned char type; /* 0 = NULL, 2 = Data, 3 = Code, 7 = Storage, 13 = Plabel */ - unsigned int reserved2:8; /* not used */ - } - SomImportEntry; - - /* We read 100 entries in at a time from the disk file. */ -#define SOM_READ_IMPORTS_NUM 100 -#define SOM_READ_IMPORTS_CHUNK_SIZE (sizeof (SomImportEntry) * SOM_READ_IMPORTS_NUM) - SomImportEntry buffer[SOM_READ_IMPORTS_NUM]; - - /* Initialize in case we error out */ - objfile->import_list = NULL; - objfile->import_list_size = 0; - - /* It doesn't work, for some reason, to read in space $TEXT$; - the subspace $SHLIB_INFO$ has to be used. Some BFD quirk? pai/1997-08-05 */ - text_section = bfd_get_section_by_name (objfile->obfd, "$SHLIB_INFO$"); - if (!text_section) - return 0; - /* Get the SOM executable header */ - bfd_get_section_contents (objfile->obfd, text_section, dl_header, 0, 12 * sizeof (int)); - - /* Check header version number for 10.x HP-UX */ - /* Currently we deal only with 10.x systems; on 9.x the version # is 89060912. - FIXME: Change for future HP-UX releases and mods to the SOM executable format */ - if (dl_header[0] != 93092112) - return 0; - - import_list = dl_header[4]; - import_list_size = dl_header[5]; - if (!import_list_size) - return 0; - string_table = dl_header[10]; - string_table_size = dl_header[11]; - if (!string_table_size) - return 0; - - /* Suck in SOM string table */ - string_buffer = (char *) xmalloc (string_table_size); - bfd_get_section_contents (objfile->obfd, text_section, string_buffer, - string_table, string_table_size); - - /* Allocate import list in the psymbol obstack; this has nothing - to do with psymbols, just a matter of convenience. We want the - import list to be freed when the objfile is deallocated */ - objfile->import_list - = (ImportEntry *) obstack_alloc (&objfile->objfile_obstack, - import_list_size * sizeof (ImportEntry)); - - /* Read in the import entries, a bunch at a time */ - for (j = 0, k = 0; - j < (import_list_size / SOM_READ_IMPORTS_NUM); - j++) - { - bfd_get_section_contents (objfile->obfd, text_section, buffer, - import_list + j * SOM_READ_IMPORTS_CHUNK_SIZE, - SOM_READ_IMPORTS_CHUNK_SIZE); - for (i = 0; i < SOM_READ_IMPORTS_NUM; i++, k++) - { - if (buffer[i].type != (unsigned char) 0) - { - objfile->import_list[k] - = (char *) obstack_alloc (&objfile->objfile_obstack, strlen (string_buffer + buffer[i].name) + 1); - strcpy (objfile->import_list[k], string_buffer + buffer[i].name); - /* Some day we might want to record the type and other information too */ - } - else /* null type */ - objfile->import_list[k] = NULL; - - } - } - - /* Get the leftovers */ - if (k < import_list_size) - bfd_get_section_contents (objfile->obfd, text_section, buffer, - import_list + k * sizeof (SomImportEntry), - (import_list_size - k) * sizeof (SomImportEntry)); - for (i = 0; k < import_list_size; i++, k++) - { - if (buffer[i].type != (unsigned char) 0) - { - objfile->import_list[k] - = (char *) obstack_alloc (&objfile->objfile_obstack, strlen (string_buffer + buffer[i].name) + 1); - strcpy (objfile->import_list[k], string_buffer + buffer[i].name); - /* Some day we might want to record the type and other information too */ - } - else - objfile->import_list[k] = NULL; - } - - objfile->import_list_size = import_list_size; - xfree (string_buffer); - return import_list_size; -} - -/* Read in and initialize the SOM export list which is present - for all executables and shared libraries. The import list - consists of the symbols that are referenced in OBJFILE but - not defined there. (Variables that are imported are dealt - with as "loc_indirect" vars.) - Return value = number of import symbols read in. */ -int -init_export_symbols (struct objfile *objfile) -{ - unsigned int export_list; - unsigned int export_list_size; - unsigned int string_table; - unsigned int string_table_size; - char *string_buffer; - int i; - int j; - int k; - asection *text_section; /* section handle */ - unsigned int dl_header[12]; /* SOM executable header */ - - /* A struct for an entry in the SOM export list */ - typedef struct - { - int next; /* for hash table use -- we don't use this */ - int name; /* index into string table */ - int value; /* offset or plabel */ - int dont_care1; /* not used */ - unsigned char type; /* 0 = NULL, 2 = Data, 3 = Code, 7 = Storage, 13 = Plabel */ - char dont_care2; /* not used */ - short dont_care3; /* not used */ - } - SomExportEntry; - - /* We read 100 entries in at a time from the disk file. */ -#define SOM_READ_EXPORTS_NUM 100 -#define SOM_READ_EXPORTS_CHUNK_SIZE (sizeof (SomExportEntry) * SOM_READ_EXPORTS_NUM) - SomExportEntry buffer[SOM_READ_EXPORTS_NUM]; - - /* Initialize in case we error out */ - objfile->export_list = NULL; - objfile->export_list_size = 0; - - /* It doesn't work, for some reason, to read in space $TEXT$; - the subspace $SHLIB_INFO$ has to be used. Some BFD quirk? pai/1997-08-05 */ - text_section = bfd_get_section_by_name (objfile->obfd, "$SHLIB_INFO$"); - if (!text_section) - return 0; - /* Get the SOM executable header */ - bfd_get_section_contents (objfile->obfd, text_section, dl_header, 0, 12 * sizeof (int)); - - /* Check header version number for 10.x HP-UX */ - /* Currently we deal only with 10.x systems; on 9.x the version # is 89060912. - FIXME: Change for future HP-UX releases and mods to the SOM executable format */ - if (dl_header[0] != 93092112) - return 0; - - export_list = dl_header[8]; - export_list_size = dl_header[9]; - if (!export_list_size) - return 0; - string_table = dl_header[10]; - string_table_size = dl_header[11]; - if (!string_table_size) - return 0; - - /* Suck in SOM string table */ - string_buffer = (char *) xmalloc (string_table_size); - bfd_get_section_contents (objfile->obfd, text_section, string_buffer, - string_table, string_table_size); - - /* Allocate export list in the psymbol obstack; this has nothing - to do with psymbols, just a matter of convenience. We want the - export list to be freed when the objfile is deallocated */ - objfile->export_list - = (ExportEntry *) obstack_alloc (&objfile->objfile_obstack, - export_list_size * sizeof (ExportEntry)); - - /* Read in the export entries, a bunch at a time */ - for (j = 0, k = 0; - j < (export_list_size / SOM_READ_EXPORTS_NUM); - j++) - { - bfd_get_section_contents (objfile->obfd, text_section, buffer, - export_list + j * SOM_READ_EXPORTS_CHUNK_SIZE, - SOM_READ_EXPORTS_CHUNK_SIZE); - for (i = 0; i < SOM_READ_EXPORTS_NUM; i++, k++) - { - if (buffer[i].type != (unsigned char) 0) - { - objfile->export_list[k].name - = (char *) obstack_alloc (&objfile->objfile_obstack, strlen (string_buffer + buffer[i].name) + 1); - strcpy (objfile->export_list[k].name, string_buffer + buffer[i].name); - objfile->export_list[k].address = buffer[i].value; - /* Some day we might want to record the type and other information too */ - } - else - /* null type */ - { - objfile->export_list[k].name = NULL; - objfile->export_list[k].address = 0; - } - } - } - - /* Get the leftovers */ - if (k < export_list_size) - bfd_get_section_contents (objfile->obfd, text_section, buffer, - export_list + k * sizeof (SomExportEntry), - (export_list_size - k) * sizeof (SomExportEntry)); - for (i = 0; k < export_list_size; i++, k++) - { - if (buffer[i].type != (unsigned char) 0) - { - objfile->export_list[k].name - = (char *) obstack_alloc (&objfile->objfile_obstack, strlen (string_buffer + buffer[i].name) + 1); - strcpy (objfile->export_list[k].name, string_buffer + buffer[i].name); - /* Some day we might want to record the type and other information too */ - objfile->export_list[k].address = buffer[i].value; - } - else - { - objfile->export_list[k].name = NULL; - objfile->export_list[k].address = 0; - } - } - - objfile->export_list_size = export_list_size; - xfree (string_buffer); - return export_list_size; -} |