From 3ffbc9073e4408f31d467c944cce23a4c75d5c4b Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Fri, 2 Sep 1994 20:42:28 +0000 Subject: [PATCH] * ecoff.c (add_file): Don't try to generate line numbers if the symbol table has been frozen. --- gas/ChangeLog | 16 ++++++++++++++++ gas/ecoff.c | 25 ++++++++++++++++--------- 2 files changed, 32 insertions(+), 9 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 4822e63092..22c0503810 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -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. diff --git a/gas/ecoff.c b/gas/ecoff.c index 64e4bcb013..a3080b0a96 100644 --- a/gas/ecoff.c +++ b/gas/ecoff.c @@ -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)); } } } -- 2.34.1