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.
--
Sincerely,
Demi Marie Obenour (she/her/hers)