This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: Empty IAT entry
- From: "Craig Edwards" <craig at haenterprises dot com dot au>
- To: "Nick Clifton" <nickc at redhat dot com>
- Cc: "binutils at sources dot redhat dot com" <binutils at sources dot redhat dot com>
- Date: Thu, 22 Jul 2004 21:45:55 +1000
- Subject: Re: Empty IAT entry
- Organization: H.A. Enterprises Pty Ltd
Nick Clifton wrote:
bfd/peiXXigen.c: _bfd_XXi_final_link_postscript()
This contains the code that is supposed to fill in theIAT field in the
Data Dictionary. It is not doing sobecause .idata$2 (and .idata$5) are
not defined in theoutput 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 usedwhen handling Microsoft's Image Library Format. Thereis
similar also code in ld/pe-dll.c but this is onlyused when building
DLLs. So I am a bit lost at the moment.I do not know where these symbols
should be created orwhy they are not being created. :-(
Hmmm... that's interesting. Looking around a bit more, the only other
places I see any reference to .idata$5 is in bfd/coff-ppc.c around line
1460. In this function, the code is trying to find the
first_thunk_address, but then it doesn't do anything with it (and in any
case, my target is i386, not ppc) :-(
In fact, the only place where the first thunk is referenced at all is when
the code is dumping info to the console (presumably via objdump, or the
like).
Oh well... as I said, it doesn't seem to affect the runtime execution,
and I have managed to find a workaround for my needs, so I am happy to let
it rest. Thanks again for your feedback.
--
Craig Edwards