How to get ELF auxiliary vector address outside of main(), not using **argv nor **envp?

Ryan Arnold ryan.arnold@gmail.com
Thu Apr 23 14:59:00 GMT 2009


Hi Igor, there's an example in one of the libc test cases that I
wrote.  My team member Sean Curry wrote the original auxv query code.

http://sourceware.org/cgi-bin/cvsweb.cgi/libc/sysdeps/powerpc/fpu/tst-setcontext-fpscr.c?rev=1.3&content-type=text/x-cvsweb-markup&cvsroot=glibc

Look at the query_auxv() function.

Uli doesn't want the auxv information exported from GLIBC so this is
the suggested method.

We have a special library called libauxv to help with this but we
haven't released it yet.  I really should get on it.

Ryan

On Thu, Apr 23, 2009 at 9:41 AM, Igor Zhbanov <izh1979@gmail.com> wrote:
> Hello!
>
> I need to read ELF auxiliary vector in my library. To do this, I use
> global pointer **environ.
> But after setenv() call, environment variables are relocated, so I
> can't use **environ anymore.
>
> And I don't know, how to get **argv outside of main() in my library.
>
> Is there any exported glibc variables that points to original argv,
> envp or auxv values?
> Or is there any reliable way to get ELF auxiliary vector?
>
> Thanks.
>



More information about the Libc-help mailing list