[binutils-gdb] Do not generate gdbarch.h

Tom Tromey tromey@sourceware.org
Fri Dec 17 22:12:32 GMT 2021


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=801e2396c64dc755b708e981454d927bb953783d

commit 801e2396c64dc755b708e981454d927bb953783d
Author: Tom Tromey <tom@tromey.com>
Date:   Tue Dec 14 16:49:05 2021 -0700

    Do not generate gdbarch.h
    
    Now that gdbarch.h has been split, we no longer need the generator
    code in gdbarch.sh, so remove it.

Diff:
---
 gdb/gdbarch.sh | 377 ---------------------------------------------------------
 1 file changed, 377 deletions(-)

diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh
index c970c7ae7f1..1acfda4be38 100755
--- a/gdb/gdbarch.sh
+++ b/gdb/gdbarch.sh
@@ -1286,383 +1286,6 @@ cat <<EOF
 EOF
 }
 
-#
-# The .h file
-#
-
-exec > new-gdbarch.h
-copyright | sed 1,3d | grep -v 'was created'
-cat <<EOF
-#ifndef GDBARCH_H
-#define GDBARCH_H
-
-#include <vector>
-#include "frame.h"
-#include "dis-asm.h"
-#include "gdb_obstack.h"
-#include "infrun.h"
-#include "osabi.h"
-#include "displaced-stepping.h"
-
-struct floatformat;
-struct ui_file;
-struct value;
-struct objfile;
-struct obj_section;
-struct minimal_symbol;
-struct regcache;
-struct reggroup;
-struct regset;
-struct disassemble_info;
-struct target_ops;
-struct obstack;
-struct bp_target_info;
-struct target_desc;
-struct symbol;
-struct syscall;
-struct agent_expr;
-struct axs_value;
-struct stap_parse_info;
-struct expr_builder;
-struct ravenscar_arch_ops;
-struct mem_range;
-struct syscalls_info;
-struct thread_info;
-struct ui_out;
-struct inferior;
-
-#include "regcache.h"
-
-struct gdbarch_tdep {};
-
-/* The architecture associated with the inferior through the
-   connection to the target.
-
-   The architecture vector provides some information that is really a
-   property of the inferior, accessed through a particular target:
-   ptrace operations; the layout of certain RSP packets; the solib_ops
-   vector; etc.  To differentiate architecture accesses to
-   per-inferior/target properties from
-   per-thread/per-frame/per-objfile properties, accesses to
-   per-inferior/target properties should be made through this
-   gdbarch.  */
-
-/* This is a convenience wrapper for 'current_inferior ()->gdbarch'.  */
-extern struct gdbarch *target_gdbarch (void);
-
-/* Callback type for the 'iterate_over_objfiles_in_search_order'
-   gdbarch  method.  */
-
-typedef int (iterate_over_objfiles_in_search_order_cb_ftype)
-  (struct objfile *objfile, void *cb_data);
-
-/* Callback type for regset section iterators.  The callback usually
-   invokes the REGSET's supply or collect method, to which it must
-   pass a buffer - for collects this buffer will need to be created using
-   COLLECT_SIZE, for supply the existing buffer being read from should
-   be at least SUPPLY_SIZE.  SECT_NAME is a BFD section name, and HUMAN_NAME
-   is used for diagnostic messages.  CB_DATA should have been passed
-   unchanged through the iterator.  */
-
-typedef void (iterate_over_regset_sections_cb)
-  (const char *sect_name, int supply_size, int collect_size,
-   const struct regset *regset, const char *human_name, void *cb_data);
-
-/* For a function call, does the function return a value using a
-   normal value return or a structure return - passing a hidden
-   argument pointing to storage.  For the latter, there are two
-   cases: language-mandated structure return and target ABI
-   structure return.  */
-
-enum function_call_return_method
-{
-  /* Standard value return.  */
-  return_method_normal = 0,
-
-  /* Language ABI structure return.  This is handled
-     by passing the return location as the first parameter to
-     the function, even preceding "this".  */
-  return_method_hidden_param,
-
-  /* Target ABI struct return.  This is target-specific; for instance,
-     on ia64 the first argument is passed in out0 but the hidden
-     structure return pointer would normally be passed in r8.  */
-  return_method_struct,
-};
-
-enum class memtag_type
-{
-  /* Logical tag, the tag that is stored in unused bits of a pointer to a
-     virtual address.  */
-  logical = 0,
-
-  /* Allocation tag, the tag that is associated with every granule of memory in
-     the physical address space.  Allocation tags are used to validate memory
-     accesses via pointers containing logical tags.  */
-  allocation,
-};
-
-/* Callback types for 'read_core_file_mappings' gdbarch method.  */
-
-using read_core_file_mappings_pre_loop_ftype =
-  gdb::function_view<void (ULONGEST count)>;
-
-using read_core_file_mappings_loop_ftype =
-  gdb::function_view<void (int num,
-			   ULONGEST start,
-			   ULONGEST end,
-			   ULONGEST file_ofs,
-			   const char *filename,
-			   const bfd_build_id *build_id)>;
-EOF
-# close it off
-cat <<EOF
-
-#include "gdbarch-gen.h"
-
-extern struct gdbarch_tdep *gdbarch_tdep (struct gdbarch *gdbarch);
-
-
-/* Mechanism for co-ordinating the selection of a specific
-   architecture.
-
-   GDB targets (*-tdep.c) can register an interest in a specific
-   architecture.  Other GDB components can register a need to maintain
-   per-architecture data.
-
-   The mechanisms below ensures that there is only a loose connection
-   between the set-architecture command and the various GDB
-   components.  Each component can independently register their need
-   to maintain architecture specific data with gdbarch.
-
-   Pragmatics:
-
-   Previously, a single TARGET_ARCHITECTURE_HOOK was provided.  It
-   didn't scale.
-
-   The more traditional mega-struct containing architecture specific
-   data for all the various GDB components was also considered.  Since
-   GDB is built from a variable number of (fairly independent)
-   components it was determined that the global aproach was not
-   applicable.  */
-
-
-/* Register a new architectural family with GDB.
-
-   Register support for the specified ARCHITECTURE with GDB.  When
-   gdbarch determines that the specified architecture has been
-   selected, the corresponding INIT function is called.
-
-   --
-
-   The INIT function takes two parameters: INFO which contains the
-   information available to gdbarch about the (possibly new)
-   architecture; ARCHES which is a list of the previously created
-   \`\`struct gdbarch'' for this architecture.
-
-   The INFO parameter is, as far as possible, be pre-initialized with
-   information obtained from INFO.ABFD or the global defaults.
-
-   The ARCHES parameter is a linked list (sorted most recently used)
-   of all the previously created architures for this architecture
-   family.  The (possibly NULL) ARCHES->gdbarch can used to access
-   values from the previously selected architecture for this
-   architecture family.
-
-   The INIT function shall return any of: NULL - indicating that it
-   doesn't recognize the selected architecture; an existing \`\`struct
-   gdbarch'' from the ARCHES list - indicating that the new
-   architecture is just a synonym for an earlier architecture (see
-   gdbarch_list_lookup_by_info()); a newly created \`\`struct gdbarch''
-   - that describes the selected architecture (see gdbarch_alloc()).
-
-   The DUMP_TDEP function shall print out all target specific values.
-   Care should be taken to ensure that the function works in both the
-   multi-arch and non- multi-arch cases.  */
-
-struct gdbarch_list
-{
-  struct gdbarch *gdbarch;
-  struct gdbarch_list *next;
-};
-
-struct gdbarch_info
-{
-  gdbarch_info ()
-    /* Ensure the union is zero-initialized.  Relies on the fact that there's
-       no member larger than TDESC_DATA.  */
-    : tdesc_data ()
-  {}
-
-  const struct bfd_arch_info *bfd_arch_info = nullptr;
-
-  enum bfd_endian byte_order = BFD_ENDIAN_UNKNOWN;
-
-  enum bfd_endian byte_order_for_code = BFD_ENDIAN_UNKNOWN;
-
-  bfd *abfd = nullptr;
-
-  union
-    {
-      /* Architecture-specific target description data.  Numerous targets
-	 need only this, so give them an easy way to hold it.  */
-      struct tdesc_arch_data *tdesc_data;
-
-      /* SPU file system ID.  This is a single integer, so using the
-	 generic form would only complicate code.  Other targets may
-	 reuse this member if suitable.  */
-      int *id;
-    };
-
-  enum gdb_osabi osabi = GDB_OSABI_UNKNOWN;
-
-  const struct target_desc *target_desc = nullptr;
-};
-
-typedef struct gdbarch *(gdbarch_init_ftype) (struct gdbarch_info info, struct gdbarch_list *arches);
-typedef void (gdbarch_dump_tdep_ftype) (struct gdbarch *gdbarch, struct ui_file *file);
-
-/* DEPRECATED - use gdbarch_register() */
-extern void register_gdbarch_init (enum bfd_architecture architecture, gdbarch_init_ftype *);
-
-extern void gdbarch_register (enum bfd_architecture architecture,
-			      gdbarch_init_ftype *,
-			      gdbarch_dump_tdep_ftype *);
-
-
-/* Return a vector of the valid architecture names.  Since architectures are
-   registered during the _initialize phase this function only returns useful
-   information once initialization has been completed.  */
-
-extern std::vector<const char *> gdbarch_printable_names ();
-
-
-/* Helper function.  Search the list of ARCHES for a GDBARCH that
-   matches the information provided by INFO.  */
-
-extern struct gdbarch_list *gdbarch_list_lookup_by_info (struct gdbarch_list *arches, const struct gdbarch_info *info);
-
-
-/* Helper function.  Create a preliminary \`\`struct gdbarch''.  Perform
-   basic initialization using values obtained from the INFO and TDEP
-   parameters.  set_gdbarch_*() functions are called to complete the
-   initialization of the object.  */
-
-extern struct gdbarch *gdbarch_alloc (const struct gdbarch_info *info, struct gdbarch_tdep *tdep);
-
-
-/* Helper function.  Free a partially-constructed \`\`struct gdbarch''.
-   It is assumed that the caller freeds the \`\`struct
-   gdbarch_tdep''.  */
-
-extern void gdbarch_free (struct gdbarch *);
-
-/* Get the obstack owned by ARCH.  */
-
-extern obstack *gdbarch_obstack (gdbarch *arch);
-
-/* Helper function.  Allocate memory from the \`\`struct gdbarch''
-   obstack.  The memory is freed when the corresponding architecture
-   is also freed.  */
-
-#define GDBARCH_OBSTACK_CALLOC(GDBARCH, NR, TYPE) \
-  obstack_calloc<TYPE> (gdbarch_obstack ((GDBARCH)), (NR))
-
-#define GDBARCH_OBSTACK_ZALLOC(GDBARCH, TYPE) \
-  obstack_zalloc<TYPE> (gdbarch_obstack ((GDBARCH)))
-
-/* Duplicate STRING, returning an equivalent string that's allocated on the
-   obstack associated with GDBARCH.  The string is freed when the corresponding
-   architecture is also freed.  */
-
-extern char *gdbarch_obstack_strdup (struct gdbarch *arch, const char *string);
-
-/* Helper function.  Force an update of the current architecture.
-
-   The actual architecture selected is determined by INFO, \`\`(gdb) set
-   architecture'' et.al., the existing architecture and BFD's default
-   architecture.  INFO should be initialized to zero and then selected
-   fields should be updated.
-
-   Returns non-zero if the update succeeds.  */
-
-extern int gdbarch_update_p (struct gdbarch_info info);
-
-
-/* Helper function.  Find an architecture matching info.
-
-   INFO should have relevant fields set, and then finished using
-   gdbarch_info_fill.
-
-   Returns the corresponding architecture, or NULL if no matching
-   architecture was found.  */
-
-extern struct gdbarch *gdbarch_find_by_info (struct gdbarch_info info);
-
-
-/* Helper function.  Set the target gdbarch to "gdbarch".  */
-
-extern void set_target_gdbarch (struct gdbarch *gdbarch);
-
-
-/* Register per-architecture data-pointer.
-
-   Reserve space for a per-architecture data-pointer.  An identifier
-   for the reserved data-pointer is returned.  That identifer should
-   be saved in a local static variable.
-
-   Memory for the per-architecture data shall be allocated using
-   gdbarch_obstack_zalloc.  That memory will be deleted when the
-   corresponding architecture object is deleted.
-
-   When a previously created architecture is re-selected, the
-   per-architecture data-pointer for that previous architecture is
-   restored.  INIT() is not re-called.
-
-   Multiple registrarants for any architecture are allowed (and
-   strongly encouraged).  */
-
-struct gdbarch_data;
-
-typedef void *(gdbarch_data_pre_init_ftype) (struct obstack *obstack);
-extern struct gdbarch_data *gdbarch_data_register_pre_init (gdbarch_data_pre_init_ftype *init);
-typedef void *(gdbarch_data_post_init_ftype) (struct gdbarch *gdbarch);
-extern struct gdbarch_data *gdbarch_data_register_post_init (gdbarch_data_post_init_ftype *init);
-
-extern void *gdbarch_data (struct gdbarch *gdbarch, struct gdbarch_data *);
-
-
-/* Set the dynamic target-system-dependent parameters (architecture,
-   byte-order, ...) using information found in the BFD.  */
-
-extern void set_gdbarch_from_file (bfd *);
-
-
-/* Initialize the current architecture to the "first" one we find on
-   our list.  */
-
-extern void initialize_current_architecture (void);
-
-/* gdbarch trace variable */
-extern unsigned int gdbarch_debug;
-
-extern void gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file);
-
-/* Return the number of cooked registers (raw + pseudo) for ARCH.  */
-
-static inline int
-gdbarch_num_cooked_regs (gdbarch *arch)
-{
-  return gdbarch_num_regs (arch) + gdbarch_num_pseudo_regs (arch);
-}
-
-#endif
-EOF
-
-exec 1>&2
-../move-if-change new-gdbarch.h gdbarch.h
-rm -f new-gdbarch.h
-
 exec > new-gdbarch-gen.h
 copyright


More information about the Gdb-cvs mailing list