This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[commit] Replace deprecated_select_gdbarch_hack with another


Hello,

This patch replaces the deprecated_select_gdbarch_hack with deprecated_current_gdbarch_select_hack (the latter being more robust) and gdbarch_find_by_info.

committed,
Andrew
2003-11-10  Andrew Cagney  <cagney@redhat.com>

	* arch-utils.c (deprecated_select_gdbarch_hack): Delete function.
	(gdbarch_from_bfd): Call gdbarch_find_by_info.
	(set_gdbarch_from_file): Call "deprecated_select_gdbarch_hack".

Index: arch-utils.c
===================================================================
RCS file: /cvs/src/src/gdb/arch-utils.c,v
retrieving revision 1.104
diff -u -r1.104 arch-utils.c
--- arch-utils.c	10 Nov 2003 04:39:17 -0000	1.104
+++ arch-utils.c	10 Nov 2003 16:02:31 -0000
@@ -528,31 +528,6 @@
   return 1;
 }
 
-/* FIXME: kettenis/20031124: Of the functions that follow, only
-   gdbarch_from_bfd is supposed to survive.  The others will
-   dissappear since in the future GDB will (hopefully) be truly
-   multi-arch.  However, for now we're still stuck with the concept of
-   a single active architecture.  */
-
-/* Make GDBARCH the currently selected architecture.  */
-
-static void
-deprecated_select_gdbarch_hack (struct gdbarch *gdbarch)
-{
-  struct gdbarch_info info;
-
-  /* FIXME: kettenis/20031024: The only way to select a specific
-     architecture is to clone its `struct gdbarch_info', and update
-     according to that copy.  This is gross, but significant work will
-     need to be done before we can take a more sane approach.  */
-  gdbarch_info_init (&info);
-  info.bfd_arch_info = gdbarch_bfd_arch_info (gdbarch);
-  info.byte_order = gdbarch_byte_order (gdbarch);
-  info.osabi = gdbarch_osabi (gdbarch);
-  gdbarch_update_p (info);
-  gdb_assert (gdbarch == current_gdbarch);
-}
-
 /* Return the architecture for ABFD.  If no suitable architecture
    could be find, return NULL.  */
 
@@ -563,19 +538,9 @@
   struct gdbarch *new_gdbarch;
   struct gdbarch_info info;
 
-  /* FIXME: kettenis/20031024: The only way to find the architecture
-     for a certain BFD is by doing an architecture update.  This
-     activates the architecture, so we need to reactivate the old
-     architecture.  This is gross, but significant work will need to
-     be done before we can take a more sane approach.  */
   gdbarch_info_init (&info);
   info.abfd = abfd;
-  if (! gdbarch_update_p (info))
-    return NULL;
-
-  new_gdbarch = current_gdbarch;
-  deprecated_select_gdbarch_hack (old_gdbarch);
-  return new_gdbarch;
+  return gdbarch_find_by_info (info);
 }
 
 /* Set the dynamic target-system-dependent parameters (architecture,
@@ -589,7 +554,7 @@
   gdbarch = gdbarch_from_bfd (abfd);
   if (gdbarch == NULL)
     error ("Architecture of file not recognized.\n");
-  deprecated_select_gdbarch_hack (gdbarch);
+  deprecated_current_gdbarch_select_hack (gdbarch);
 }
 
 /* Initialize the current architecture.  Update the ``set

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]