2001-09-11 H.J. Lu <hjl@gnu.org>
[deliverable/binutils-gdb.git] / bfd / linker.c
index 00389aca6c2d1bf7988a876a94b7c6d5bb5e125e..df7ee4b16123bcb81312a15be4f729e7aae7b83e 100644 (file)
@@ -483,6 +483,8 @@ _bfd_link_hash_table_init (table, abfd, newfunc)
   table->creator = abfd->xvec;
   table->undefs = NULL;
   table->undefs_tail = NULL;
+  table->type = bfd_link_generic_hash_table;
+
   return bfd_hash_table_init (&table->table, newfunc);
 }
 
@@ -1007,9 +1009,13 @@ _bfd_generic_link_add_archive_symbols (abfd, info, checkfn)
             let's look for its import thunk */
          if (info->pei386_auto_import)
            {
-             char *buf = alloca (strlen (h->root.string) + 10);
+             char *buf = (char *) bfd_malloc (strlen (h->root.string) + 10);
+             if (buf == NULL)
+               return false;
+
              sprintf (buf, "__imp_%s", h->root.string);
              arh = archive_hash_lookup (&arsym_hash, buf, false, false);
+             free(buf);
            }
          if (arh == (struct archive_hash_entry *) NULL)
            {
@@ -1405,7 +1411,7 @@ static const enum link_action link_action[8][8] =
   /* UNDEFW_ROW        */  {WEAK,  NOACT, NOACT, REF,   REF,   NOACT, REFC,  WARNC },
   /* DEF_ROW   */  {DEF,   DEF,   DEF,   MDEF,  DEF,   CDEF,  MDEF,  CYCLE },
   /* DEFW_ROW  */  {DEFW,  DEFW,  DEFW,  NOACT, NOACT, NOACT, NOACT, CYCLE },
-  /* COMMON_ROW        */  {COM,   COM,   COM,   CREF,  CREF,  BIG,   REFC,  WARNC },
+  /* COMMON_ROW        */  {COM,   COM,   COM,   CREF,  COM,   BIG,   REFC,  WARNC },
   /* INDR_ROW  */  {IND,   IND,   IND,   MDEF,  IND,   CIND,  MIND,  CYCLE },
   /* WARN_ROW   */  {MWARN, WARN,  WARN,  CWARN, CWARN, WARN,  CWARN, MWARN },
   /* SET_ROW   */  {SET,   SET,   SET,   SET,   SET,   SET,   CYCLE, CYCLE }
This page took 0.024406 seconds and 4 git commands to generate.