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