bfd_section_* macros
[deliverable/binutils-gdb.git] / gas / config / obj-som.c
index 65d4adad58cc70f213ab24f65f33ced066cfa159..20213b8b327c03fcbecb6be46f02e7c3b6223819 100644 (file)
@@ -1,11 +1,11 @@
 /* SOM object file format.
-   Copyright (C) 1993, 1998 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));
-
-const pseudo_typeS obj_pseudo_table[] =
-{
-  {"weak", obj_som_weak, 0}
-};
 
 static int version_seen = 0;
 static int copyright_seen = 0;
 static int compiler_seen = 0;
 
 /* Unused by SOM.  */
-void obj_read_begin_hook () {}
+
+void
+obj_read_begin_hook (void)
+{
+}
 
 /* Handle a .compiler directive.   This is intended to create the
    compilation unit auxiliary header for MPE such that the linkeditor
    can handle SOM extraction from archives. The format of the quoted
-   string is "sourcefile language version" and is delimited by blanks.*/
+   string is "sourcefile language version" and is delimited by blanks.  */
 
 void
-obj_som_compiler (unused)
-     int unused;
+obj_som_compiler (int unused ATTRIBUTE_UNUSED)
 {
   char *buf;
   char c;
@@ -58,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;
     }
@@ -75,7 +70,7 @@ obj_som_compiler (unused)
     }
   else
     {
-      as_bad ("Expected quoted string");
+      as_bad (_("Expected quoted string"));
       ignore_rest_of_line ();
       return;
     }
@@ -88,22 +83,24 @@ 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';
 
-  language_name        = ++p;
-  while (*p != ' ' && *p != '\000') p++;
+  language_name = ++p;
+  while (*p != ' ' && *p != '\000')
+    p++;
   if (*p == '\000')
     {
-      as_bad (".compiler directive missing version");
+      as_bad (_(".compiler directive missing version"));
       return;
     }
   *p = '\000';
 
-  version_id   = ++p;
-  while (*p != '\000') p++;
+  version_id = ++p;
+  while (*p != '\000')
+    p++;
   /* Remove the trailing quote.  */
   *(--p) = '\000';
 
@@ -112,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 ();
@@ -121,8 +118,7 @@ obj_som_compiler (unused)
 /* Handle a .version directive.  */
 
 void
-obj_som_version (unused)
-     int unused;
+obj_som_version (int unused ATTRIBUTE_UNUSED)
 {
   char *version, c;
 
@@ -151,12 +147,10 @@ obj_som_version (unused)
     }
 
   version_seen = 1;
-  if (bfd_som_attach_aux_hdr (stdoutput, VERSION_AUX_ID, version) == false)
-    {
-      bfd_perror (stdoutput->filename);
-      as_perror (_("FATAL: Attaching version header %s"), stdoutput->filename);
-      exit (EXIT_FAILURE);
-    }
+  if (!bfd_som_attach_aux_hdr (stdoutput, VERSION_AUX_ID, version))
+    as_fatal (_("attaching version header %s: %s"),
+             stdoutput->filename, bfd_errmsg (bfd_get_error ()));
+
   *input_line_pointer = c;
   demand_empty_rest_of_line ();
 }
@@ -166,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;
+obj_som_copyright (int unused ATTRIBUTE_UNUSED)
 {
   char *copyright, c;
 
@@ -196,12 +189,10 @@ obj_som_copyright (unused)
     }
 
   copyright_seen = 1;
-  if (bfd_som_attach_aux_hdr (stdoutput, COPYRIGHT_AUX_ID, copyright) == false)
-    {
-      bfd_perror (stdoutput->filename);
-      as_perror (_("FATAL: Attaching copyright header %s"), stdoutput->filename);
-      exit (EXIT_FAILURE);
-    }
+  if (!bfd_som_attach_aux_hdr (stdoutput, COPYRIGHT_AUX_ID, copyright))
+    as_fatal (_("attaching copyright header %s: %s"),
+             stdoutput->filename, bfd_errmsg (bfd_get_error ()));
+
   *input_line_pointer = c;
   demand_empty_rest_of_line ();
 }
@@ -214,45 +205,45 @@ 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.  */
   space = bfd_make_section_old_way (stdoutput, "$GDB_DEBUG$");
 
   /* Set SOM specific attributes for the space.  In particular we set
-     the space "defined", "private", "sort_key", and "spnum" values. 
+     the space "defined", "private", "sort_key", and "spnum" values.
 
      Due to a bug in pxdb (called by hpux linker), the sort keys
      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);
-  bfd_set_section_alignment (stdoutput, seg, 2);
+  obj_set_subsection_attributes (seg, space, 0x1f, 73, 0, 0, 0, 0);
+  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
-     stab string and the like.  Using it avoids the need to 
+     stab string and the like.  Using it avoids the need to
      relocate the stab strings.
 
      The $GDB_STRINGS$ space will be created as a side effect of
      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;
@@ -262,8 +253,8 @@ obj_som_init_stab_section (seg)
      not understand.  In particular, access bits, sort keys, and load
      quadrant.  */
   seg = bfd_get_section_by_name (stdoutput, "$GDB_STRINGS$");
-  obj_set_subsection_attributes (seg, space, 0x1f, 72, 0);
-  bfd_set_section_alignment (stdoutput, seg, 2);
+  obj_set_subsection_attributes (seg, space, 0x1f, 72, 0, 0, 0, 0);
+  bfd_set_section_alignment (seg, 2);
 
   subseg_set (saved_seg, saved_subseg);
 }
@@ -271,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;
+adjust_stab_sections (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
 {
   asection *strsec;
   char *p;
@@ -285,55 +273,55 @@ 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);
 }
 
-/* Called late in the asssembly phase to adjust the special
+/* Called late in the assembly phase to adjust the special
    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;
   symbolS *symbolP;
+
   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 0
-      symbol_get_obj (symbolP)->local = 1;
-#endif
       if (c == ',')
-        {
-          input_line_pointer++;
-          SKIP_WHITESPACE ();
-          if (*input_line_pointer == '\n')
-            c = '\n';
-        }
+       {
+         input_line_pointer++;
+         SKIP_WHITESPACE ();
+         if (*input_line_pointer == '\n')
+           c = '\n';
+       }
     }
   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.035349 seconds and 4 git commands to generate.