* ecoff.c (add_file): Don't try to generate line numbers if the
authorIan Lance Taylor <ian@airs.com>
Fri, 2 Sep 1994 20:42:28 +0000 (20:42 +0000)
committerIan Lance Taylor <ian@airs.com>
Fri, 2 Sep 1994 20:42:28 +0000 (20:42 +0000)
symbol table has been frozen.

gas/ChangeLog
gas/ecoff.c

index 4822e63..22c0503 100644 (file)
@@ -1,3 +1,19 @@
+Fri Sep  2 16:05:50 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * ecoff.c (add_file): Don't try to generate line numbers if the
+       symbol table has been frozen.
+
+Thu Sep  1 19:48:01 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
+
+       * aclocal.m4 (AC_PROG_CC): Use AC_DEFUN, and omit AC_PROVIDE.
+
+       * configure.in: Handle user-specified bfd-assembler option with
+       separate variable from preferred configuration, until the two are
+       resolved.  Indicate bfd_gas=preferred for linux a.out.  Use
+       AC_PROGRAM_TRANSFORM_NAME, for which a patch has been sent to djm.
+       * Makefile.in (target_alias, program_transform_name): Define,
+       using autoconf @-substitutions.
+
 Wed Aug 31 17:43:06 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
 
        * atof-generic.c: Deleted alloca handling here.
index 64e4bcb..a3080b0 100644 (file)
@@ -1499,7 +1499,13 @@ void
 ecoff_symbol_new_hook (symbolP)
      symbolS *symbolP;
 {
-  if (cur_file_ptr == (efdr_t *) NULL)
+  /* Make sure that we have a file pointer, but only if we have seen a
+     file.  If we haven't seen a file, then this is a probably special
+     symbol created by md_begin which may required special handling at
+     some point.  Creating a dummy file with a dummy name is certainly
+     wrong.  */
+  if (cur_file_ptr == (efdr_t *) NULL
+      && seen_at_least_1_file ())
     add_file ((const char *) NULL, 0);
   symbolP->ecoff_file = cur_file_ptr;
   symbolP->ecoff_symbol = NULL;
@@ -2191,7 +2197,8 @@ add_file (file_name, indx)
        as_fatal ("fake .file after real one");
       as_where (&file, (unsigned int *) NULL);
       file_name = (const char *) file;
-      generate_asm_line_stab = 1;
+      if (! symbol_table_frozen)
+       generate_asm_line_stab = 1;
     }
   else
       generate_asm_line_stab = 0;
@@ -2278,15 +2285,15 @@ add_file (file_name, indx)
                                           &cur_file_ptr->thash_head[0]);
       if (generate_asm_line_stab)
        {
-         static char itstr[] = "void:t1=1";
          mark_stabs (0);
           (void) add_ecoff_symbol (file_name, st_Nil, sc_Nil,
-                               symbol_new ("L0\001", now_seg,
-                                           (valueT) frag_now_fix (),
-                                           frag_now),
-                               0, ECOFF_MARK_STAB (N_SO));
-          (void) add_ecoff_symbol (itstr, st_Nil, sc_Nil,
-                               (symbolS *)NULL, 0, ECOFF_MARK_STAB (N_LSYM));
+                                  symbol_new ("L0\001", now_seg,
+                                              (valueT) frag_now_fix (),
+                                              frag_now),
+                                  0, ECOFF_MARK_STAB (N_SO));
+          (void) add_ecoff_symbol ("void:t1=1", st_Nil, sc_Nil,
+                                  (symbolS *) NULL, 0,
+                                  ECOFF_MARK_STAB (N_LSYM));
        }
     }
 }