[Lazarus] Broken cross compile build.

Brad Campbell brad at wasp.net.au
Mon May 17 15:55:07 CEST 2010


Mattias Gärtner wrote:
> 
> The paths are correct.
> Just to make sure: The file units/powerpc-darwin/keymapshortcutdlg.lfm 
> does not exist, right?

Right

> The lfm file is copied by the compiler when it compiles the 
> keymapshortcutdlg.ppu.
> Maybe the ppu file was already there, but the lfm was missing?
> Can you check what happens when you delete keymapshortcutdlg.ppu and 
> then compile? Does it copy the lfm to 
> units/powerpc-darwin/keymapshortcutdlg.lfm?
> If not you found a bug in the compiler.

It does copy the lfm to units/powerpc-darwin/keymapshortcutdlg.lfm

It then just chokes on the next one.

Debug: parsing parameter '/home/brad/devel/fpc/lazarus/ideintf/units/powerpc-darwin/graphicpropedit.lfm'
Debug: parsing parameter 
'/home/brad/devel/fpc/lazarus/ideintf/units/powerpc-darwin/lazstringgridedit.lfm'
Debug: parsing parameter 
'/home/brad/devel/fpc/lazarus/ideintf/units/powerpc-darwin/checklistboxeditordlg.lfm'
Debug: parsing parameter 
'/home/brad/devel/fpc/lazarus/ideintf/units/powerpc-darwin/checkgroupeditordlg.lfm'
Debug: parsing parameter 
'/home/brad/devel/fpc/lazarus/ideintf/units/powerpc-darwin/listviewpropedit.lfm'
Debug: parsing parameter '/home/brad/devel/fpc/lazarus/ideintf/units/powerpc-darwin/imagelisteditor.lfm'
Debug: parsing parameter '/home/brad/devel/fpc/lazarus/ideintf/units/powerpc-darwin/objectinspector.lfm'
Debug: parsing parameter 'keymapshortcutdlg.lfm'
Debug: parsing parameter '../units/powerpc-darwin/editmsgscannersdlg.lfm'
Debug: parsing parameter '/home/brad/devel/fpc/lazarus/lcl/units/powerpc-darwin/ldockctrledit.lfm'
Debug: parsing parameter '../units/powerpc-darwin/infobuild.lfm'
Debug: parsing parameter '../units/powerpc-darwin/idecontexthelpedit.lfm'
Debug: parsing parameter '../units/powerpc-darwin/exttooleditdlg.lfm'

<snip>

Debug: Reading resource information...
Debug: Resource information read
Debug: Trying to open file 
/home/brad/devel/fpc/lazarus/ideintf/units/powerpc-darwin/listviewpropedit.lfm...
Debug: Chosen reader: DFM resource reader
Debug: Reading resource information...
Debug: Resource information read
Debug: Trying to open file 
/home/brad/devel/fpc/lazarus/ideintf/units/powerpc-darwin/imagelisteditor.lfm...
Debug: Chosen reader: DFM resource reader
Debug: Reading resource information...
Debug: Resource information read
Debug: Trying to open file 
/home/brad/devel/fpc/lazarus/ideintf/units/powerpc-darwin/objectinspector.lfm...
Debug: Chosen reader: DFM resource reader
Debug: Reading resource information...
Debug: Resource information read
Debug: Trying to open file keymapshortcutdlg.lfm...
Debug: Chosen reaError: Can't open file '../units/powerpc-darwin/editmsgscannersdlg.lfm'
[30.343] Error while compiling resources
[30.343] Searching file ../units/powerpc-darwin/../units/powerpc-darwin/lazarus.o... not found
[30.343] Searching file ../units/powerpc-darwin/../UNITS/POWERPC-DARWIN/LAZARUS.O... not found
[30.343] Searching file ../units/powerpc-darwin/lazarus.o... found
[30.343] Searching file ../units/powerpc-darwin/system.o... not found
[30.344] Searching file ../units/powerpc-darwin/SYSTEM.O... not found


Hrm.. it seems make distclean is leaving .ppu's in the powerpc-darwin directory. I can work around 
this bug by using :

find . -name *.ppu -exec rm {} +

..prior to the build.

Unfortunately when I execute :

make LCL_PLATFORM=gtk2 OPT="-gl -CX" all idepkg

I get this :

make[2]: Entering directory `/home/brad/devel/fpc/lazarus/ide'
/opt/cross/bin/ppc386 -gl -dlclgtk2 -Fu../lcl/units/i386-linux -Fu../lcl/units/i386-linux/gtk2 
-Fu../components/codetools/units/i386-linux -Fu../components/synedit/units/i386-linux 
-Fu../components/custom -Fu../components/mpaslex -Fu../ideintf/units/i386-linux -Fu../designer 
-Fu../debugger -Fu../debugger/frames -Fu../converter -Fu../packager -Fu../packager/frames 
-Fu../packager/units/i386-linux -Fu../units/i386-linux -Fuframes -Fu. -Fiinclude -Fiinclude/linux 
-Fi../images -FE.. -FU../units/i386-linux -Fl/usr/lib/gcc/i486-linux-gnu/4.2.4 -Flinclude 
-Fl/etc/ld.so.conf.d/*.conf -gl -CX @/home/brad/.lazarus/idemake.cfg -di386 lazarus.pp
Free Pascal Compiler version 2.4.1 [2010/02/13] for i386
Copyright (c) 1993-2009 by Florian Klaempfl
Target OS: Linux for i386
Compiling lazarus.pp
Compiling /home/brad/devel/fpc/lazarus/TreeView/tv.pas
Compiling /home/brad/devel/fpc/lazarus/TreeView/directorytreeview.pas
directorytreeview.pas(408,4) Note: Local variable "I" not used
directorytreeview.pas(49,5) Note: Private field "TDirectoryTreeview.OldNode" is never used
Fatal: Can't find unit codetools used by Lazarus
Fatal: Compilation aborted
make[2]: *** [lazarus] Error 1
make[2]: Leaving directory `/home/brad/devel/fpc/lazarus/ide'
make[1]: *** [idepkg] Error 2
make[1]: Leaving directory `/home/brad/devel/fpc/lazarus/ide'

Last time this happened I worked around it by deleting ~/.lazarus and reinstalling my packages from 
scratch, but that's so ugly I don't even consider it a workaround.

I did a -va on this one, but after over 2000 lines of it searching every path for codetools.pp 
except the one it's actually in I gave up trying to trim it and post it.

The annoying thing is up until very recently (certainly well after I migrated to fpc 2.4.1) this all 
used to work fine.

Regards,
Brad
-- 
Dolphins are so intelligent that within a few weeks they can
train Americans to stand at the edge of the pool and throw them
fish.





More information about the Lazarus mailing list