I suggest setting NBuckets so that it is always >= 0.
Currently, we can end up with NBuckets==0 and android loader
does not like it (see PR36537).
The gold linker as we know use predefined table with values for NBuckets
and it never produces output where NBuckets == 0.
In theory, we could drop the whole hash table in this case probably,
as the only use case I can imagine now where it might harm is when
binary contains only undefined symbols, so that without hash section,
the loader will have to lookup for some symbol instead of instantly getting
the info that there are no symbols from the empty hash table. It's unrealistic I think.
But I also think that we probably can go with a minimal amount of changes here for simplicity
and be consistent with gold and so just always use >= 1 value for NBuckets.
Please separate sentences with blank lines. The sentence about an Android loader workaround and "We chose ..." are talking about completely different stuff, so this is confusing.