This is the mail archive of the
cygwin-developers@cygwin.com
mailing list for the Cygwin project.
Re: dll base address
- To: cygwin-developers at sources dot redhat dot com
- Subject: Re: dll base address
- From: Christopher Faylor <cgf at redhat dot com>
- Date: Sun, 10 Jun 2001 00:40:15 -0400
- References: <001f01c0f0e6$72b8ec80$0200a8c0@lifelesswks>
- Reply-To: cygwin-developers at cygwin dot com
On Sat, Jun 09, 2001 at 11:16:51PM +1000, Robert Collins wrote:
>I haven't fixed the problem I reported with Paul Solovoskys patched ld,
>but I have a lead... it seems to be that cygwin1.dll is loaded after a
>dll that I was linking to, and that cygwin1.dll is getting relocated :
>
>(gdb) info dll
>DLL Name Load Address
>f:/src/ldt/auto-import-sample/dll.dll 610c1000
>e:/cygwin/bin/cygwin1.dll 02561000
>e:/winnt/system32/kernel32.dll 77e81000
>e:/winnt/system32/advapi32.dll 77db1000
>e:/winnt/system32/rpcrt4.dll 77d41000
>(gdb) print __cygwin_user_data
>Cannot access memory at address 0x610933a0
>
>As you can see, cygwin1.dll has been loaded at 02561000. It seems to me
>that if __cygwin_user_data is a non-relocatble variable, that we should
>mark cygwin1.dll as non-relocatable.
>
>Thoughts?
It's possible that this is just an artifact of faulty handling by gdb.
I'm not aware of any reason for cygwin1.dll to be unrelocatable.
If you look at the definition of __cygwin_user_data you'll see that
there is nothing magic about it.
Alternate theories is that there is either something wrong with gcc/binutils,
that we are missing something in the way that cygwin1.dll is linked, or
that there is something wrong with Paul's patched ld.
cgf