PR 10437
[binutils-gdb.git] / gas / config / obj-som.c
index 396b500951dd449b43cf31110a0cf676b46da2a3..1d51283a21c73d80705b25df96b154bbeb53437f 100644 (file)
@@ -1,11 +1,12 @@
 /* SOM object file format.
 /* SOM object file format.
-   Copyright 1993, 1994, 1998, 2000, 2002 Free Software Foundation, Inc.
+   Copyright 1993, 1994, 1998, 2000, 2002, 2003, 2004, 2005, 2006,
+   2007, 2008  Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
 
    GAS is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as
 
    This file is part of GAS, the GNU Assembler.
 
    GAS 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 2,
+   published by the Free Software Foundation; either version 3,
    or (at your option) any later version.
 
    GAS is distributed in the hope that it will be useful, but
    or (at your option) any later version.
 
    GAS is distributed in the hope that it will be useful, but
@@ -15,8 +16,8 @@
 
    You should have received a copy of the GNU General Public License
    along with GAS; see the file COPYING.  If not, write to the Free
 
    You should have received a copy of the GNU General Public License
    along with GAS; see the file COPYING.  If not, write to the Free
-   Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-   02111-1307, USA.
+   Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
+   02110-1301, USA.
 
    Written by the Center for Software Science at the University of Utah
    and by Cygnus Support.  */
 
    Written by the Center for Software Science at the University of Utah
    and by Cygnus Support.  */
 #include "aout/stab_gnu.h"
 #include "obstack.h"
 
 #include "aout/stab_gnu.h"
 #include "obstack.h"
 
-static void obj_som_weak PARAMS ((int));
-static void adjust_stab_sections PARAMS ((bfd *, asection *, PTR));
-
-const pseudo_typeS obj_pseudo_table[] =
-{
-  {"weak", obj_som_weak, 0},
-  {NULL, NULL, 0}
-};
-
 static int version_seen = 0;
 static int copyright_seen = 0;
 static int compiler_seen = 0;
 static int version_seen = 0;
 static int copyright_seen = 0;
 static int compiler_seen = 0;
@@ -42,7 +34,7 @@ static int compiler_seen = 0;
 /* Unused by SOM.  */
 
 void
 /* Unused by SOM.  */
 
 void
-obj_read_begin_hook ()
+obj_read_begin_hook (void)
 {
 }
 
 {
 }
 
@@ -52,8 +44,7 @@ obj_read_begin_hook ()
    string is "sourcefile language version" and is delimited by blanks.  */
 
 void
    string is "sourcefile language version" and is delimited by blanks.  */
 
 void
-obj_som_compiler (unused)
-     int unused ATTRIBUTE_UNUSED;
+obj_som_compiler (int unused ATTRIBUTE_UNUSED)
 {
   char *buf;
   char c;
 {
   char *buf;
   char c;
@@ -64,7 +55,7 @@ obj_som_compiler (unused)
 
   if (compiler_seen)
     {
 
   if (compiler_seen)
     {
-      as_bad ("Only one .compiler pseudo-op per file!");
+      as_bad (_("Only one .compiler pseudo-op per file!"));
       ignore_rest_of_line ();
       return;
     }
       ignore_rest_of_line ();
       return;
     }
@@ -81,7 +72,7 @@ obj_som_compiler (unused)
     }
   else
     {
     }
   else
     {
-      as_bad ("Expected quoted string");
+      as_bad (_("Expected quoted string"));
       ignore_rest_of_line ();
       return;
     }
       ignore_rest_of_line ();
       return;
     }
@@ -94,7 +85,7 @@ obj_som_compiler (unused)
     p++;
   if (*p == '\000')
     {
     p++;
   if (*p == '\000')
     {
-      as_bad (".compiler directive missing language and version");
+      as_bad (_(".compiler directive missing language and version"));
       return;
     }
   *p = '\000';
       return;
     }
   *p = '\000';
@@ -104,7 +95,7 @@ obj_som_compiler (unused)
     p++;
   if (*p == '\000')
     {
     p++;
   if (*p == '\000')
     {
-      as_bad (".compiler directive missing version");
+      as_bad (_(".compiler directive missing version"));
       return;
     }
   *p = '\000';
       return;
     }
   *p = '\000';
@@ -120,7 +111,7 @@ obj_som_compiler (unused)
                                         "GNU Tools", version_id))
     {
       bfd_perror (stdoutput->filename);
                                         "GNU Tools", version_id))
     {
       bfd_perror (stdoutput->filename);
-      as_fatal ("FATAL: Attaching compiler header %s", stdoutput->filename);
+      as_fatal (_("FATAL: Attaching compiler header %s"), stdoutput->filename);
     }
   *input_line_pointer = c;
   demand_empty_rest_of_line ();
     }
   *input_line_pointer = c;
   demand_empty_rest_of_line ();
@@ -129,8 +120,7 @@ obj_som_compiler (unused)
 /* Handle a .version directive.  */
 
 void
 /* Handle a .version directive.  */
 
 void
