Empty IAT entry

Nick Clifton nickc@redhat.com
Tue Jul 20 10:40:00 GMT 2004


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




More information about the Binutils mailing list