-/* Information is passed among various dbxread routines for accessing
- symbol files. A pointer to this structure is kept in the sym_stab_info
- field of the objfile struct. */
-
-struct dbx_symfile_info {
- CORE_ADDR text_addr; /* Start of text section */
- int text_size; /* Size of text section */
- int symcount; /* How many symbols are there in the file */
- char *stringtab; /* The actual string table */
- int stringtab_size; /* Its size */
- file_ptr symtab_offset; /* Offset in file to symbol table */
- int symbol_size; /* Bytes in a single symbol */
- struct stab_section_info *stab_section_info; /* section starting points
- of the original .o files before linking. */
-
- /* See stabsread.h for the use of the following. */
- struct header_file *header_files;
- int n_header_files;
- int n_allocated_header_files;
-
- /* Pointers to BFD sections. These are used to speed up the building of
- minimal symbols. */
- asection *text_section;
- asection *data_section;
- asection *bss_section;
-};
-
-#define DBX_SYMFILE_INFO(o) ((o)->sym_stab_info)
+ /* Pointers to BFD sections. These are used to speed up the building of
+ minimal symbols. */
+ asection *text_section = nullptr;
+ asection *data_section = nullptr;
+ asection *bss_section = nullptr;
+
+ /* Pointer to the separate ".stab" section, if there is one. */
+ asection *stab_section = nullptr;
+ };
+
+/* The tag used to find the DBX info attached to an objfile. This is
+ global because it is referenced by several modules. */
+extern objfile_key<dbx_symfile_info> dbx_objfile_data_key;
+
+#define DBX_SYMFILE_INFO(o) (dbx_objfile_data_key.get (o))