update copyright dates
[deliverable/binutils-gdb.git] / bfd / ieee.c
index be8455c617f868221a47c392275bdab5ab060a87..1fecf5ae325e5ac43ffa09b3dd7b1bc8554e1d11 100644 (file)
@@ -1,6 +1,6 @@
 /* BFD back-end for ieee-695 objects.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2001, 2002, 2003, 2004, 2005, 2006
+   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009
    Free Software Foundation, Inc.
 
    Written by Steve Chamberlain of Cygnus Support.
@@ -9,7 +9,7 @@
 
    This program 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 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -19,7 +19,9 @@
 
    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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
+
 
 #define KEEPMINUSPCININST 0
 
@@ -27,8 +29,8 @@
    token (which is one byte in this lexicon) lookahead recursive decent
    parser.  */
 
-#include "bfd.h"
 #include "sysdep.h"
+#include "bfd.h"
 #include "libbfd.h"
 #include "ieee.h"
 #include "libieee.h"
@@ -370,7 +372,7 @@ parse_int (common_header_type *ieee, bfd_vma *value_ptr)
 static int
 parse_i (common_header_type *ieee, bfd_boolean *ok)
 {
-  bfd_vma x;
+  bfd_vma x = 0;
   *ok = parse_int (ieee, &x);
   return x;
 }
@@ -378,7 +380,7 @@ parse_i (common_header_type *ieee, bfd_boolean *ok)
 static bfd_vma
 must_parse_int (common_header_type *ieee)
 {
-  bfd_vma result;
+  bfd_vma result = 0;
   BFD_ASSERT (parse_int (ieee, &result));
   return result;
 }
@@ -767,7 +769,7 @@ ieee_slurp_external_symbols (bfd *abfd)
            unsigned int symbol_name_index;
            unsigned int symbol_type_index;
            unsigned int symbol_attribute_def;
-           bfd_vma value;
+           bfd_vma value = 0;
 
            switch (read_2bytes (&ieee->h))
              {
@@ -1080,7 +1082,6 @@ get_section_entry (bfd *abfd, ieee_data_type *ieee, unsigned int index)
       sprintf (tmp, " fsec%4d", index);
       section = bfd_make_section (abfd, tmp);
       ieee->section_table[index] = section;
-      section->flags = SEC_NO_FLAGS;
       section->target_index = index;
       ieee->section_table[index] = section;
     }
@@ -1268,14 +1269,15 @@ ieee_slurp_debug (bfd *abfd)
   ieee_data_type *ieee = IEEE_DATA (abfd);
   asection *sec;
   file_ptr debug_end;
+  flagword flags;
 
   if (ieee->w.r.debug_information_part == 0)
     return TRUE;
 
-  sec = bfd_make_section (abfd, ".debug");
+  flags = SEC_DEBUGGING | SEC_HAS_CONTENTS;
+  sec = bfd_make_section_with_flags (abfd, ".debug", flags);
   if (sec == NULL)
     return FALSE;
-  sec->flags |= SEC_DEBUGGING | SEC_HAS_CONTENTS;
   sec->filepos = ieee->w.r.debug_information_part;
 
   debug_end = ieee_part_after (ieee, ieee->w.r.debug_information_part);
@@ -1875,8 +1877,8 @@ ieee_object_p (bfd *abfd)
            family[9] = '\0';
          }
       }
