Index: gas/as.c =================================================================== RCS file: /cvs/src/src/gas/as.c,v retrieving revision 1.59 diff -c -3 -p -r1.59 as.c *** gas/as.c 12 Apr 2005 08:42:38 -0000 1.59 --- gas/as.c 14 Apr 2005 08:56:36 -0000 *************** the GNU General Public License. This pr *** 885,891 **** case OPTION_HASH_TABLE_SIZE: { ! bfd_size_type new_size; new_size = strtoul (optarg, NULL, 0); if (new_size) --- 885,891 ---- case OPTION_HASH_TABLE_SIZE: { ! unsigned long new_size; new_size = strtoul (optarg, NULL, 0); if (new_size) *************** main (int argc, char ** argv) *** 1114,1123 **** #endif PROGRESS (1); symbol_begin (); frag_init (); subsegs_begin (); - parse_args (&argc, &argv); read_begin (); input_scrub_begin (); expr_begin (); --- 1114,1125 ---- #endif PROGRESS (1); + /* Call parse_args before any of the init/begin functions + so that switches like --hash-size can be honored. */ + parse_args (&argc, &argv); symbol_begin (); frag_init (); subsegs_begin (); read_begin (); input_scrub_begin (); expr_begin (); Index: gas/hash.c =================================================================== RCS file: /cvs/src/src/gas/hash.c,v retrieving revision 1.14 diff -c -3 -p -r1.14 hash.c *** gas/hash.c 12 Apr 2005 08:42:38 -0000 1.14 --- gas/hash.c 14 Apr 2005 08:56:36 -0000 *************** struct hash_control { *** 73,92 **** switch --reduce-memory-overheads, or set to other values by using the --hash-size= switch. */ ! static unsigned int gas_hash_table_size = 65537; void ! set_gas_hash_table_size (unsigned int size) { gas_hash_table_size = size; } /* FIXME: This function should be amalgmated with bfd/hash.c:bfd_hash_set_default_size(). */ ! static unsigned int get_gas_hash_table_size (void) { /* Extend this prime list if you want more granularity of hash table size. */ ! static const unsigned int hash_size_primes[] = { 1021, 4051, 8599, 16699, 65537 }; --- 73,92 ---- switch --reduce-memory-overheads, or set to other values by using the --hash-size= switch. */ ! static unsigned long gas_hash_table_size = 65537; void ! set_gas_hash_table_size (unsigned long size) { gas_hash_table_size = size; } /* FIXME: This function should be amalgmated with bfd/hash.c:bfd_hash_set_default_size(). */ ! static unsigned long get_gas_hash_table_size (void) { /* Extend this prime list if you want more granularity of hash table size. */ ! static const unsigned long hash_size_primes[] = { 1021, 4051, 8599, 16699, 65537 }; *************** get_gas_hash_table_size (void) *** 107,115 **** struct hash_control * hash_new (void) { ! unsigned int size; struct hash_control *ret; - unsigned int alloc; size = get_gas_hash_table_size (); --- 107,115 ---- struct hash_control * hash_new (void) { ! unsigned long size; ! unsigned long alloc; struct hash_control *ret; size = get_gas_hash_table_size (); Index: gas/hash.h =================================================================== RCS file: /cvs/src/src/gas/hash.h,v retrieving revision 1.7 diff -c -3 -p -r1.7 hash.h *** gas/hash.h 12 Apr 2005 08:42:38 -0000 1.7 --- gas/hash.h 14 Apr 2005 08:56:36 -0000 *************** struct hash_control; *** 26,32 **** /* Set the size of the hash table used. */ ! void set_gas_hash_table_size (unsigned int); /* Create a hash table. This return a control block. */ --- 26,32 ---- /* Set the size of the hash table used. */ ! void set_gas_hash_table_size (unsigned long); /* Create a hash table. This return a control block. */