[v2 0/9] RFC: port gas to use libiberty htab hash table

Alan Modra amodra@gmail.com
Thu Aug 20 01:36:52 GMT 2020


On Wed, Aug 19, 2020 at 10:28:47AM +0200, Martin Liska wrote:
> Hello.
> 
> There's second version of the patch set where I did:
> - New htab_t related functions are implemented in gas/hash.c, libiberty
>   maintainer was not happy about moving them to libiberty.
> - New str_hash_* function were added to support a string hash table
>   based on htab_t.
> - Legacy hash table is removed in gas/hash.[ch]
> - Two related options are removed (--reduce-memory-overheads, --hash-size arguments)
> 
> I tested the patchset on all targets.
> Thoughts?

Excellent.  There was one small problem when compiling for a 32-bit
host:
/home/alan/src/binutils-gdb/gas/hash.c: In function ‘htab_print_statistics’:
/home/alan/src/binutils-gdb/gas/hash.c:53:20: error: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘size_t {aka unsigned int}’ [-Werror=format=]
   fprintf (f, "\t%lu elements\n", htab_elements (table));
                  ~~^              ~~~~~~~~~~~~~~~~~~~~~
                  %u
/home/alan/src/binutils-gdb/gas/hash.c:54:20: error: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘size_t {aka unsigned int}’ [-Werror=format=]
   fprintf (f, "\t%lu table size\n", htab_size (table));
                  ~~^                ~~~~~~~~~~~~~~~~~
                  %u

I fixed that, and decided I'd rather see the raw collision count than
a ratio so changed that too.  There was also some commentary that is
no longer relevant in hash.c, and ChangeLog entries in gas/ChangeLog
shouldn't have leading "gas/" path names.  And an extra hashtab.h in
as.h.  Committed, thanks very much!

-- 
Alan Modra
Australia Development Lab, IBM


More information about the Binutils mailing list