Empty IAT entry
Tue Jul 20 10:40:00 GMT 2004
> Entry c 00000000 00000000 Import Address Table Directory
> There is definitely an import table that contains perfectly valid IAT
> entries, but for some reason the first thunk isn't populated in the
> Data Directory.
I am sorry, but I do not have time to do a proper investigation of this
problem right now. If you are interested however here are a couple of
pointers to where you might look in the sources:
This contains the code that is supposed to fill in the IAT field in
the Data Dictionary. It is not doing so because .idata$2 (and .idata$5)
are not defined in the output file's symbol table.
So the question is, where should .idata$5 be created ? There is code
in bfd/peicode.h:pe_ILF_build_a_bfd() which will create such a symbol,
but it is only used when handling Microsoft's Image Library Format.
There is similar also code in ld/pe-dll.c but this is only used when
building DLLs. So I am a bit lost at the moment. I do not know where
these symbols should be created or why they are not being created. :-(
More information about the Binutils