* elf32-bfin.c (elf32_bfinfdpic_create_dynamic_sections): Always
[deliverable/binutils-gdb.git] / bfd / coffgen.c
index 0a1c97c2faad5afab9c06e372cda5af7c945c0df..26333d08880645398857927c68f409e10ab33817 100644 (file)
@@ -1,6 +1,6 @@
 /* Support for the generic parts of COFF, for BFD.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009
+   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
    Free Software Foundation, Inc.
    Written by Cygnus Support.
 
@@ -73,6 +73,11 @@ make_a_section_from_file (bfd *abfd,
       char *p;
       const char *strings;
 
+      /* Flag that this BFD uses long names, even though the format might
+         expect them to be off by default.  This won't directly affect the
+         format of any output BFD created from this one, but the information
+         can be used to decide what to do.  */
+      bfd_coff_set_long_section_names (abfd, TRUE);
       memcpy (buf, hdr->s_name + 1, SCNNMLEN - 1);
       buf[SCNNMLEN - 1] = '\0';
       strindex = strtol (buf, &p, 10);
@@ -1789,17 +1794,17 @@ asymbol *
 coff_make_empty_symbol (bfd *abfd)
 {
   bfd_size_type amt = sizeof (coff_symbol_type);
-  coff_symbol_type *new = bfd_zalloc (abfd, amt);
+  coff_symbol_type *new_symbol = (coff_symbol_type *) bfd_zalloc (abfd, amt);
 
-  if (new == NULL)
+  if (new_symbol == NULL)
     return NULL;
-  new->symbol.section = 0;
-  new->native = 0;
-  new->lineno = NULL;
-  new->done_lineno = FALSE;
-  new->symbol.the_bfd = abfd;
+  new_symbol->symbol.section = 0;
+  new_symbol->native = 0;
+  new_symbol->lineno = NULL;
+  new_symbol->done_lineno = FALSE;
+  new_symbol->symbol.the_bfd = abfd;
 
-  return & new->symbol;
+  return & new_symbol->symbol;
 }
 
 /* Make a debugging symbol.  */
@@ -1810,23 +1815,23 @@ coff_bfd_make_debug_symbol (bfd *abfd,
                            unsigned long sz ATTRIBUTE_UNUSED)
 {
   bfd_size_type amt = sizeof (coff_symbol_type);
-  coff_symbol_type *new = bfd_alloc (abfd, amt);
+  coff_symbol_type *new_symbol = (coff_symbol_type *) bfd_alloc (abfd, amt);
 
-  if (new == NULL)
+  if (new_symbol == NULL)
     return NULL;
   /* @@ The 10 is a guess at a plausible maximum number of aux entries
      (but shouldn't be a constant).  */
   amt = sizeof (combined_entry_type) * 10;
-  new->native = bfd_zalloc (abfd, amt);
-  if (!new->native)
+  new_symbol->native = (combined_entry_type *) bfd_zalloc (abfd, amt);
+  if (!new_symbol->native)
     return NULL;
-  new->symbol.section = bfd_abs_section_ptr;
-  new->symbol.flags = BSF_DEBUGGING;
-  new->lineno = NULL;
-  new->done_lineno = FALSE;
-  new->symbol.the_bfd = abfd;
+  new_symbol->symbol.section = bfd_abs_section_ptr;
+  new_symbol->symbol.flags = BSF_DEBUGGING;
+  new_symbol->lineno = NULL;
+  new_symbol->done_lineno = FALSE;
+  new_symbol->symbol.the_bfd = abfd;
   
-  return & new->symbol;
+  return & new_symbol->symbol;
 }
 
 void
@@ -1954,16 +1959,7 @@ coff_print_symbol (bfd *abfd,
                   combined->u.syment.n_type,
                   combined->u.syment.n_sclass,
                   combined->u.syment.n_numaux);
-#ifdef BFD64
-         /* fprintf_vma() on a 64-bit enabled host will always print a 64-bit
-            value, but really we want to display the address in the target's
-            address size.  Since we do not have a field in the bfd structure
-            to tell us this, we take a guess, based on the target's name.  */
-         if (strstr (bfd_get_target (abfd), "64") == NULL)
-           fprintf (file, "%08lx", (unsigned long) (val & 0xffffffff));
-         else
-#endif
-           fprintf_vma (file, val);
+         bfd_fprintf_vma (abfd, file, val);
          fprintf (file, " %s", symbol->name);
 
          for (aux = 0; aux < combined->u.syment.n_numaux; aux++)
@@ -2006,6 +2002,7 @@ coff_print_symbol (bfd *abfd,
                    }
                    /* Otherwise fall through.  */
                case C_EXT:
+               case C_AIX_WEAKEXT:
                  if (ISFCN (combined->u.syment.n_type))
                    {
                      long next, llnos;
@@ -2045,7 +2042,7 @@ coff_print_symbol (bfd *abfd,
              while (l->line_number)
                {
                  fprintf (file, "\n%4d : ", l->line_number);
-                 fprintf_vma (file, l->u.offset + symbol->section->vma);
+                 bfd_fprintf_vma (abfd, file, l->u.offset + symbol->section->vma);
                  l++;
                }
            }
This page took 0.026231 seconds and 4 git commands to generate.