Messages in this thread | | | From | Andy Lutomirski <> | Date | Thu, 12 Jun 2014 22:23:44 -0700 | Subject | Re: vdso feature requests from the Go people |
| |
On Thu, Jun 12, 2014 at 10:15 PM, H. Peter Anvin <hpa@zytor.com> wrote: > On 06/12/2014 09:36 PM, Andy Lutomirski wrote: >> >> If we were to implement both, maybe we'd actually want to provide >> something like: >> >> struct vdso_entry { >> unsigned long vdso_entry_struct_size; /* so we can add fields later on */ >> void *func; >> unsigned int max_stack; /* zero if not known */ >> }; >> > > How different is this really from the .dynsym table -- other than that > you have to find the latter via the dynamic segment? > > The hash part is just to speed up lookup...
As far as I know, there's no reliable way to just read the dynsym table -- the thing doesn't have a specified length, which is what broke Go in the first place.
Parsing the ELF dynamic tables is kind of annoyingly complicated, and understanding the format is a real PITA -- the documentation I've been able to find is outright terrible.
--Andy
| |