[lazarus] cant find unit interfacebase

Vincent Snijders vslist at zonnet.nl
Fri Dec 19 06:31:33 EST 2003


On Fri, 19 Dec 2003 12:32:26 +0100
LeVA <leva at az.isten.hu> wrote:

> Peter Vreman írta:
> >>find the INTERFACEBASE unit, and when trying to compile to win32, it
> >>says that:
> >>TOutputFilter:
> >>"/home/leva/FreePascal/lib/fpc/1.9.1/units/win32/rtl/wprt0.o: file
> >not>recognized: File format not recognized"
> >>
> >>Is this beacause of the 1.9.1 fpc? With 1.0.10 it worked fine, but I
> >>didn't try if it works with it right now, because I need the
> >>-dUseFPImage option, and it doesn't work with older fpcs.
> >>I'm getting the win32 units daily from here:
> >>ftp://gd.tuwien.ac.at/languages/pascal/fpc/snapshot/v11/win32-i386/
> >>
> >>These are precompiled. I got a bad feeling about these units are not
> >for>the 1.9.1 version of fpc. Am I right?
> > 
> > 
> > You need a cross compiled as and ld with target that supports win32.
> > You are now trying to use win32(=pecoff) .o files with the linux
> > linker that only supports ELF .o files.
> > 
> > Note: The compile itself can read .ppu files from multiple
> > platforms, but the assembler and linker not. The assembler and
> > linker are external applications from GNU binutils.
> 
> I have those utils, because previously I could make win32 binaries
> with lazarus and fpc1.0.10. I have these binaries:
> 
> i686-pc-mingw32-addr2line  i686-pc-mingw32-dlltool 
> i686-pc-mingw32-objcopy  i686-pc-mingw32-size
> i686-pc-mingw32-ar         i686-pc-mingw32-dllwrap 
> i686-pc-mingw32-objdump  i686-pc-mingw32-strings
> i686-pc-mingw32-as         i686-pc-mingw32-ld 
> i686-pc-mingw32-ranlib   i686-pc-mingw32-strip
> i686-pc-mingw32-c++filt    i686-pc-mingw32-nm 
> i686-pc-mingw32-readelf  i686-pc-mingw32-windres
> 
> and all of them are symlinked to my $PATH. The ld is linked as ldw,
> and the as is linked as asw. Few days ago, with fpc1.0.10, and cvs
> lazarus, I could build to all platforms with those tools.
> Now I've upgraded to fpc1.9.1 (because I want to use the fpimage 
> feature), and now I have this problem: when I compile lazarus/lcl with
> 
> OS_TARGET=win32, it can not compile linux nor win32.
fpc 1.9.1. doesn't call asw and ldw, but as and ld, unless ypu tell
differently.

With fpc 1.9.1 I use the XPi686-pc-mingw32- option. 

make OPT="-XPi686-pc-mingw32-"

make sure these binaries are in your path. If not do
make OPT="-XPi686-pc-mingw32- -FD/path/to/the/binutils"


> 
> I'm not quite understand what you're saying unfortunately :) I'm not 
> that guru in this. Do I have to use the old 1.0.10fpc if I want to
> make win32 binaries, or I can use 1.9.1 too? And if I can use the
> 1.9.1, do I have to compile my own win32 units, or I can use these:
> ftp://gd.tuwien.ac.at/languages/pascal/fpc/snapshot/v11/win32-i386/
> 
> Are these for fpc1.9.1? Or it doesn't matter? I can not compile my own
> 
> win32 units because of the following compilation errror:
> 
> (~/FreePascal/src/fpc)-$ make clean
> (~/FreePascal/src/fpc)-$ make OS_TARGET=win32 all
> ...
> ....
> .....
> make[4]: Entering directory `/home/leva/FreePascal/src/fpc/rtl/win32'
> as -o wprt0.o wprt0.as
wrong as called. see above.
> wprt0.as: Assembler messages:
> wprt0.as:29: Error: cannot represent relocation type BFD_RELOC_RVA
> wprt0.as:31: Error: cannot represent relocation type BFD_RELOC_RVA
> wprt0.as:32: Error: cannot represent relocation type BFD_RELOC_RVA
> wprt0.as:36: Error: cannot represent relocation type BFD_RELOC_RVA
> wprt0.as:45: Error: cannot represent relocation type BFD_RELOC_RVA
> make[4]: *** [wprt0.o] Error 1
> make[4]: Leaving directory `/home/leva/FreePascal/src/fpc/rtl/win32'
> make[3]: *** [rtl] Error 2
> make[3]: Leaving directory `/home/leva/FreePascal/src/fpc/compiler'
> make[2]: *** [cycle] Error 2
> make[2]: Leaving directory `/home/leva/FreePascal/src/fpc/compiler'
> make[1]: *** [compiler_cycle] Error 2
> make[1]: Leaving directory `/home/leva/FreePascal/src/fpc'
> make: *** [build-stamp.win32] Error 2
> 
> What does this mean? I think that would be better, if I could use my
> own compiled win32 units, instead of the precompiled ones. But how can
> I compile them?
Also be aware you only can hae one set of lcl units present at the time,
because compiling for win32 overwrites the linux lcl units.

HTH,
Vincent .






More information about the Lazarus mailing list