--- lush-1.2_old/src/dldbfd.c	2006-10-13 16:32:21.000000000 +0200
+++ lush-1.2/src/dldbfd.c	2006-10-13 16:34:35.000000000 +0200
@@ -24,7 +24,7 @@
  ***********************************************************************/
 
 /***********************************************************************
- * $Id: dldbfd.c,v 1.50 2005/08/11 17:47:36 leonb Exp $
+ * $Id: dldbfd.c,v 1.52 2006/09/05 22:12:43 leonb Exp $
  **********************************************************************/
 
 #ifdef HAVE_CONFIG_H
@@ -94,6 +94,13 @@
 # define dldbfd_section_size(p) ((p)->size)
 #endif
 
+#if HAVE_BFD_HASH_TABLE_INIT_WANTS_2_ARGS
+# define my_bfd_hash_table_init(a,b,c) bfd_hash_table_init(a,b)
+#else
+# define my_bfd_hash_table_init(a,b,c) bfd_hash_table_init(a,b,c)
+#endif
+
+
 void *bfd_alloc(bfd *abfd, bfd_size_type wanted);
 unsigned int bfd_log2 (bfd_vma x);
 
@@ -683,7 +690,7 @@ init_global_symbol_table(void)
 {
     static int initialized = 0;
     ASSERT(!initialized);
-    bfd_hash_table_init(&global_symbol_table, init_symbol_entry);
+    my_bfd_hash_table_init(&global_symbol_table, init_symbol_entry, sizeof(symbol_entry));
     initialized = 1;
 }
 
@@ -1129,7 +1136,7 @@ mipself_init_got_info(module_entry *ent,
   /* Create GOT hash table */
   info->sgot = NULL;
   info->gotsize = 0;
-  bfd_hash_table_init(&info->got_table, mipself_init_got_entry);
+  my_bfd_hash_table_init(&info->got_table, mipself_init_got_entry, sizeof(mipself_got_entry));
   /* Identify pertinent howto information */
   info->reloc_got16 = bfd_reloc_type_lookup(ent->abfd,BFD_RELOC_MIPS_GOT16);
   info->reloc_call16 = bfd_reloc_type_lookup(ent->abfd,BFD_RELOC_MIPS_CALL16);
@@ -1511,7 +1518,7 @@ alphaelf_init_got_info(module_entry *ent
 {
   info->sgot = NULL;
   info->gotsize = 0;
-  bfd_hash_table_init(&info->got_table, alphaelf_init_got_entry);
+  my_bfd_hash_table_init(&info->got_table, alphaelf_init_got_entry, sizeof(alphaelf_got_entry));
   info->reloc_literal = bfd_reloc_type_lookup(ent->abfd,BFD_RELOC_ALPHA_ELF_LITERAL);
   info->reloc_64 = bfd_reloc_type_lookup(ent->abfd,BFD_RELOC_64);
 }
@@ -2722,7 +2729,7 @@ link_archive_members(module_entry *modul
     chain_of_bfd *chain;
 
     /* Initialize archive symbol table */
-    if (! bfd_hash_table_init(&archive_map, init_archive_entry))
+    if (! my_bfd_hash_table_init(&archive_map, init_archive_entry, sizeof(archive_entry)))
         THROW(bfd_errmsg(bfd_error_no_memory));        
     cookie.armap = &archive_map;
     cookie.armod = module;

