PR ld/12365
authorDave Korn <dave.korn@artimi.com>
Sat, 7 May 2011 14:26:56 +0000 (14:26 +0000)
committerDave Korn <dave.korn@artimi.com>
Sat, 7 May 2011 14:26:56 +0000 (14:26 +0000)
* coffgen.c (coff_write_symbol): Assume input section is its own
output section if output_section member not set.
(coff_write_alien_symbol): Likewise.

bfd/ChangeLog
bfd/coffgen.c

index eb055ea2820f5703dd4a239a04b9acac50a117d5..10255dab6cd27691ddcc8fd403d757c86a86a89c 100644 (file)
@@ -1,3 +1,10 @@
+2011-05-07  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+       PR ld/12365
+       * coffgen.c (coff_write_symbol): Assume input section is its own
+       output section if output_section member not set.
+       (coff_write_alien_symbol): Likewise.
+
 2011-05-07  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR ld/12730
index fc82d57dd73dd520811563497bf79f7e87708a4c..b0c2c62f1871e2651dec4e631b98b153e0b12bce 100644 (file)
@@ -915,6 +915,9 @@ coff_write_symbol (bfd *abfd,
   unsigned int numaux = native->u.syment.n_numaux;
   int type = native->u.syment.n_type;
   int n_sclass = (int) native->u.syment.n_sclass;
+  asection *output_section = symbol->section->output_section
+                              ? symbol->section->output_section
+                              : symbol->section;
   void * buf;
   bfd_size_type symesz;
 
@@ -933,7 +936,7 @@ coff_write_symbol (bfd *abfd,
 
   else
     native->u.syment.n_scnum =
-      symbol->section->output_section->target_index;
+      output_section->target_index;
 
   coff_fix_symbol_name (abfd, symbol, native, string_size_p,
                        debug_string_section_p, debug_string_size_p);
@@ -990,6 +993,9 @@ coff_write_alien_symbol (bfd *abfd,
 {
   combined_entry_type *native;
   combined_entry_type dummy;
+  asection *output_section = symbol->section->output_section
+                              ? symbol->section->output_section
+                              : symbol->section;
 
   native = &dummy;
   native->u.syment.n_type = T_NULL;
@@ -1015,12 +1021,11 @@ coff_write_alien_symbol (bfd *abfd,
     }
   else
     {
-      native->u.syment.n_scnum =
-       symbol->section->output_section->target_index;
+      native->u.syment.n_scnum = output_section->target_index;
       native->u.syment.n_value = (symbol->value
                                  + symbol->section->output_offset);
       if (! obj_pe (abfd))
-       native->u.syment.n_value += symbol->section->output_section->vma;
+       native->u.syment.n_value += output_section->vma;
 
       /* Copy the any flags from the file header into the symbol.
          FIXME: Why?  */
This page took 0.027061 seconds and 4 git commands to generate.