runtime: support DT_GNU_HASH in VDSO
runtime: support DT_GNU_HASH in VDSO

Currently we only support finding symbols in the VDSO using the old
DT_HASH. These days everything uses DT_GNU_HASH instead. To keep up
with the times and future-proof against DT_HASH disappearing from the
VDSO in the future, this commit adds support for DT_GNU_HASH and
prefers it over DT_HASH.

Tested by making sure it found a DT_GNU_HASH section and all of the
expected symbols in it, and then disabling the DT_GNU_HASH path and
making sure the old DT_HASH path still found all of the symbols.

Fixes #19649.

Change-Id: I508c8b35a019330d2c32f04f3833b69cb2686f13
Reviewed-on: https://go-review.googlesource.com/45511
Run-TryBot: Austin Clements <7ea35d812706d9213868749011af1ed4fa2f6aa0@google.com>
TryBot-Result: Gobot Gobot <66cb808b70d30c07676d5e946fee83fd561249e5@golang.org>
Reviewed-by: Ian Lance Taylor <87e9c6d529889242b7e184afb632328636553ab4@golang.org>

Cofyc/go,akutz/go,Cofyc/go,polyverse-security/go,Cofyc/go,golang/go,codestation/go,polyverse-security/go,CAFxX/go,codestation/go,akutz/go,akutz/go,cloudflare/go,akutz/go,polyverse-security/go,nawawi/go,CAFxX/go,Cofyc/go,cloudflare/go,josharian/go,cloudflare/go,golang/go,codestation/go,polyverse-security/go,cloudflare/go,golang/go,nawawi/go,polyverse-security/go,cloudflare/go,polyverse-security/go,josharian/go,nawawi/go,polyverse-security/go,akutz/go,CAFxX/go,golang/go,CAFxX/go,akutz/go,codestation/go,Cofyc/go,cloudflare/go,polyverse-security/go,josharian/go,akutz/go,akutz/go,josharian/go,nawawi/go,christopher-henderson/Go,CAFxX/go,CAFxX/go,CAFxX/go,codestation/go,josharian/go,golang/go,cloudflare/go,codestation/go,CAFxX/go,nawawi/go,golang/go,Cofyc/go,josharian/go,josharian/go,codestation/go,codestation/go,Cofyc/go,nawawi/go,cloudflare/go,golang/go,nawawi/go,nawawi/go,golang/go,Cofyc/go,josharian/go