Introduce dwarf2/public.h
authorTom Tromey <tom@tromey.com>
Sat, 20 Mar 2021 23:23:40 +0000 (17:23 -0600)
committerTom Tromey <tom@tromey.com>
Sat, 20 Mar 2021 23:23:40 +0000 (17:23 -0600)
This moves some more DWARF code out of symfile.h and into a new
header, dwarf2/public.h.  This header is intended to describe the
public API of the DWARF reader.

gdb/ChangeLog
2021-03-20  Tom Tromey  <tom@tromey.com>

* coffread.c: Include dwarf2/public.h.
* dwarf2/frame.c: Include dwarf2/public.h.
* dwarf2/index-write.h: Include dwarf2/public.h, not symfile.h.
* dwarf2/public.h: New file.
* dwarf2/read.c: Include dwarf2/public.h.
* elfread.c: Include dwarf2/public.h.
* machoread.c: Include dwarf2/public.h.
* symfile.h (dwarf2_has_info, enum dw_index_kind)
(dwarf2_initialize_objfile, dwarf2_build_psymtabs)
(dwarf2_build_frame_info): Move to dwarf2/public.h.
* xcoffread.c: Include dwarf2/public.h.

gdb/ChangeLog
gdb/coffread.c
gdb/dwarf2/frame.c
gdb/dwarf2/index-write.h
gdb/dwarf2/public.h [new file with mode: 0644]
gdb/dwarf2/read.c
gdb/elfread.c
gdb/machoread.c
gdb/symfile.h
gdb/xcoffread.c

index 5509d39d101bb2c007dd7150757c9e5236abf6ef..b06b6d23b663a31d0073cf4873b8f7f988c179c6 100644 (file)
@@ -1,3 +1,17 @@
+2021-03-20  Tom Tromey  <tom@tromey.com>
+
+       * coffread.c: Include dwarf2/public.h.
+       * dwarf2/frame.c: Include dwarf2/public.h.
+       * dwarf2/index-write.h: Include dwarf2/public.h, not symfile.h.
+       * dwarf2/public.h: New file.
+       * dwarf2/read.c: Include dwarf2/public.h.
+       * elfread.c: Include dwarf2/public.h.
+       * machoread.c: Include dwarf2/public.h.
+       * symfile.h (dwarf2_has_info, enum dw_index_kind)
+       (dwarf2_initialize_objfile, dwarf2_build_psymtabs)
+       (dwarf2_build_frame_info): Move to dwarf2/public.h.
+       * xcoffread.c: Include dwarf2/public.h.
+
 2021-03-20  Tom Tromey  <tom@tromey.com>
 
        * symfile.h (enum dwarf2_section_enum)
index 49a2485d38c228124788f32f0fe05cf26ff78a79..d15ba6593fc33ce03b063975bd1cdf5ed4049958 100644 (file)
@@ -36,6 +36,7 @@
 #include "target.h"
 #include "block.h"
 #include "dictionary.h"
+#include "dwarf2/public.h"
 
 #include "coff-pe-read.h"
 
index 4d62b197d3ac7c8774b6484db288b0d5a0c3ed61..f8612c96f274ea32ae561a6d448b9f4966cad54a 100644 (file)
@@ -37,6 +37,7 @@
 #include "complaints.h"
 #include "dwarf2/frame.h"
 #include "dwarf2/read.h"
+#include "dwarf2/public.h"
 #include "ax.h"
 #include "dwarf2/loc.h"
 #include "dwarf2/frame-tailcall.h"
index 5f6761c91a7d7b19bd2de0f7c83d300966caf37b..27f1f03cd8b8c9d8ec62754d4f04dba49da4d911 100644 (file)
@@ -20,8 +20,8 @@
 #ifndef DWARF_INDEX_WRITE_H
 #define DWARF_INDEX_WRITE_H
 
-#include "symfile.h"
 #include "dwarf2/read.h"
