This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: Empty IAT entry
Hi Craig,
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:
bfd/peiXXigen.c: _bfd_XXi_final_link_postscript()
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. :-(
Cheers
Nick