-obj_som_version (unused)
-     int unused ATTRIBUTE_UNUSED;
+obj_som_version (int unused ATTRIBUTE_UNUSED)
 {
   char *version, c;
 
 {
   char *version, c;
 
@@ -160,12 +150,9 @@ obj_som_version (unused)
 
   version_seen = 1;
   if (!bfd_som_attach_aux_hdr (stdoutput, VERSION_AUX_ID, version))
 
   version_seen = 1;
   if (!bfd_som_attach_aux_hdr (stdoutput, VERSION_AUX_ID, version))
-    {
-      bfd_perror (stdoutput->filename);
-      as_perror (_("FATAL: Attaching version header %s"),
-                stdoutput->filename);
-      exit (EXIT_FAILURE);
-    }
+    as_fatal (_("attaching version header %s: %s"),
+             stdoutput->filename, bfd_errmsg (bfd_get_error ()));
+
   *input_line_pointer = c;
   demand_empty_rest_of_line ();
 }
   *input_line_pointer = c;
   demand_empty_rest_of_line ();
 }
@@ -175,8 +162,7 @@ obj_som_version (unused)
    If you care about copyright strings that much, you fix it.  */
 
 void
    If you care about copyright strings that much, you fix it.  */
 
 void
-obj_som_copyright (unused)
-     int unused ATTRIBUTE_UNUSED;
+obj_som_copyright (int unused ATTRIBUTE_UNUSED)
 {
   char *copyright, c;
 
 {
   char *copyright, c;
 
@@ -206,12 +192,9 @@ obj_som_copyright (unused)
 
   copyright_seen = 1;
   if (!bfd_som_attach_aux_hdr (stdoutput, COPYRIGHT_AUX_ID, copyright))
 
   copyright_seen = 1;
   if (!bfd_som_attach_aux_hdr (stdoutput, COPYRIGHT_AUX_ID, copyright))
-    {
-      bfd_perror (stdoutput->filename);
-      as_perror (_("FATAL: Attaching copyright header %s"),
-                stdoutput->filename);
-      exit (EXIT_FAILURE);
-    }
+    as_fatal (_("attaching copyright header %s: %s"),
+             stdoutput->filename, bfd_errmsg (bfd_get_error ()));
+
   *input_line_pointer = c;
   demand_empty_rest_of_line ();
 }
   *input_line_pointer = c;
   demand_empty_rest_of_line ();
 }
@@ -224,8 +207,7 @@ obj_som_copyright (unused)
    which BFD does not understand.  */
 
 void
    which BFD does not understand.  */
 
 void
-obj_som_init_stab_section (seg)
-     segT seg;
+obj_som_init_stab_section (segT seg)
 {
   segT saved_seg = now_seg;
   segT space;
 {
   segT saved_seg = now_seg;
   segT space;
@@ -281,10 +263,7 @@ obj_som_init_stab_section (seg)
 /* Fill in the counts in the first entry in a .stabs section.  */
 
 static void
 /* Fill in the counts in the first entry in a .stabs section.  */
 
 static void
-adjust_stab_sections (abfd, sec, xxx)
-     bfd *abfd;
-     asection *sec;
-     PTR xxx ATTRIBUTE_UNUSED;
+adjust_stab_sections (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
 {
   asection *strsec;
   char *p;
 {
   asection *strsec;
   char *p;
@@ -301,7 +280,7 @@ adjust_stab_sections (abfd, sec, xxx)
   nsyms = bfd_section_size (abfd, sec) / 12 - 1;
 
   p = seg_info (sec)->stabu.p;
   nsyms = bfd_section_size (abfd, sec) / 12 - 1;
 
   p = seg_info (sec)->stabu.p;
-  assert (p != 0);
+  gas_assert (p != 0);
 
   bfd_h_put_16 (abfd, (bfd_vma) nsyms, (bfd_byte *) p + 6);
   bfd_h_put_32 (abfd, (bfd_vma) strsz, (bfd_byte *) p + 8);
 
   bfd_h_put_16 (abfd, (bfd_vma) nsyms, (bfd_byte *) p + 6);
   bfd_h_put_32 (abfd, (bfd_vma) strsz, (bfd_byte *) p + 8);
@@ -311,14 +290,13 @@ adjust_stab_sections (abfd, sec, xxx)
    stab entry and to set the starting address for each code subspace.  */
 
 void
    stab entry and to set the starting address for each code subspace.  */
 
 void
-som_frob_file ()
+som_frob_file (void)
 {
 {
-  bfd_map_over_sections (stdoutput, adjust_stab_sections, (PTR) 0);
+  bfd_map_over_sections (stdoutput, adjust_stab_sections, (void *) 0);
 }
 
 static void
 }
 
 static void
-obj_som_weak (ignore)
-     int ignore ATTRIBUTE_UNUSED;
+obj_som_weak (int ignore ATTRIBUTE_UNUSED)
 {
   char *name;
   int c;
 {
   char *name;
   int c;
@@ -332,9 +310,6 @@ obj_som_weak (ignore)
       *input_line_pointer = c;
       SKIP_WHITESPACE ();
       S_SET_WEAK (symbolP);
       *input_line_pointer = c;
       SKIP_WHITESPACE ();
       S_SET_WEAK (symbolP);
-#if 0
-      symbol_get_obj (symbolP)->local = 1;
-#endif
       if (c == ',')
        {
          input_line_pointer++;
       if (c == ',')
        {
          input_line_pointer++;
@@ -346,3 +321,9 @@ obj_som_weak (ignore)
   while (c == ',');
   demand_empty_rest_of_line ();
 }
   while (c == ',');
   demand_empty_rest_of_line ();
 }
+
+const pseudo_typeS obj_pseudo_table[] =
+{
+  {"weak", obj_som_weak, 0},
+  {NULL, NULL, 0}
+};