From 3c498933ab2914a93ee8383cb75d9b6c9706c0ff Mon Sep 17 00:00:00 2001 From: Ken Raeburn Date: Wed, 13 Jul 1994 01:48:15 +0000 Subject: [PATCH] Updated some copyrights, cleaned up some header-file comments, and: * symbols.c (symbol_create): New function, most of the guts of the old symbol_new function. (symbol_new): Now just checks symbol_table_frozen, calls symbol_create, and enters the symbol into the symbol table. * subsegs.c (section_symbol): If EMIT_SECTION_SYMBOLS is not true, and the symbol table is frozen, call symbol_create instead of symbol_new. * symbols.h (symbol_create, symbol_table_frozen): Declare. * symbols.c (symbol_clear_list_pointers): Always a function now. * struc-symbol.h (symbol_clear_list_pointers): Deleted macro version. * symbols.c (debug_verify_symchain): New macro, defined to be verify_symbol_chain or a cast to void, depending on DEBUG_SYMS. (many functions): Invoke debug_verify_symchain unconditionally. --- gas/ChangeLog | 17 +++++++++++++++++ gas/subsegs.c | 18 ++++++++++++++---- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index d25a0e6..2aba961 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -2,6 +2,23 @@ Tue Jul 12 21:27:05 1994 Ken Raeburn (raeburn@cujo.cygnus.com) * config/ho-sysv.h (realloc): Declare. + * symbols.c (symbol_create): New function, most of the guts of the + old symbol_new function. + (symbol_new): Now just checks symbol_table_frozen, calls + symbol_create, and enters the symbol into the symbol table. + * subsegs.c (section_symbol): If EMIT_SECTION_SYMBOLS is not true, + and the symbol table is frozen, call symbol_create instead of + symbol_new. + * symbols.h (symbol_create, symbol_table_frozen): Declare. + + * symbols.c (symbol_clear_list_pointers): Always a function now. + * struc-symbol.h (symbol_clear_list_pointers): Deleted macro + version. + + * symbols.c (debug_verify_symchain): New macro, defined to be + verify_symbol_chain or a cast to void, depending on DEBUG_SYMS. + (many functions): Invoke debug_verify_symchain unconditionally. + Tue Jul 12 12:06:42 1994 Kung Hsu (kung@x1.cygnus.com) * config/obj-ecoff.h: change calling interface of diff --git a/gas/subsegs.c b/gas/subsegs.c index 55e111e..e94dc64 100644 --- a/gas/subsegs.c +++ b/gas/subsegs.c @@ -145,8 +145,7 @@ subseg_change (seg, subseg) if (! seginfo) { seginfo = (segment_info_type *) xmalloc (sizeof (*seginfo)); - if (! seginfo) - abort (); + memset ((PTR) seginfo, 0, sizeof (*seginfo)); seginfo->fix_root = NULL; seginfo->fix_tail = NULL; seginfo->bfd_section = seg; @@ -420,7 +419,7 @@ subseg_get (segname, force_new) if (secptr->output_section != secptr) secptr->output_section = secptr; seginfo = (segment_info_type *) xmalloc (sizeof (*seginfo)); - memset ((char *) seginfo, 0, sizeof(seginfo)); + memset ((PTR) seginfo, 0, sizeof (*seginfo)); seginfo->fix_root = NULL; seginfo->fix_tail = NULL; seginfo->bfd_section = secptr; @@ -513,7 +512,18 @@ section_symbol (sec) s = symbol_find (sec->name); if (!s) { - s = symbol_new (sec->name, sec, 0, &zero_address_frag); +#ifndef EMIT_SECTION_SYMBOLS +#define EMIT_SECTION_SYMBOLS 1 +#endif + + if (EMIT_SECTION_SYMBOLS +#ifdef BFD_ASSEMBLER + && symbol_table_frozen +#endif + ) + s = symbol_new (sec->name, sec, 0, &zero_address_frag); + else + s = symbol_create (sec->name, sec, 0, &zero_address_frag); S_CLEAR_EXTERNAL (s); /* Use the BFD section symbol, if possible. */ -- 2.7.4