OSDN Git Service

daily update
[pf3gnuchains/pf3gnuchains4x.git] / bfd / pef.c
index a1b71ac..d4ad33a 100644 (file)
--- a/bfd/pef.c
+++ b/bfd/pef.c
@@ -1,6 +1,6 @@
 /* PEF support for BFD.
-   Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
-   Free Software Foundation, Inc.
+   Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
+   2009, 2011  Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
 #define bfd_pef_bfd_get_relocated_section_contents  bfd_generic_get_relocated_section_contents
 #define bfd_pef_bfd_relax_section                   bfd_generic_relax_section
 #define bfd_pef_bfd_gc_sections                     bfd_generic_gc_sections
+#define bfd_pef_bfd_lookup_section_flags            bfd_generic_lookup_section_flags
 #define bfd_pef_bfd_merge_sections                  bfd_generic_merge_sections
 #define bfd_pef_bfd_is_group_section               bfd_generic_is_group_section
 #define bfd_pef_bfd_discard_group                   bfd_generic_discard_group
 #define bfd_pef_section_already_linked             _bfd_generic_section_already_linked
+#define bfd_pef_bfd_define_common_symbol            bfd_generic_define_common_symbol
 #define bfd_pef_bfd_link_hash_table_create          _bfd_generic_link_hash_table_create
 #define bfd_pef_bfd_link_hash_table_free            _bfd_generic_link_hash_table_free
 #define bfd_pef_bfd_link_add_symbols                _bfd_generic_link_add_symbols
 #define bfd_pef_bfd_link_just_syms                  _bfd_generic_link_just_syms
+#define bfd_pef_bfd_copy_link_hash_symbol_type \
+  _bfd_generic_copy_link_hash_symbol_type
 #define bfd_pef_bfd_final_link                      _bfd_generic_final_link
 #define bfd_pef_bfd_link_split_section              _bfd_generic_link_split_section
 #define bfd_pef_get_section_contents_in_window      _bfd_generic_get_section_contents_in_window
@@ -97,7 +101,7 @@ bfd_pef_parse_traceback_table (bfd *abfd,
   if (! (table.flags2 & TB_NAME_PRESENT))
     return -1;
 
-  if (! table.flags1 & TB_HAS_TBOFF)
+  if (! (table.flags1 & TB_HAS_TBOFF))
     return -1;
 
   offset = 8;
@@ -186,7 +190,7 @@ bfd_pef_parse_traceback_table (bfd *abfd,
     offset += 4;
 
   if (file != NULL)
-    fprintf (file, " [length = 0x%lx]", (long) offset);
+    fprintf (file, " [length = 0x%lx]", (unsigned long) offset);
 
   return offset;
 }
@@ -360,7 +364,7 @@ bfd_pef_parse_imported_symbol (bfd *abfd ATTRIBUTE_UNUSED,
   BFD_ASSERT (len == 4);
 
   value = bfd_getb32 (buf);
-  symbol->class = value >> 24;
+  symbol->symbol_class = value >> 24;
   symbol->name = value & 0x00ffffff;
 
   return 0;
@@ -513,8 +517,8 @@ bfd_pef_scan (abfd, header, mdata)
   bfd_pef_convert_architecture (header->architecture, &cputype, &cpusubtype);
   if (cputype == bfd_arch_unknown)
     {
-      fprintf (stderr, "bfd_pef_scan: unknown architecture 0x%lx\n",
-              header->architecture);
+      (*_bfd_error_handler) (_("bfd_pef_scan: unknown architecture 0x%lx"),
+                              header->architecture);
       return -1;
     }
   bfd_set_arch_mach (abfd, cputype, cpusubtype);
@@ -727,14 +731,11 @@ bfd_pef_parse_function_stubs (bfd *abfd,
                              asymbol **csym)
 {
   const char *const sprefix = "__stub_";
-
   size_t codepos = 0;
   unsigned long count = 0;
-
   bfd_pef_loader_header header;
   bfd_pef_imported_library *libraries = NULL;
   bfd_pef_imported_symbol *imports = NULL;
-
   unsigned long i;
   int ret;
 
@@ -780,8 +781,7 @@ bfd_pef_parse_function_stubs (bfd *abfd,
       asymbol sym;
       const char *symname;
       char *name;
-      unsigned long index;
-      int ret;
+      unsigned long sym_index;
 
       if (csym && (csym[count] == NULL))
        break;
@@ -799,14 +799,14 @@ bfd_pef_parse_function_stubs (bfd *abfd,
       if ((codepos + 4) > codelen)
        break;
 
-      ret = bfd_pef_parse_function_stub (abfd, codebuf + codepos, 24, &index);
+      ret = bfd_pef_parse_function_stub (abfd, codebuf + codepos, 24, &sym_index);
       if (ret < 0)
        {
          codepos += 24;
          continue;
        }
 
-      if (index >= header.total_imported_symbol_count)
+      if (sym_index >= header.total_imported_symbol_count)
        {
          codepos += 24;
          continue;
@@ -816,12 +816,12 @@ bfd_pef_parse_function_stubs (bfd *abfd,
        size_t max, namelen;
        const char *s;
 
-       if (loaderlen < (header.loader_strings_offset + imports[index].name))
+       if (loaderlen < (header.loader_strings_offset + imports[sym_index].name))
          goto error;
 
-       max = loaderlen - (header.loader_strings_offset + imports[index].name);
+       max = loaderlen - (header.loader_strings_offset + imports[sym_index].name);
        symname = (char *) loaderbuf;
-       symname += header.loader_strings_offset + imports[index].name;
+       symname += header.loader_strings_offset + imports[sym_index].name;
        namelen = 0;
        for (s = symname; s < (symname + max); s++)
          {
@@ -1016,6 +1016,7 @@ const bfd_target pef_vec =
   0,                           /* Symbol_leading_char.  */
   ' ',                         /* AR_pad_char.  */
   16,                          /* AR_max_namelen.  */
+  0,                           /* match priority.  */
   bfd_getb64, bfd_getb_signed_64, bfd_putb64,
   bfd_getb32, bfd_getb_signed_32, bfd_putb32,
   bfd_getb16, bfd_getb_signed_16, bfd_putb16,  /* Data.  */
@@ -1168,6 +1169,7 @@ const bfd_target pef_xlib_vec =
   0,                           /* Symbol_leading_char.  */
   ' ',                         /* AR_pad_char.  */
   16,                          /* AR_max_namelen.  */
+  0,                           /* match priority.  */
   bfd_getb64, bfd_getb_signed_64, bfd_putb64,
   bfd_getb32, bfd_getb_signed_32, bfd_putb32,
   bfd_getb16, bfd_getb_signed_16, bfd_putb16,  /* Data.  */