* 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
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;
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;
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. */