This is the mail archive of the libc-help@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


2009/4/27 Mike Frysinger <vapier@gentoo.org>:
> On Thursday 23 April 2009 11:22:40 Igor Zhbanov wrote:
>> 2009/4/23 Ryan Arnold <ryan.arnold@gmail.com>:
>> > 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-set
>> >context-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.
>>
>> /proc/self/auxv is good but... But I need to run program on 2.4.x kernel
>> too. And 2.4.x has no /proc/self/auxv file. Sigh.
>>
>> So I need to dig in the stack. Is there any exported glibc symbol (or
>> function) that points
>> somewhere nearby **argv or **envp in the stack during all of the
>> program lifetime?
>
> declare a constructor and grab the environ pointer then

But what if constructor of another library (which was called before
my) calls setenv()?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]