bfd_section_* macros
[deliverable/binutils-gdb.git] / gas / config / obj-som.c
index d5b18e26e7c0e30cad73b31088e18d1e94805b04..20213b8b327c03fcbecb6be46f02e7c3b6223819 100644 (file)
@@ -1,11 +1,11 @@
 /* SOM object file format.
-   Copyright 1993, 1994, 1998, 2000, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1993-2019 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
-   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
@@ -15,8 +15,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
-   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.  */
 #include "as.h"
 #include "subsegs.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;
@@ -42,7 +32,7 @@ static int compiler_seen = 0;
 /* Unused by SOM.  */
 
 void
-obj_read_begin_hook ()
+obj_read_begin_hook (void)
 {
 }
 
@@ -52,8 +42,7 @@ obj_read_begin_hook ()
    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;
@@ -64,7 +53,7 @@ obj_som_compiler (unused)
 
   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;
     }
@@ -81,7 +70,7 @@ obj_som_compiler (unused)
     }
   else
     {
-      as_bad ("Expected quoted string");
+      as_bad (_("Expected quoted string"));
       ignore_rest_of_line ();
       return;
     }
@@ -94,7 +83,7 @@ obj_som_compiler (unused)
     p++;
   if (*p == '\000')
     {
-      as_bad (".compiler directive missing language and version");
+      as_bad (_(".compiler directive missing language and version"));
       return;
     }
   *p = '\000';
@@ -104,7 +93,7 @@ obj_som_compiler (unused)
     p++;
   if (*p == '\000')
     {
-      as_bad (".compiler directive missing version");
+      as_bad (_(".compiler directive missing version"));
       return;
     }
   *p = '\000';
@@ -120,7 +109,7 @@ obj_som_compiler (unused)
                                         "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 ();
@@ -129,8 +118,7 @@ obj_som_compiler (unused)
 /* Handle a .version directive.  */
 
 void
-obj_som_version (unused)
-     int unused ATTRIBUTE_UNUSED;
+obj_som_version (int unused ATTRIBUTE_UNUSED)
 {
   char *version, c;
 
@@ -160,12 +148,9 @@ obj_som_version (unused)
 
   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 ();
 }
@@ -175,8 +160,7 @@ obj_som_version (unused)
    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;
 
@@ -206,12 +190,9 @@ obj_som_copyright (unused)
 
   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 ();
 }
@@ -224,13 +205,13 @@ obj_som_copyright (unused)
    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;
   subsegT saved_subseg = now_subseg;
-  char *p, *file;
+  char *p;
+ const char * file;
   unsigned int stroff;
 
   /* Make the space which will contain the debug subspaces.  */
@@ -243,14 +224,14 @@ obj_som_init_stab_section (seg)
      of the various stabs spaces/subspaces need to be "small".  We
      reserve range 72/73 which appear to work well.  */
   obj_set_section_attributes (space, 1, 1, 72, 2);
-  bfd_set_section_alignment (stdoutput, space, 2);
+  bfd_set_section_alignment (space, 2);
 
   /* Set the containing space for both stab sections to be $GDB_DEBUG$
      (just created above).  Also set some attributes which BFD does
      not understand.  In particular, access bits, sort keys, and load
      quadrant.  */
   obj_set_subsection_attributes (seg, space, 0x1f, 73, 0, 0, 0, 0);
-  bfd_set_section_alignment (stdoutput, seg, 2);
+  bfd_set_section_alignment (seg, 2);
 
   /* Make some space for the first special stab entry and zero the memory.
      It contains information about the length of this file's
@@ -261,8 +242,8 @@ obj_som_init_stab_section (seg)
      the call to get_stab_string_offset.  */
   p = frag_more (12);
   memset (p, 0, 12);
-  as_where (&file, (unsigned int *) NULL);
-  stroff = get_stab_string_offset (file, "$GDB_STRINGS$");
+  file = as_where ((unsigned int *) NULL);
+  stroff = get_stab_string_offset (file, "$GDB_STRINGS$", FALSE);
   know (stroff == 1);
   md_number_to_chars (p, stroff, 4);
   seg_info (seg)->stabu.p = p;
@@ -273,7 +254,7 @@ obj_som_init_stab_section (seg)
      quadrant.  */
   seg = bfd_get_section_by_name (stdoutput, "$GDB_STRINGS$");
   obj_set_subsection_attributes (seg, space, 0x1f, 72, 0, 0, 0, 0);
-  bfd_set_section_alignment (stdoutput, seg, 2);
+  bfd_set_section_alignment (seg, 2);
 
   subseg_set (saved_seg, saved_subseg);
 }
@@ -281,10 +262,7 @@ obj_som_init_stab_section (seg)
 /* 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;
@@ -295,13 +273,13 @@ adjust_stab_sections (abfd, sec, xxx)
 
   strsec = bfd_get_section_by_name (abfd, "$GDB_STRINGS$");
   if (strsec)
-    strsz = bfd_section_size (abfd, strsec);
+    strsz = bfd_section_size (strsec);
   else
     strsz = 0;
-  nsyms = bfd_section_size (abfd, sec) / 12 - 1;
+  nsyms = bfd_section_size (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);
@@ -311,14 +289,13 @@ adjust_stab_sections (abfd, sec, xxx)
    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
-obj_som_weak (ignore)
-     int ignore ATTRIBUTE_UNUSED;
+obj_som_weak (int ignore ATTRIBUTE_UNUSED)
 {
   char *name;
   int c;
@@ -326,11 +303,10 @@ obj_som_weak (ignore)
 
   do
     {
-      name = input_line_pointer;
-      c = get_symbol_end ();
+      c = get_symbol_name (&name);
       symbolP = symbol_find_or_make (name);
       *input_line_pointer = c;
-      SKIP_WHITESPACE ();
+      SKIP_WHITESPACE_AFTER_NAME ();
       S_SET_WEAK (symbolP);
       if (c == ',')
        {
@@ -343,3 +319,9 @@ obj_som_weak (ignore)
   while (c == ',');
   demand_empty_rest_of_line ();
 }
+
+const pseudo_typeS obj_pseudo_table[] =
+{
+  {"weak", obj_som_weak, 0},
+  {NULL, NULL, 0}
+};
This page took 0.041556 seconds and 4 git commands to generate.