On 8/21/22 12:51, John Reiser wrote:
>> it's clear there's a documentation problem [with DT_GNU_HASH]
> Partly due to lack of documentation, already I have seen "abuses"
> of the DT_GNU_HASH format. In particular, some versions of Rust
> and/or musl run-times use (0 == nbucket) to mean something like
> "there is no hash table information" but do not specify all the
> implications for the run-time symbol table. Other versions use
> (1 == nbucket && 0 == buckets[0] && 1 == n_bitmask && 0 ==
bitmask[0])
> for a similar purpose. Similarly, Rust and Android can trim
> "unused" zero entries from the end of &hash_array[nbucket],
> even though buckets[] and hash_array[] should be parallel.
Please report a bug at
https://github.com/rust-lang/rust/issues.