2003-08-21 Andrew Cagney <cagney@redhat.com>
authorAndrew Cagney <cagney@redhat.com>
Thu, 21 Aug 2003 20:43:10 +0000 (20:43 +0000)
committerAndrew Cagney <cagney@redhat.com>
Thu, 21 Aug 2003 20:43:10 +0000 (20:43 +0000)
* sh3-rom.c (sh3_open, sh3e_open): Use gdbarch_update_p to select
a specific architecture.
* arch-utils.h (set_architecture_from_arch_mach): Delete
declaration.
(target_architecture_hook): Delete declaration.
* arch-utils.c: Delete non GDB_MULTI_ARCH includes.
(default_float_format): Assume GDB_MULTI_ARCH.
(default_double_format): Assume GDB_MULTI_ARCH.
(set_endian_from_file): Delete function.
(arch_ok): Delete function.
(set_arch): Delete function.
(set_architecture_from_arch_mach): Delete function.
(set_architecture_from_file): Delete function.
(set_architecture): Assume GDB_MULTI_ARCH.
(set_gdbarch_from_file): Assume GDB_MULTI_ARCH.

gdb/ChangeLog
gdb/arch-utils.c
gdb/arch-utils.h
gdb/sh3-rom.c

index fae853e46cfc411d47c0a532f6abca3350ed6cb9..c0c62696c06f698bcf801c1973ee63453b3192c0 100644 (file)
@@ -1,3 +1,21 @@
+2003-08-21  Andrew Cagney  <cagney@redhat.com>
+
+       * sh3-rom.c (sh3_open, sh3e_open): Use gdbarch_update_p to select
+       a specific architecture.
+       * arch-utils.h (set_architecture_from_arch_mach): Delete
+       declaration.
+       (target_architecture_hook): Delete declaration.
+       * arch-utils.c: Delete non GDB_MULTI_ARCH includes.
+       (default_float_format): Assume GDB_MULTI_ARCH.
+       (default_double_format): Assume GDB_MULTI_ARCH.
+       (set_endian_from_file): Delete function.
+       (arch_ok): Delete function.
+       (set_arch): Delete function.
+       (set_architecture_from_arch_mach): Delete function.
+       (set_architecture_from_file): Delete function.
+       (set_architecture): Assume GDB_MULTI_ARCH.
+       (set_gdbarch_from_file): Assume GDB_MULTI_ARCH.
+
 2003-08-21  Mark Kettenis  <kettenis@gnu.org>
 
        Rewrite FreeBSD/sparc64 native configuration.
index 40a863b26f81a2eaca942ccd73d38329ec4177e9..968508df04d21a0056736a47f740745bce0212d0 100644 (file)
 
 #include "defs.h"
 
-#if GDB_MULTI_ARCH
 #include "arch-utils.h"
 #include "gdbcmd.h"
 #include "inferior.h"          /* enum CALL_DUMMY_LOCATION et.al. */
-#else
-/* Just include everything in sight so that the every old definition
-   of macro is visible. */
-#include "symtab.h"
-#include "frame.h"
-#include "inferior.h"
-#include "breakpoint.h"
-#include "gdb_wait.h"
-#include "gdbcore.h"
-#include "gdbcmd.h"
-#include "target.h"
-#include "annotate.h"
-#endif
 #include "gdb_string.h"
 #include "regcache.h"
 #include "gdb_assert.h"
