This is the mail archive of the cygwin-apps@cygwin.com mailing list for the Cygwin 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: ordinal linking for cygwin ld


> Mostly. I'm a bit rusty - it's been a while since I grokked the
> auto-import stuff. I'm getting back into it at the moment. The thing
> that I don't follow at the moment is the how the linker fixup places the
> exported data -variable- at a fixed rva at dll load time. The IAT is
> -meant- to point straight to functions after the fixup occurs, so
> pointing at an address in the .dll .text segment is fine.
                                 ^^^^

Not into the dll, into the client code.

objdump -D client.exe
<snip>

401063:	a1 b8 40 40 00       	mov    0x4040b8,%eax
             | ^^^^^^^^^^
          opcode     address
00401064 :

Firstthunk points to 0x401064, the symbol <__fu0__var0000>, which is the address
part of the mov instruction. After run time linking the loader has relocated
this address to the propper value.

401063:	a1 ab cd ef 00       	mov    0x00efcdab,%eax

Ralf




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