*** empty log message ***
authorSteve Chamberlain <sac@cygnus>
Wed, 4 Dec 1991 18:25:37 +0000 (18:25 +0000)
committerSteve Chamberlain <sac@cygnus>
Wed, 4 Dec 1991 18:25:37 +0000 (18:25 +0000)
gas/config/obj-coff-bfd.c

index 6648f08f57ac56d15b2a7184957724baeb2130b5..b2cb0351ade3c736a7f479826810200f3790c294 100755 (executable)
@@ -156,10 +156,10 @@ const pseudo_typeS obj_pseudo_table[] = {
        { "type",       obj_coff_type,          0       },
        { "val",        obj_coff_val,           0       },
         { "section",    obj_coff_section,       0       },
-        { "text",    obj_coff_text,       0       },
-        { "data",    obj_coff_data,       0       },
-
-       { "ident",      s_ignore,               0 }, /* we don't yet handle this. */
+        { "text",       obj_coff_text,          0       },
+        { "data",       obj_coff_data,          0       },
+       /* we don't yet handle this. */
+       { "ident",      s_ignore,               0       },
        { "ABORT",      s_abort,                0 },
        { "lcomm",      obj_coff_lcomm, 0},
        { NULL} /* end sentinel */
@@ -419,74 +419,75 @@ static void DEFUN(fill_section,(abfd, filehdr, file_cursor),
                  unsigned long *file_cursor)
 {
 
-  unsigned int i;
-  unsigned int paddr = 0;
+    unsigned int i;
+    unsigned int paddr = 0;
   
-  for (i = SEG_E0; i < SEG_UNKNOWN; i++) {  
-      unsigned int offset = 0;
-
+    for (i = SEG_E0; i < SEG_UNKNOWN; i++) 
+    {  
+       unsigned int offset = 0;
 
-      struct internal_scnhdr *s = &( segment_info[i].scnhdr);
+       struct internal_scnhdr *s = &( segment_info[i].scnhdr);
          
-      if (s->s_name[0]) {
-         fragS *frag = segment_info[i].frchainP->frch_root;
-         char *buffer =  malloc(s->s_size);
-         s->s_scnptr = *file_cursor;
-         s->s_paddr =  paddr;
-         s->s_vaddr =  paddr;
-
-         s->s_flags = STYP_REG;
-         if (strcmp(s->s_name,".text")==0)
-          s->s_flags |= STYP_TEXT;
-         else if (strcmp(s->s_name,".data")==0)
-          s->s_flags |= STYP_DATA;
-         else if (strcmp(s->s_name,".bss")==0)
-          s->s_flags |= STYP_BSS | STYP_NOLOAD;
-
-         while (frag) {
-             unsigned int fill_size;
-             switch (frag->fr_type) {
-
-               case rs_fill:
-               case rs_align:
-               case rs_org:
-                 if(frag->fr_fix) 
-                 {
-                   memcpy(buffer + frag->fr_address,
-                          frag->fr_literal,
-                          frag->fr_fix);
-                   offset += frag->fr_fix;
-                 }
+       if (s->s_name[0]) 
+       {
+           fragS *frag = segment_info[i].frchainP->frch_root;
+           char *buffer =  malloc(s->s_size);
+           s->s_scnptr = *file_cursor;
+           s->s_paddr =  paddr;
+           s->s_vaddr =  paddr;
+
+           s->s_flags = STYP_REG;
+           if (strcmp(s->s_name,".text")==0)
+            s->s_flags |= STYP_TEXT;
+           else if (strcmp(s->s_name,".data")==0)
+            s->s_flags |= STYP_DATA;
+           else if (strcmp(s->s_name,".bss")==0)
+            s->s_flags |= STYP_BSS | STYP_NOLOAD;
+
+           while (frag) {
+                   unsigned int fill_size;
+                   switch (frag->fr_type) {
+
+                         case rs_fill:
+                         case rs_align:
+                         case rs_org:
+                           if(frag->fr_fix) 
+                           {
+                               memcpy(buffer + frag->fr_address,
+                                      frag->fr_literal,
+                                      frag->fr_fix);
+                               offset += frag->fr_fix;
+                           }
 
-                 fill_size = frag->fr_var;
-                 if (fill_size)        
-                 {
-                     unsigned int count ;
-                     unsigned int off = frag->fr_fix;
-                     for (count = frag->fr_offset; count;  count--) 
-                     {
-                         memcpy(buffer +  frag->fr_address  + off,
-                                frag->fr_literal + frag->fr_fix,
-                                fill_size);
-                         off += fill_size;
-                         offset += fill_size;
+                           fill_size = frag->fr_var;
+                           if (fill_size)      
+                           {
+                               unsigned int count ;
+                               unsigned int off = frag->fr_fix;
+                               for (count = frag->fr_offset; count;  count--) 
+                               {
+                                   memcpy(buffer +  frag->fr_address  + off,
+                                          frag->fr_literal + frag->fr_fix,
+                                          fill_size);
+                                   off += fill_size;
+                                   offset += fill_size;
                      
-                     }
+                               }
 
-                 }
-                 break;
-               default:        
-                 abort();
+                           }
+                           break;
+                         default:      
+                           abort();
+                       }
+                   frag = frag->fr_next;
                }
-             frag = frag->fr_next;
-         }
          
 
-         bfd_write(buffer, s->s_size,1,abfd);
-         free(buffer);
+           bfd_write(buffer, s->s_size,1,abfd);
+           free(buffer);
          
-         *file_cursor += s->s_size;
-         paddr += s->s_size;
+           *file_cursor += s->s_size;
+           paddr += s->s_size;
        }      
     }
 
@@ -703,22 +704,23 @@ static void obj_coff_ln() {
                                      *input_line_pointer == '\t') \
                                          input_line_pointer++;
 
-static void obj_coff_def(what)
-int what;
+static void 
+DEFUN(obj_coff_def,(what),
+      int what)
 {
-    char name_end; /* Char after the end of name */
-    char *symbol_name; /* Name of the debug symbol */
-    char *symbol_name_copy; /* Temporary copy of the name */
+    char name_end;             /* Char after the end of name */
+    char *symbol_name;         /* Name of the debug symbol */
+    char *symbol_name_copy;    /* Temporary copy of the name */
     unsigned int symbol_name_length;
     /*$char*   directiveP;$ */         /* Name of the pseudo opcode */
     /*$char directive[MAX_DIRECTIVE];$ */ /* Backup of the directive */
     /*$char end = 0;$ */ /* If 1, stop parsing */
 
     if (def_symbol_in_progress != NULL) {
-       as_warn(".def pseudo-op used inside of .def/.endef: ignored.");
-       demand_empty_rest_of_line();
-       return;
-    } /* if not inside .def/.endef */
+           as_warn(".def pseudo-op used inside of .def/.endef: ignored.");
+           demand_empty_rest_of_line();
+           return;
+       }                       /* if not inside .def/.endef */
 
     SKIP_WHITESPACES();
 
@@ -736,123 +738,125 @@ int what;
     S_SET_NAME(def_symbol_in_progress, (*symbol_name_copy == '_'
                                        ? symbol_name_copy + 1
                                        : symbol_name_copy));
-#else /* STRIP_UNDERSCORE */
+#else                          /* STRIP_UNDERSCORE */
     S_SET_NAME(def_symbol_in_progress, symbol_name_copy);
-#endif /* STRIP_UNDERSCORE */
+#endif                         /* STRIP_UNDERSCORE */
     /* free(symbol_name_copy); */
     def_symbol_in_progress->sy_name_offset = ~0;
     def_symbol_in_progress->sy_number = ~0;
     def_symbol_in_progress->sy_frag = &zero_address_frag;
 
     if (S_IS_STRING(def_symbol_in_progress)) {
-       SF_SET_STRING(def_symbol_in_progress);
-    } /* "long" name */
+           SF_SET_STRING(def_symbol_in_progress);
+       }                       /* "long" name */
 
     *input_line_pointer = name_end;
 
     demand_empty_rest_of_line();
     return;
-} /* obj_coff_def() */
+}                              /* obj_coff_def() */
 
 unsigned int dim_index;
-static void obj_coff_endef() {
-       symbolS *symbolP = 0;
-/* DIM BUG FIX sac@cygnus.com */
-       dim_index =0;
-       if (def_symbol_in_progress == NULL) {
-               as_warn(".endef pseudo-op used outside of .def/.endef: ignored.");
-               demand_empty_rest_of_line();
-               return;
-       } /* if not inside .def/.endef */
+static void 
+DEFUN_VOID(obj_coff_endef) 
+{
+    symbolS *symbolP = 0;
+    /* DIM BUG FIX sac@cygnus.com */
+    dim_index =0;
+    if (def_symbol_in_progress == NULL) {
+           as_warn(".endef pseudo-op used outside of .def/.endef: ignored.");
+           demand_empty_rest_of_line();
+           return;
+       }                       /* if not inside .def/.endef */
+
+    /* Set the section number according to storage class. */
+    switch (S_GET_STORAGE_CLASS(def_symbol_in_progress)) {
+         case C_STRTAG:
+         case C_ENTAG:
+         case C_UNTAG:
+           SF_SET_TAG(def_symbol_in_progress);
+           /* intentional fallthrough */
+         case C_FILE:
+         case C_TPDEF:
+           SF_SET_DEBUG(def_symbol_in_progress);
+           S_SET_SEGMENT(def_symbol_in_progress, SEG_DEBUG);
+           break;
 
-       /* Set the section number according to storage class. */
-       switch (S_GET_STORAGE_CLASS(def_symbol_in_progress)) {
-       case C_STRTAG:
-       case C_ENTAG:
-       case C_UNTAG:
-               SF_SET_TAG(def_symbol_in_progress);
-               /* intentional fallthrough */
-       case C_FILE:
-       case C_TPDEF:
-               SF_SET_DEBUG(def_symbol_in_progress);
-               S_SET_SEGMENT(def_symbol_in_progress, SEG_DEBUG);
-               break;
-
-       case C_EFCN:
-               SF_SET_LOCAL(def_symbol_in_progress);   /* Do not emit this symbol. */
-               /* intentional fallthrough */
-       case C_BLOCK:
-               SF_SET_PROCESS(def_symbol_in_progress); /* Will need processing before writing */
-               /* intentional fallthrough */
-       case C_FCN:
-               S_SET_SEGMENT(def_symbol_in_progress, SEG_E0);
-
-               if (def_symbol_in_progress->sy_symbol.ost_entry.n_name[1] == 'b') { /* .bf */
-                       if (function_lineoff < 0) {
-                               fprintf(stderr, "`.bf' symbol without preceding function\n");
-                       } /* missing function symbol */
-                       SA_GET_SYM_LNNOPTR(def_symbol_in_progress) = function_lineoff;
-                       SF_SET_PROCESS(def_symbol_in_progress); /* Will need relocating */
-                       function_lineoff = -1;
+         case C_EFCN:
+           SF_SET_LOCAL(def_symbol_in_progress); /* Do not emit this symbol. */
+           /* intentional fallthrough */
+         case C_BLOCK:
+           SF_SET_PROCESS(def_symbol_in_progress); /* Will need processing before writing */
+           /* intentional fallthrough */
+         case C_FCN:
+           S_SET_SEGMENT(def_symbol_in_progress, SEG_E0);
+
+           if (def_symbol_in_progress->sy_symbol.ost_entry.n_name[1] == 'b') { /* .bf */
+                   if (function_lineoff < 0) {
+                           fprintf(stderr, "`.bf' symbol without preceding function\n");
+                       }       /* missing function symbol */
+                   SA_GET_SYM_LNNOPTR(def_symbol_in_progress) = function_lineoff;
+                   SF_SET_PROCESS(def_symbol_in_progress); /* Will need relocating */
+                   function_lineoff = -1;
                }
-               break;
+           break;
 
 #ifdef C_AUTOARG
-       case C_AUTOARG:
-#endif /* C_AUTOARG */
-       case C_AUTO:
-       case C_REG:
-       case C_MOS:
-       case C_MOE:
-       case C_MOU:
-       case C_ARG:
-       case C_REGPARM:
-       case C_FIELD:
-       case C_EOS:
-               SF_SET_DEBUG(def_symbol_in_progress);
-               S_SET_SEGMENT(def_symbol_in_progress, SEG_ABSOLUTE);
-               break;
-
-       case C_EXT:
-       case C_STAT:
-       case C_LABEL:   
-       /* Valid but set somewhere else (s_comm, s_lcomm, colon) */
-               break;
-
-       case C_USTATIC:
-       case C_EXTDEF:
-       case C_ULABEL:
-               as_warn("unexpected storage class %d", S_GET_STORAGE_CLASS(def_symbol_in_progress));
-               break;
-       } /* switch on storage class */
-
-       /* Now that we have built a debug symbol, try to
-          find if we should merge with an existing symbol
-          or not.  If a symbol is C_EFCN or SEG_ABSOLUTE or
-          untagged SEG_DEBUG it never merges. */
-
-       /* Two cases for functions.  Either debug followed
-          by definition or definition followed by debug.
-          For definition first, we will merge the debug
-          symbol into the definition.  For debug first, the
-          lineno entry MUST point to the definition
-          function or else it will point off into space
-          when crawl_symbols() merges the debug
-          symbol into the real symbol.  Therefor, let's
-          presume the debug symbol is a real function
-          reference. */
-
-       /* FIXME-SOON If for some reason the definition
-          label/symbol is never seen, this will probably
-          leave an undefined symbol at link time. */
-
-       if (S_GET_STORAGE_CLASS(def_symbol_in_progress) == C_EFCN
-           || (S_GET_SEGMENT(def_symbol_in_progress) == SEG_DEBUG
-               && !SF_GET_TAG(def_symbol_in_progress))
-           || S_GET_SEGMENT(def_symbol_in_progress) == SEG_ABSOLUTE
-           || (symbolP = symbol_find_base(S_GET_NAME(def_symbol_in_progress), DO_NOT_STRIP)) == NULL) {
-
-               symbol_append(def_symbol_in_progress, symbol_lastP, &symbol_rootP, &symbol_lastP);
+         case C_AUTOARG:
+#endif                         /* C_AUTOARG */
+         case C_AUTO:
+         case C_REG:
+         case C_MOS:
+         case C_MOE:
+         case C_MOU:
+         case C_ARG:
+         case C_REGPARM:
+         case C_FIELD:
+         case C_EOS:
+           SF_SET_DEBUG(def_symbol_in_progress);
+           S_SET_SEGMENT(def_symbol_in_progress, SEG_ABSOLUTE);
+           break;
+
+         case C_EXT:
+         case C_STAT:
+         case C_LABEL: 
+           /* Valid but set somewhere else (s_comm, s_lcomm, colon) */
+           break;
+
+         case C_USTATIC:
+         case C_EXTDEF:
+         case C_ULABEL:
+           as_warn("unexpected storage class %d", S_GET_STORAGE_CLASS(def_symbol_in_progress));
+           break;
+       }                       /* switch on storage class */
+
+    /* Now that we have built a debug symbol, try to
+       find if we should merge with an existing symbol
+       or not.  If a symbol is C_EFCN or SEG_ABSOLUTE or
+       untagged SEG_DEBUG it never merges. */
+
+    /* Two cases for functions.  Either debug followed
+       by definition or definition followed by debug.
+       For definition first, we will merge the debug
+       symbol into the definition.  For debug first, the
+       lineno entry MUST point to the definition
+       function or else it will point off into space
+       when crawl_symbols() merges the debug
+       symbol into the real symbol.  Therefor, let's
+       presume the debug symbol is a real function
+       reference. */
+
+    /* FIXME-SOON If for some reason the definition
+       label/symbol is never seen, this will probably
+       leave an undefined symbol at link time. */
+
+    if (S_GET_STORAGE_CLASS(def_symbol_in_progress) == C_EFCN
+       || (S_GET_SEGMENT(def_symbol_in_progress) == SEG_DEBUG
+           && !SF_GET_TAG(def_symbol_in_progress))
+       || S_GET_SEGMENT(def_symbol_in_progress) == SEG_ABSOLUTE
+       || (symbolP = symbol_find_base(S_GET_NAME(def_symbol_in_progress), DO_NOT_STRIP)) == NULL) {
+
+           symbol_append(def_symbol_in_progress, symbol_lastP, &symbol_rootP, &symbol_lastP);
 
        } else {
                /* This symbol already exists, merge the
@@ -878,72 +882,76 @@ static void obj_coff_endef() {
                        if (def_symbol_in_progress != symbol_lastP) {
                                symbol_remove(def_symbol_in_progress, &symbol_rootP, &symbol_lastP);
                                symbol_append(def_symbol_in_progress, symbol_lastP, &symbol_rootP, &symbol_lastP);
-                       } /* if not already in place */
-               } /* if function */
-       } /* normal or mergable */
+                           }   /* if not already in place */
+                   }           /* if function */
+           }                   /* normal or mergable */
 
-       if (SF_GET_TAG(def_symbol_in_progress)
-           && symbol_find_base(S_GET_NAME(def_symbol_in_progress), DO_NOT_STRIP) == NULL) {
-               tag_insert(S_GET_NAME(def_symbol_in_progress), def_symbol_in_progress);
-       } /* If symbol is a {structure,union} tag, associate symbol to its name. */
+    if (SF_GET_TAG(def_symbol_in_progress)
+       && symbol_find_base(S_GET_NAME(def_symbol_in_progress), DO_NOT_STRIP) == NULL) {
+           tag_insert(S_GET_NAME(def_symbol_in_progress), def_symbol_in_progress);
+       }                       /* If symbol is a {structure,union} tag, associate symbol to its name. */
 
-       if (SF_GET_FUNCTION(def_symbol_in_progress)) {
-               know(sizeof(def_symbol_in_progress) <= sizeof(long));
-               function_lineoff 
-                = c_line_new((long)
-                             def_symbol_in_progress,0, 0, &zero_address_frag);
+    if (SF_GET_FUNCTION(def_symbol_in_progress)) {
+           know(sizeof(def_symbol_in_progress) <= sizeof(long));
+           function_lineoff 
+            = c_line_new((long)
+                         def_symbol_in_progress,0, 0, &zero_address_frag);
 
 
 
-               SF_SET_PROCESS(def_symbol_in_progress);
+           SF_SET_PROCESS(def_symbol_in_progress);
 
-               if (symbolP == NULL) {
-                       /* That is, if this is the first
-                          time we've seen the function... */
-                       symbol_table_insert(def_symbol_in_progress);
-                   }           /* definition follows debug */
-           }                   /* Create the line number entry pointing to the function being defined */
+           if (symbolP == NULL) {
+                   /* That is, if this is the first
+                      time we've seen the function... */
+                   symbol_table_insert(def_symbol_in_progress);
+               }               /* definition follows debug */
+       }                       /* Create the line number entry pointing to the function being defined */
 
-       def_symbol_in_progress = NULL;
-       demand_empty_rest_of_line();
-       return;
-} /* obj_coff_endef() */
+    def_symbol_in_progress = NULL;
+    demand_empty_rest_of_line();
+    return;
+}                              /* obj_coff_endef() */
 