@@ -182,11 +168,7 @@ core_addr_greaterthan (CORE_ADDR lhs, CORE_ADDR rhs)
 const struct floatformat *
 default_float_format (struct gdbarch *gdbarch)
 {
-#if GDB_MULTI_ARCH
   int byte_order = gdbarch_byte_order (gdbarch);
-#else
-  int byte_order = TARGET_BYTE_ORDER;
-#endif
   switch (byte_order)
     {
     case BFD_ENDIAN_BIG:
@@ -203,11 +185,7 @@ default_float_format (struct gdbarch *gdbarch)
 const struct floatformat *
 default_double_format (struct gdbarch *gdbarch)
 {
-#if GDB_MULTI_ARCH
   int byte_order = gdbarch_byte_order (gdbarch);
-#else
-  int byte_order = TARGET_BYTE_ORDER;
-#endif
   switch (byte_order)
     {
     case BFD_ENDIAN_BIG:
@@ -436,39 +414,21 @@ set_endian (char *ignore_args, int from_tty, struct cmd_list_element *c)
     }
   else if (set_endian_string == endian_little)
     {
+      struct gdbarch_info info;
       target_byte_order_auto = 0;
-      if (GDB_MULTI_ARCH)
-       {
-         struct gdbarch_info info;
-         gdbarch_info_init (&info);
-         info.byte_order = BFD_ENDIAN_LITTLE;
-         if (! gdbarch_update_p (info))
-           {
-             printf_unfiltered ("Little endian target not supported by GDB\n");
-           }
-       }
-      else
-       {
-         target_byte_order = BFD_ENDIAN_LITTLE;
-       }
+      gdbarch_info_init (&info);
+      info.byte_order = BFD_ENDIAN_LITTLE;
+      if (! gdbarch_update_p (info))
+       printf_unfiltered ("Little endian target not supported by GDB\n");
     }
   else if (set_endian_string == endian_big)
     {
+      struct gdbarch_info info;
       target_byte_order_auto = 0;
-      if (GDB_MULTI_ARCH)
-       {
-         struct gdbarch_info info;
-         gdbarch_info_init (&info);
-         info.byte_order = BFD_ENDIAN_BIG;
-         if (! gdbarch_update_p (info))
-           {
-             printf_unfiltered ("Big endian target not supported by GDB\n");
-           }
-       }
-      else
-       {
-         target_byte_order = BFD_ENDIAN_BIG;
-       }
+      gdbarch_info_init (&info);
+      info.byte_order = BFD_ENDIAN_BIG;
+      if (! gdbarch_update_p (info))
+       printf_unfiltered ("Big endian target not supported by GDB\n");
     }
   else
     internal_error (__FILE__, __LINE__,
@@ -476,28 +436,6 @@ set_endian (char *ignore_args, int from_tty, struct cmd_list_element *c)
   show_endian (NULL, from_tty);
 }
 
-/* Set the endianness from a BFD.  */
-
-static void
-set_endian_from_file (bfd *abfd)
-{
-  int want;
-  if (GDB_MULTI_ARCH)
-    internal_error (__FILE__, __LINE__,
-                   "set_endian_from_file: not for multi-arch");
-  if (bfd_big_endian (abfd))
-    want = BFD_ENDIAN_BIG;
-  else
-    want = BFD_ENDIAN_LITTLE;
-  if (TARGET_BYTE_ORDER_AUTO)
-    target_byte_order = want;
-  else if (TARGET_BYTE_ORDER != want)
-    warning ("%s endian file does not match %s endian target.",
-            want == BFD_ENDIAN_BIG ? "big" : "little",
-            TARGET_BYTE_ORDER == BFD_ENDIAN_BIG ? "big" : "little");
-}
-
-
 /* Functions to manipulate the architecture of the target */
 
 enum set_arch { set_arch_auto, set_arch_manual };
@@ -506,96 +444,6 @@ int target_architecture_auto = 1;
 
 const char *set_architecture_string;
 
-/* Old way of changing the current architecture. */
-
-extern const struct bfd_arch_info bfd_default_arch_struct;
-const struct bfd_arch_info *target_architecture = &bfd_default_arch_struct;
-int (*target_architecture_hook) (const struct bfd_arch_info *ap);
-
-static int
-arch_ok (const struct bfd_arch_info *arch)
-{
-  if (GDB_MULTI_ARCH)
-    internal_error (__FILE__, __LINE__,
-                   "arch_ok: not multi-arched");
-  /* Should be performing the more basic check that the binary is
-     compatible with GDB. */
-  /* Check with the target that the architecture is valid. */
-  return (target_architecture_hook == NULL
-         || target_architecture_hook (arch));
-}
-
-static void
-set_arch (const struct bfd_arch_info *arch,
-          enum set_arch type)
-{
-  if (GDB_MULTI_ARCH)
-    internal_error (__FILE__, __LINE__,
-                   "set_arch: not multi-arched");
-  switch (type)
-    {
-    case set_arch_auto:
-      if (!arch_ok (arch))
-       warning ("Target may not support %s architecture",
-                arch->printable_name);
-      target_architecture = arch;
-      break;
-    case set_arch_manual:
-      if (!arch_ok (arch))
-       {
-         printf_unfiltered ("Target does not support `%s' architecture.\n",
-                            arch->printable_name);
-       }
-      else
-       {
-         target_architecture_auto = 0;
-         target_architecture = arch;
-       }
-      break;
-    }
-  if (gdbarch_debug)
-    gdbarch_dump (current_gdbarch, gdb_stdlog);
-}
-
-/* Set the architecture from arch/machine (deprecated) */
-
-void
-set_architecture_from_arch_mach (enum bfd_architecture arch,
-                                unsigned long mach)
-{
-  const struct bfd_arch_info *wanted = bfd_lookup_arch (arch, mach);
-  if (GDB_MULTI_ARCH)
-    internal_error (__FILE__, __LINE__,
-                   "set_architecture_from_arch_mach: not multi-arched");
-  if (wanted != NULL)
-    set_arch (wanted, set_arch_manual);
-  else
-    internal_error (__FILE__, __LINE__,
-                   "gdbarch: hardwired architecture/machine not recognized");
-}
-
-/* Set the architecture from a BFD (deprecated) */
-
-static void
-set_architecture_from_file (bfd *abfd)
-{
-  const struct bfd_arch_info *wanted = bfd_get_arch_info (abfd);
-  if (GDB_MULTI_ARCH)
-    internal_error (__FILE__, __LINE__,
-                   "set_architecture_from_file: not multi-arched");
-  if (target_architecture_auto)
-    {
-      set_arch (wanted, set_arch_auto);
-    }
-  else if (wanted != target_architecture)
-    {
-      warning ("%s architecture file may be incompatible with %s target.",
-              wanted->printable_name,
-              target_architecture->printable_name);
-    }
-}
-
-
 /* Called if the user enters ``show architecture'' without an
    argument. */
 
@@ -621,7 +469,7 @@ set_architecture (char *ignore_args, int from_tty, struct cmd_list_element *c)
     {
       target_architecture_auto = 1;
     }
-  else if (GDB_MULTI_ARCH)
+  else
     {
       struct gdbarch_info info;
       gdbarch_info_init (&info);
@@ -635,15 +483,6 @@ set_architecture (char *ignore_args, int from_tty, struct cmd_list_element *c)
        printf_unfiltered ("Architecture `%s' not recognized.\n",
                           set_architecture_string);
     }
-  else
-    {
-      const struct bfd_arch_info *arch
-       = bfd_scan_arch (set_architecture_string);
-      if (arch == NULL)
-       internal_error (__FILE__, __LINE__,
-                       "set_architecture: bfd_scan_arch failed");
-      set_arch (arch, set_arch_manual);
-    }
   show_architecture (NULL, from_tty);
 }
 
@@ -653,19 +492,11 @@ set_architecture (char *ignore_args, int from_tty, struct cmd_list_element *c)
 void
 set_gdbarch_from_file (bfd *abfd)
 {
-  if (GDB_MULTI_ARCH)
-    {
-      struct gdbarch_info info;
-      gdbarch_info_init (&info);
-      info.abfd = abfd;
-      if (! gdbarch_update_p (info))
-       error ("Architecture of file not recognized.\n");
-    }
-  else
-    {
-      set_architecture_from_file (abfd);
-      set_endian_from_file (abfd);
-    }
+  struct gdbarch_info info;
+  gdbarch_info_init (&info);
+  info.abfd = abfd;
+  if (! gdbarch_update_p (info))
+    error ("Architecture of file not recognized.\n");
 }
 
 /* Initialize the current architecture.  Update the ``set
@@ -752,22 +583,9 @@ initialize_current_architecture (void)
       info.byte_order = BFD_ENDIAN_BIG;
     }
 
-  if (GDB_MULTI_ARCH)
-    {
-      if (! gdbarch_update_p (info))
-       {
-         internal_error (__FILE__, __LINE__,
-                         "initialize_current_architecture: Selection of initial architecture failed");
-       }
-    }
-  else
-    {
-      /* If the multi-arch logic comes up with a byte-order (from BFD)
-         use it for the non-multi-arch case.  */
-      if (info.byte_order != BFD_ENDIAN_UNKNOWN)
-       target_byte_order = info.byte_order;
-      initialize_non_multiarch ();
-    }
+  if (! gdbarch_update_p (info))
+    internal_error (__FILE__, __LINE__,
+                   "initialize_current_architecture: Selection of initial architecture failed");
 
   /* Create the ``set architecture'' command appending ``auto'' to the
      list of architectures. */
index fcea5310b250aff7565553a2cd75c505b28fcf66..6f53a8d93a436b00cc4ec0bb7e9886b8275b5101 100644 (file)
@@ -78,22 +78,6 @@ extern int core_addr_greaterthan (CORE_ADDR lhs, CORE_ADDR rhs);
 extern const struct floatformat *default_float_format (struct gdbarch *gdbarch);
 extern const struct floatformat *default_double_format (struct gdbarch *gdbarch);
 
-/* The following DEPRECATED interfaces are for pre- multi-arch legacy
-   targets. */
-
-/* DEPRECATED pre- multi-arch interface.  Explicitly set the dynamic
-   target-system-dependent parameters based on bfd_architecture and
-   machine.  This function is deprecated, use
-   set_gdbarch_from_arch_machine(). */
-
-extern void set_architecture_from_arch_mach (enum bfd_architecture, unsigned long);
-
-/* DEPRECATED pre- multi-arch interface.  Notify the target dependent
-   backend of a change to the selected architecture. A zero return
-   status indicates that the target did not like the change. */
-
-extern int (*target_architecture_hook) (const struct bfd_arch_info *);
-
 /* Identity function on a CORE_ADDR.  Just returns its parameter.  */
 
 extern CORE_ADDR core_addr_identity (CORE_ADDR addr);
index b946e6fd71c3b0056099591998e5e7dd2dc40786..ec274ef26df211cdf36f14532c98c738a8ebfb0b 100644 (file)
@@ -281,8 +281,15 @@ sh3_open (char *args, int from_tty)
       parallel_in_use = 1;
     }
 
+
   /* If we connected successfully, we know the processor is an SH3.  */
-  set_architecture_from_arch_mach (bfd_arch_sh, bfd_mach_sh3);
+  {
+    struct gdbarch_info info;
+    gdbarch_info_init (&info);
+    info.bfd_arch_info = bfd_lookup_arch (bfd_arch_sh, bfd_mach_sh3);
+    if (!gdbarch_update_p (info))
+      error ("Target is not an SH3");
+  }
 }
 
 
@@ -329,7 +336,13 @@ sh3e_open (char *args, int from_tty)
     }
 
   /* If we connected successfully, we know the processor is an SH3E.  */
-  set_architecture_from_arch_mach (bfd_arch_sh, bfd_mach_sh3);
+  {
+    struct gdbarch_info info;
+    gdbarch_info_init (&info);
+    info.bfd_arch_info = bfd_lookup_arch (bfd_arch_sh, bfd_mach_sh3);
+    if (!gdbarch_update_p (info))
+      error ("Target is not an SH3");
+  }
 }
 
 static void