]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - gdb/gdb-stabs.h
aarch64: correct SVE2.1 ld2q (scalar plus scalar)
[thirdparty/binutils-gdb.git] / gdb / gdb-stabs.h
index 1ad782abdcae30aa055f0c1b9c5c2335dfc3a39b..3786ad6881debd2d779a998258d536215a0af186 100644 (file)
@@ -1,22 +1,24 @@
 /* Definitions for symbol-reading containing "stabs", for GDB.
-   Copyright 1992 Free Software Foundation, Inc.
+   Copyright (C) 1992-2024 Free Software Foundation, Inc.
    Contributed by Cygnus Support.  Written by John Gilmore.
 
-This file is part of GDB.
+   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 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 3 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.
+   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.  */
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef GDB_STABS_H
+#define GDB_STABS_H
 
 /* This file exists to hold the common definitions required of most of
    the symbol-readers that end up using stabs.  The common use of
@@ -24,60 +26,43 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    structures makes the stabs-oriented symbol readers able to call
    each others' functions as required.  */
 
-#if !defined (GDBSTABS_H)
-#define GDBSTABS_H
 
-/* Offsets in the psymtab's section_offsets array for various kinds of
-   stabs symbols.  Every psymtab built from stabs will have these offsets
-   filled in by these guidelines, so that when actually reading symbols, the
-   proper offset can simply be selected and added to the symbol value.  */
+/* Information is passed among various dbxread routines for accessing
+   symbol files.  A pointer to this structure is kept in the objfile,
+   using the dbx_objfile_data_key.  */
 
-#define        SECT_OFF_TEXT   0
-#define        SECT_OFF_DATA   1
-#define        SECT_OFF_BSS    2
-#define        SECT_OFF_RODATA 3
-#define        SECT_OFF_MAX    4               /* Count of possible values */
+struct dbx_symfile_info
+  {
+    ~dbx_symfile_info ();
 
-/* The stab_section_info chain remembers info from the ELF symbol table,
-   while psymtabs are being built for the other symbol tables in the 
-   objfile.  It is destroyed at the complation of psymtab-reading.
-   Any info that was used from it has been copied into psymtabs.  */
+    CORE_ADDR text_addr = 0;   /* Start of text section */
+    int text_size = 0;         /* Size of text section */
+    int symcount = 0;          /* How many symbols are there in the file */
+    char *stringtab = nullptr;         /* The actual string table */
+    int stringtab_size = 0;            /* Its size */
+    file_ptr symtab_offset = 0;        /* Offset in file to symbol table */
+    int symbol_size = 0;               /* Bytes in a single symbol */
 
-struct stab_section_info {
-  char *filename;
-  CORE_ADDR sections[SECT_OFF_MAX];
-  struct stab_section_info *next;
-  int found;           /* Count of times it's found in searching */
-};
+    /* See stabsread.h for the use of the following.  */
+    struct header_file *header_files = nullptr;
+    int n_header_files = 0;
+    int n_allocated_header_files = 0;
 
-/* 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 const registry<objfile>::key<dbx_symfile_info> dbx_objfile_data_key;
+
+#define DBX_SYMFILE_INFO(o)    (dbx_objfile_data_key.get (o))
 #define DBX_TEXT_ADDR(o)       (DBX_SYMFILE_INFO(o)->text_addr)
 #define DBX_TEXT_SIZE(o)       (DBX_SYMFILE_INFO(o)->text_size)
 #define DBX_SYMCOUNT(o)                (DBX_SYMFILE_INFO(o)->symcount)
@@ -88,5 +73,6 @@ struct dbx_symfile_info {
 #define DBX_TEXT_SECTION(o)    (DBX_SYMFILE_INFO(o)->text_section)
 #define DBX_DATA_SECTION(o)    (DBX_SYMFILE_INFO(o)->data_section)
 #define DBX_BSS_SECTION(o)     (DBX_SYMFILE_INFO(o)->bss_section)
+#define DBX_STAB_SECTION(o)    (DBX_SYMFILE_INFO(o)->stab_section)
 
-#endif /* GDBSTABS_H */
+#endif /* GDB_STABS_H */