ordinal linking for cygwin ld

Ralf Habacker Ralf.Habacker@freenet.de
Sun Apr 28 05:22:00 GMT 2002


> 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





More information about the Cygwin-apps mailing list