This is the mail archive of the
binutils@sourceware.cygnus.com
mailing list for the binutils project.
linker problem with WinCE exe's
- To: egcs binutils <binutils@sourceware.cygnus.com>
- Subject: linker problem with WinCE exe's
- From: wisi <richard.wisenoecker@gmx.at>
- Date: Fri, 04 Jun 1999 21:43:19 +0200
Hi !
I try to finish the port of gcc to WinCE (based on the sources of
http://hyperion.clc.cc.il.us/~arty/).
Actually I have an error in the linker with the "import information"
section of WinCE exe files.
This stuff is in the .idata section. This section has subsections as
.idata$2, .idata$3,...,idata$6. The interesting thing is that symbols
are reallocated correctly.
I have just an error when the address of the start of .idata$4 is needed
(In detail: the error occurs at the .idata section offset 0x0 where the
address of the beginning of .idata$4 should be and at offset 0x10 where
the address of .idata$5 should be).
After reallocation I always found the start address of .idata.
In the function bfd_perform_relocation (in reloc.c) the variables
symbol->value and symbol->section->output_offset are always 0.
It seems to me, that one of these two values (value or output_offset)
should hold the offset of the subsection inside the section.
The problem I have is, that I didn't found the function which is
responsible for this (I spent already some hours with debugging and
analyzing the code).
Please, could anybody tell me, if I am on the right way and if so, where
I can find the value of the offset of a subsection inside a section ?
And additionally, in which function (module) the calcualtion of this
offset will be performed ?
My problem is, that I don't understood in detail how the linking works.
I was just debugging and looking into the code.
I thank you for any help,
Richard
----------------------------------
Richard Wisenöcker
Vienna, Austria