-    else if ((strncmp (processor, "cpu32", 5) == 0) /* CPU32 and CPU32+ */
-            || (strncmp (processor, "CPU32", 5) == 0))
+    else if ((CONST_STRNEQ (processor, "cpu32")) /* CPU32 and CPU32+  */
+            || (CONST_STRNEQ (processor, "CPU32")))
       strcpy (family, "68332");
     else
       {
@@ -2014,12 +2016,15 @@ ieee_print_symbol (bfd *abfd,
 static bfd_boolean
 ieee_new_section_hook (bfd *abfd, asection *newsect)
 {
-  newsect->used_by_bfd = bfd_alloc (abfd, (bfd_size_type) sizeof (ieee_per_section_type));
   if (!newsect->used_by_bfd)
-    return FALSE;
+    {
+      newsect->used_by_bfd = bfd_alloc (abfd, sizeof (ieee_per_section_type));
+      if (!newsect->used_by_bfd)
+       return FALSE;
+    }
   ieee_per_section (newsect)->data = NULL;
   ieee_per_section (newsect)->section = newsect;
-  return TRUE;
+  return _bfd_generic_new_section_hook (abfd, newsect);
 }
 
 static long
@@ -3482,6 +3487,12 @@ ieee_write_processor (bfd *abfd)
          case bfd_mach_mcf_isa_b_float: id = "isa-b:float"; break;
          case bfd_mach_mcf_isa_b_float_mac: id = "isa-b:float:mac"; break;
          case bfd_mach_mcf_isa_b_float_emac: id = "isa-b:float:emac"; break;
+         case bfd_mach_mcf_isa_c: id = "isa-c"; break;
+         case bfd_mach_mcf_isa_c_mac: id = "isa-c:mac"; break;
+         case bfd_mach_mcf_isa_c_emac: id = "isa-c:emac"; break;
+         case bfd_mach_mcf_isa_c_nodiv: id = "isa-c:nodiv"; break;
+         case bfd_mach_mcf_isa_c_nodiv_mac: id = "isa-c:nodiv:mac"; break;
+         case bfd_mach_mcf_isa_c_nodiv_emac: id = "isa-c:nodiv:emac"; break;
          }
 
        if (! ieee_write_id (abfd, id))
@@ -3616,12 +3627,12 @@ static asymbol *
 ieee_make_empty_symbol (bfd *abfd)
 {
   bfd_size_type amt = sizeof (ieee_symbol_type);
-  ieee_symbol_type *new = bfd_zalloc (abfd, amt);
+  ieee_symbol_type *new_symbol = (ieee_symbol_type *) bfd_zalloc (abfd, amt);
 
-  if (!new)
+  if (!new_symbol)
     return NULL;
-  new->symbol.the_bfd = abfd;
-  return &new->symbol;
+  new_symbol->symbol.the_bfd = abfd;
+  return &new_symbol->symbol;
 }
 
 static bfd *
@@ -3712,7 +3723,7 @@ ieee_generic_stat_arch_elt (bfd *abfd, struct stat *buf)
 
 static int
 ieee_sizeof_headers (bfd *abfd ATTRIBUTE_UNUSED,
-                    bfd_boolean x ATTRIBUTE_UNUSED)
+                    struct bfd_link_info *info ATTRIBUTE_UNUSED)
 {
   return 0;
 }
@@ -3744,6 +3755,7 @@ ieee_sizeof_headers (bfd *abfd ATTRIBUTE_UNUSED,
 #define ieee_minisymbol_to_symbol _bfd_generic_minisymbol_to_symbol
 
 #define ieee_bfd_reloc_type_lookup _bfd_norelocs_bfd_reloc_type_lookup
+#define ieee_bfd_reloc_name_lookup _bfd_norelocs_bfd_reloc_name_lookup
 
 #define ieee_set_arch_mach _bfd_generic_set_arch_mach
 
@@ -3758,6 +3770,7 @@ ieee_sizeof_headers (bfd *abfd ATTRIBUTE_UNUSED,
 #define ieee_bfd_discard_group bfd_generic_discard_group
 #define ieee_section_already_linked \
   _bfd_generic_section_already_linked
+#define ieee_bfd_define_common_symbol bfd_generic_define_common_symbol
 #define ieee_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
 #define ieee_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
 #define ieee_bfd_link_add_symbols _bfd_generic_link_add_symbols
This page took 0.039265 seconds and 4 git commands to generate.