+#include "dwarf2/public.h"
 
 /* Create index files for OBJFILE in the directory DIR.
 
diff --git a/gdb/dwarf2/public.h b/gdb/dwarf2/public.h
new file mode 100644 (file)
index 0000000..d0182d4
--- /dev/null
@@ -0,0 +1,46 @@
+/* Public API for gdb DWARF reader
+
+   Copyright (C) 2021 Free Software Foundation, Inc.
+
+   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 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.
+
+   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 DWARF2_PUBLIC_H
+#define DWARF2_PUBLIC_H
+
+extern int dwarf2_has_info (struct objfile *,
+                            const struct dwarf2_debug_sections *,
+                           bool = false);
+
+/* A DWARF names index variant.  */
+enum class dw_index_kind
+{
+  /* GDB's own .gdb_index format.   */
+  GDB_INDEX,
+
+  /* DWARF5 .debug_names.  */
+  DEBUG_NAMES,
+};
+
+/* Initialize for reading DWARF for OBJFILE.  Return false if this
+   file will use psymtabs, or true if using an index, in which case
+   *INDEX_KIND is set to the index variant in use.  */
+extern bool dwarf2_initialize_objfile (struct objfile *objfile,
+                                      dw_index_kind *index_kind);
+
+extern void dwarf2_build_psymtabs (struct objfile *);
+extern void dwarf2_build_frame_info (struct objfile *);
+
+#endif /* DWARF2_PUBLIC_H */
index d6881300fa665b6991292f318a97884d7b5cea77..4d6d87b2e5e5f3313f6333cd5f13c72cb4b6d15c 100644 (file)
@@ -42,6 +42,7 @@
 #include "dwarf2/die.h"
 #include "dwarf2/sect-names.h"
 #include "dwarf2/stringify.h"
+#include "dwarf2/public.h"
 #include "bfd.h"
 #include "elf-bfd.h"
 #include "symtab.h"
index ce63d6b4b562a1011cf6bae7f1b6c48843bea941..8f06c8edc7944cf41d3376522d40f07701e21562 100644 (file)
@@ -51,6 +51,7 @@
 #include "gdbsupport/gdb_string_view.h"
 #include "gdbsupport/scoped_fd.h"
 #include "debuginfod-support.h"
+#include "dwarf2/public.h"
 
 /* Forward declarations.  */
 extern const struct sym_fns elf_sym_fns_gdb_index;
index 0ff61e12f5a083b5252d83e37cf28d9aba61402a..ff50ae54f2a0dbfd1905610cf2e2bb308263dacd 100644 (file)
@@ -32,6 +32,7 @@
 #include "gdb_bfd.h"
 #include <string>
 #include <algorithm>
+#include "dwarf2/public.h"
 
 /* If non-zero displays debugging message.  */
 static unsigned int mach_o_debug_level = 0;
index 5a5b4c4ac3ba87946cb57aa531b77852e62fbc73..da49911c5cf1029a75144e8120cb5c8967a6c286 100644 (file)
@@ -552,32 +552,6 @@ void map_symbol_filenames (symbol_filename_ftype *fun, void *data,
    optional offset to apply to each section.  */
 extern void generic_load (const char *args, int from_tty);
 
-/* From dwarf2read.c */
-
-struct dwarf2_debug_sections;
-extern int dwarf2_has_info (struct objfile *,
-                           const struct dwarf2_debug_sections *,
-                           bool = false);
-
-/* A DWARF names index variant.  */
-enum class dw_index_kind
-{
-  /* GDB's own .gdb_index format.   */
-  GDB_INDEX,
-
-  /* DWARF5 .debug_names.  */
-  DEBUG_NAMES,
-};
-
-/* Initialize for reading DWARF for OBJFILE.  Return false if this
-   file will use psymtabs, or true if using an index, in which case
-   *INDEX_KIND is set to the index variant in use.  */
-extern bool dwarf2_initialize_objfile (struct objfile *objfile,
-                                      dw_index_kind *index_kind);
-
-extern void dwarf2_build_psymtabs (struct objfile *);
-extern void dwarf2_build_frame_info (struct objfile *);
-
 /* From minidebug.c.  */
 
 extern gdb_bfd_ref_ptr find_separate_debug_file_in_section (struct objfile *);
index b1768702e26fe414f545a790114b09093af3e0f4..612ffb178c5b46efbd5151e422fdbc0b0fde8054 100644 (file)
@@ -48,6 +48,7 @@
 #include "complaints.h"
 #include "psympriv.h"
 #include "dwarf2/sect-names.h"
+#include "dwarf2/public.h"
 
 #include "gdb-stabs.h"