*** empty log message ***
[deliverable/binutils-gdb.git] / gdb / osabi.c
index ea84456cc7bd5e27930c2de51c23ba3edf7af502..55de9f007a35b8f3bfaf323499f2fa8388478252 100644 (file)
@@ -1,6 +1,6 @@
 /* OS ABI variant handling for GDB.
 
-   Copyright 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2002, 2003, 2004, 2007 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -16,8 +16,8 @@
   
    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.  */
+   Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
 
 #include "defs.h"
 
@@ -71,12 +71,10 @@ static const char * const gdb_osabi_names[] =
   "HP/UX ELF",
   "HP/UX SOM",
 
-  "ARM EABI v1",
-  "ARM EABI v2",
-  "ARM APCS",
   "QNX Neutrino",
 
   "Cygwin",
+  "AIX",
 
   "<invalid>"
 };
@@ -117,9 +115,9 @@ gdbarch_register_osabi (enum bfd_architecture arch, unsigned long machine,
     {
       internal_error
        (__FILE__, __LINE__,
-        "gdbarch_register_osabi: An attempt to register a handler for "
+        _("gdbarch_register_osabi: An attempt to register a handler for "
          "OS ABI \"%s\" for architecture %s was made.  The handler will "
-        "not be registered",
+        "not be registered"),
         gdbarch_osabi_name (osabi),
         bfd_printable_arch_mach (arch, machine));
       return;
@@ -135,8 +133,8 @@ gdbarch_register_osabi (enum bfd_architecture arch, unsigned long machine,
        {
          internal_error
            (__FILE__, __LINE__,
-            "gdbarch_register_osabi: A handler for OS ABI \"%s\" "
-            "has already been registered for architecture %s",
+            _("gdbarch_register_osabi: A handler for OS ABI \"%s\" "
+            "has already been registered for architecture %s"),
             gdbarch_osabi_name (osabi),
             arch_info->printable_name);
          /* If user wants to continue, override previous definition.  */
@@ -209,14 +207,9 @@ gdbarch_lookup_osabi (bfd *abfd)
     return user_selected_osabi;
 
   /* If we don't have a binary, return the default OS ABI (if set) or
-     an inconclusive result (otherwise).  */
+     unknown (otherwise).  */
   if (abfd == NULL) 
-    {
-      if (GDB_OSABI_DEFAULT != GDB_OSABI_UNKNOWN)
-       return GDB_OSABI_DEFAULT;
-      else
-       return GDB_OSABI_UNINITIALIZED;
-    }
+    return GDB_OSABI_DEFAULT;
 
   match = GDB_OSABI_UNKNOWN;
   match_specific = 0;
@@ -233,8 +226,8 @@ gdbarch_lookup_osabi (bfd *abfd)
            {
              internal_error
                (__FILE__, __LINE__,
-                "gdbarch_lookup_osabi: invalid OS ABI (%d) from sniffer "
-                "for architecture %s flavour %d",
+                _("gdbarch_lookup_osabi: invalid OS ABI (%d) from sniffer "
+                "for architecture %s flavour %d"),
                 (int) osabi,
                 bfd_printable_arch_mach (bfd_get_arch (abfd), 0),
                 (int) bfd_get_flavour (abfd));
@@ -252,9 +245,9 @@ gdbarch_lookup_osabi (bfd *abfd)
                    {
                      internal_error
                        (__FILE__, __LINE__,
-                        "gdbarch_lookup_osabi: multiple %sspecific OS ABI "
+                        _("gdbarch_lookup_osabi: multiple %sspecific OS ABI "
                         "match for architecture %s flavour %d: first "
-                        "match \"%s\", second match \"%s\"",
+                        "match \"%s\", second match \"%s\""),
                         match_specific ? "" : "non-",
                         bfd_printable_arch_mach (bfd_get_arch (abfd), 0),
                         (int) bfd_get_flavour (abfd),
@@ -447,8 +440,8 @@ generic_elf_osabi_sniff_abi_tag_sections (bfd *abfd, asection *sect, void *obj)
              break;
 
            default:
-             internal_error (__FILE__, __LINE__, "\
-generic_elf_osabi_sniff_abi_tag_sections: unknown OS number %d",
+             internal_error (__FILE__, __LINE__, _("\
+generic_elf_osabi_sniff_abi_tag_sections: unknown OS number %d"),
                              abi_tag);
            }
          return;
@@ -549,7 +542,8 @@ generic_elf_osabi_sniffer (bfd *abfd)
       /* The FreeBSD folks have been naughty; they stored the string
          "FreeBSD" in the padding of the e_ident field of the ELF
          header to "brand" their ELF binaries in FreeBSD 3.x.  */
-      if (strcmp (&elf_elfheader (abfd)->e_ident[8], "FreeBSD") == 0)
+      if (memcmp (&elf_elfheader (abfd)->e_ident[8],
+                 "FreeBSD", sizeof ("FreeBSD")) == 0)
        osabi = GDB_OSABI_FREEBSD_ELF;
     }
 
@@ -585,7 +579,7 @@ set_osabi (char *args, int from_tty, struct cmd_list_element *c)
          }
       if (i == GDB_OSABI_INVALID)
        internal_error (__FILE__, __LINE__,
-                       "Invalid OS ABI \"%s\" passed to command handler.",
+                       _("Invalid OS ABI \"%s\" passed to command handler."),
                        set_osabi_string);
     }
 
@@ -593,22 +587,24 @@ set_osabi (char *args, int from_tty, struct cmd_list_element *c)
      graceful here.  */
   gdbarch_info_init (&info);
   if (! gdbarch_update_p (info))
-    internal_error (__FILE__, __LINE__, "Updating OS ABI failed.");
+    internal_error (__FILE__, __LINE__, _("Updating OS ABI failed."));
 }
 
 static void
-show_osabi (char *args, int from_tty)
+show_osabi (struct ui_file *file, int from_tty, struct cmd_list_element *c,
+           const char *value)
 {
   if (user_osabi_state == osabi_auto)
-    printf_filtered ("The current OS ABI is \"auto\" (currently \"%s\").\n",
-                    gdbarch_osabi_name (gdbarch_osabi (current_gdbarch)));
+    fprintf_filtered (file,
+                     _("The current OS ABI is \"auto\" (currently \"%s\").\n"),
+                     gdbarch_osabi_name (gdbarch_osabi (current_gdbarch)));
   else
-    printf_filtered ("The current OS ABI is \"%s\".\n",
-                    gdbarch_osabi_name (user_selected_osabi));
+    fprintf_filtered (file, _("The current OS ABI is \"%s\".\n"),
+                     gdbarch_osabi_name (user_selected_osabi));
 
   if (GDB_OSABI_DEFAULT != GDB_OSABI_UNKNOWN)
-    printf_filtered ("The default OS ABI is \"%s\".\n",
-                    gdbarch_osabi_name (GDB_OSABI_DEFAULT));
+    fprintf_filtered (file, _("The default OS ABI is \"%s\".\n"),
+                     gdbarch_osabi_name (GDB_OSABI_DEFAULT));
 }
 \f
 extern initialize_file_ftype _initialize_gdb_osabi; /* -Wmissing-prototype */
@@ -621,7 +617,7 @@ _initialize_gdb_osabi (void)
   if (strcmp (gdb_osabi_names[GDB_OSABI_INVALID], "<invalid>") != 0)
     internal_error
       (__FILE__, __LINE__,
-       "_initialize_gdb_osabi: gdb_osabi_names[] is inconsistent");
+       _("_initialize_gdb_osabi: gdb_osabi_names[] is inconsistent"));
 
   /* Register a generic sniffer for ELF flavoured files.  */
   gdbarch_register_osabi_sniffer (bfd_arch_unknown,
@@ -629,11 +625,12 @@ _initialize_gdb_osabi (void)
                                  generic_elf_osabi_sniffer);
 
   /* Register the "set osabi" command.  */
-  c = add_set_enum_cmd ("osabi", class_support, gdb_osabi_available_names,
-                       &set_osabi_string, "Set OS ABI of target.", &setlist);
-
-  set_cmd_sfunc (c, set_osabi);
-  add_cmd ("osabi", class_support, show_osabi, "Show OS/ABI of target.",
-          &showlist);
+  add_setshow_enum_cmd ("osabi", class_support, gdb_osabi_available_names,
+                       &set_osabi_string, _("\
+Set OS ABI of target."), _("\
+Show OS ABI of target."), NULL,
+                       set_osabi,
+                       show_osabi,
+                       &setlist, &showlist);
   user_osabi_state = osabi_auto;
 }
This page took 0.028369 seconds and 4 git commands to generate.