-static void obj_coff_dim() 
+static void 
+DEFUN_VOID(obj_coff_dim) 
 {
     register int dim_index;
 
-    if (def_symbol_in_progress == NULL) {
+    if (def_symbol_in_progress == NULL) 
+    {
        as_warn(".dim pseudo-op used outside of .def/.endef: ignored.");
        demand_empty_rest_of_line();
        return;
-    } /* if not inside .def/.endef */
+    }                          /* if not inside .def/.endef */
 
     S_SET_NUMBER_AUXILIARY(def_symbol_in_progress, 1);
 
-    for (dim_index = 0; dim_index < DIMNUM; dim_index++) {
+    for (dim_index = 0; dim_index < DIMNUM; dim_index++) 
+    {
        SKIP_WHITESPACES();
        SA_SET_SYM_DIMEN(def_symbol_in_progress, dim_index, get_absolute_expression());
 
-       switch (*input_line_pointer) {
+       switch (*input_line_pointer) 
+       {
 
-          case ',':
+         case ',':
            input_line_pointer++;
            break;
 
-          default:
+         default:
            as_warn("badly formed .dim directive ignored");
            /* intentional fallthrough */
-          case '\n':
-          case ';':
+         case '\n':
+         case ';':
            dim_index = DIMNUM;
            break;
-       } /* switch on following character */
-    } /* for each dimension */
+       }                       /* switch on following character */
+    }                          /* for each dimension */
 
     demand_empty_rest_of_line();
     return;
-} /* obj_coff_dim() */
+}                              /* obj_coff_dim() */
 
 static void obj_coff_line() {
        if (def_symbol_in_progress == NULL) {
@@ -1269,10 +1277,12 @@ static unsigned int DEFUN_VOID(yank_symbols)
          /* next pointer remains valid */
          symbol_remove(symbolP, &symbol_rootP, &symbol_lastP);
 
-       } else if (!S_IS_DEFINED(symbolP)
-                  && !S_IS_DEBUG(symbolP) 
-                  && !SF_GET_STATICS(symbolP)) {
-           /* S_GET_STORAGE_CLASS(symbolP) == C_EXT && !SF_GET_FUNCTION(symbolP)) { */
+       }
+      else if (!S_IS_DEFINED(symbolP)
+              && !S_IS_DEBUG(symbolP) 
+              && !SF_GET_STATICS(symbolP) &&
+              S_GET_STORAGE_CLASS(symbolP) == C_EXT)
+      { /* C_EXT && !SF_GET_FUNCTION(symbolP))  */
            /* if external, Remove from the list */
            symbolS *hold = symbol_previous(symbolP);
 
@@ -1348,81 +1358,85 @@ static unsigned int DEFUN_VOID(tie_tags)
   
 }
 
-static void DEFUN(crawl_symbols,(headers, abfd),
-          struct    internal_filehdr *headers AND
-          bfd *abfd)
+static void 
+DEFUN(crawl_symbols,(headers, abfd),
+      struct    internal_filehdr *headers AND
+      bfd *abfd)
 {
 
-    unsigned int i;    
-    unsigned int ptr = 0;
+  unsigned int i;      
+  unsigned int ptr = 0;
 
 
-    symbolS *symbolP;
-
-    /* Initialize the stack used to keep track of the matching .bb .be */
+  symbolS *symbolP;
 
-    block_stack = stack_init(512, sizeof(symbolS*));
-    /* JF deal with forward references first... */
-    for (symbolP = symbol_rootP; symbolP; symbolP = symbol_next(symbolP)) {
+  /* Initialize the stack used to keep track of the matching .bb .be */
 
-           if (symbolP->sy_forward) {
-                   S_SET_VALUE(symbolP, (S_GET_VALUE(symbolP)
-                                         + S_GET_VALUE(symbolP->sy_forward)
-                                         + symbolP->sy_forward->sy_frag->fr_address));
-
-                   if (SF_GET_GET_SEGMENT(symbolP)) {
-                           S_SET_SEGMENT(symbolP, S_GET_SEGMENT(symbolP->sy_forward));
-                       }       /* forward segment also */
-
-                   symbolP->sy_forward=0;
-               }               /* if it has a forward reference */
-       }                       /* walk the symbol chain */
-
-
-    /* The symbol list should be ordered according to the following sequence
-     * order :
-     * . .file symbol
-     * . debug entries for functions
-     * . fake symbols for the sections, including.text .data and .bss
-     * . defined symbols
-     * . undefined symbols
-     * But this is not mandatory. The only important point is to put the
-     * undefined symbols at the end of the list.
-     */
+  block_stack = stack_init(512, sizeof(symbolS*));
+  /* JF deal with forward references first... */
+  for (symbolP = symbol_rootP;
+       symbolP;
+       symbolP = symbol_next(symbolP)) 
+  {
 
-    if (symbol_rootP == NULL
-       || S_GET_STORAGE_CLASS(symbol_rootP) != C_FILE) {
-           c_dot_file_symbol("fake");
-       }
-    /* Is there a .file symbol ? If not insert one at the beginning. */
+    if (symbolP->sy_forward) {
+       S_SET_VALUE(symbolP, (S_GET_VALUE(symbolP)
+                             + S_GET_VALUE(symbolP->sy_forward)
+                             + symbolP->sy_forward->sy_frag->fr_address));
+
+       if (SF_GET_GET_SEGMENT(symbolP)) {
+           S_SET_SEGMENT(symbolP, S_GET_SEGMENT(symbolP->sy_forward));
+         }                     /* forward segment also */
+
+       symbolP->sy_forward=0;
+      }                                /* if it has a forward reference */
+  }                            /* walk the symbol chain */
+
+
+  /* The symbol list should be ordered according to the following sequence
+   * order :
+   * . .file symbol
+   * . debug entries for functions
+   * . fake symbols for the sections, including.text .data and .bss
+   * . defined symbols
+   * . undefined symbols
+   * But this is not mandatory. The only important point is to put the
+   * undefined symbols at the end of the list.
+   */
+
+  if (symbol_rootP == NULL
+      || S_GET_STORAGE_CLASS(symbol_rootP) != C_FILE) {
+      c_dot_file_symbol("fake");
+    }
+  /* Is there a .file symbol ? If not insert one at the beginning. */
 
-    /*
-     * Build up static symbols for the sections, they are filled in later
-     */
+  /*
+   * Build up static symbols for the sections, they are filled in later
+   */
 
 
-    for (i = SEG_E0; i < SEG_E9; i++) 
+  for (i = SEG_E0; i < SEG_E9; i++) 
+  {
+    if (segment_info[i].scnhdr.s_name[0])
     {
-       if (segment_info[i].scnhdr.s_name[0])
-       {
-           segment_info[i].dot = 
-            c_section_symbol(segment_info[i].scnhdr.s_name,
-                             i-SEG_E0+1);
+      segment_info[i].dot = 
+       c_section_symbol(segment_info[i].scnhdr.s_name,
+                       i-SEG_E0+1);
            
-       }
     }
+  }
 
 
-    /* Take all the externals out and put them into another chain */
-    headers->f_nsyms =   yank_symbols();
-    /* Take the externals and glue them onto the end.*/
-    headers->f_nsyms +=  glue_symbols();
+  /* Take all the externals out and put them into another chain */
+  headers->f_nsyms =   yank_symbols();
+  /* Take the externals and glue them onto the end.*/
+  headers->f_nsyms +=  glue_symbols();
 
-    headers->f_nsyms =   tie_tags();
-    know(symbol_externP == NULL);
-    know(symbol_extern_lastP  == NULL);
+  headers->f_nsyms =   tie_tags();
+  know(symbol_externP == NULL);
+  know(symbol_extern_lastP  == NULL);
 
-    return;
+  return;
 }
 
 /*
@@ -1505,14 +1519,7 @@ DEFUN(do_linenos_for,(abfd, file_cursor),
   }
 }
 
-/*
- * Local Variables:
- * comment-column: 0
- * fill-column: 131
- * End:
- */
 
-/* end of obj-coff.c */
 /* Now we run through the list of frag chains in a segment and
    make all the subsegment frags appear at the end of the
    list, as if the seg 0 was extra long */
@@ -2104,3 +2111,4 @@ segT              this_segment_type)
 
 
 
+