[Lazarus] Building and running Lazarus natively on various architectures

Mark Morgan Lloyd markMLl.lazarus at telemetry.co.uk
Wed Oct 13 09:35:44 CEST 2010


Mark Morgan Lloyd wrote:
> Henry Vermaak wrote:
>> On 08/10/10 12:24, Mark Morgan Lloyd wrote:
>>> Henry Vermaak wrote:
>>>> On 08/10/10 10:51, Mark Morgan Lloyd wrote:
>>>>> This thread is a summary of intermittent experience over the last year
>>>>> or so with Lazarus running natively on various platforms. I hope to
>>>>> cover ARM, PPC, SPARC and (for completeness) x86 on Linux (Debian v5
>>>>> "Lenny"), possibly also some older Windows OSes on x86 (NT, W2K); I'm
>>>>> afraid that I don't have an x64 system which I think would cover all
>>>>> currently-supported CPUs.
>>>>>
>>>>> Mattias, noting your
>>>>>
>>>>>> 0.9.29 with fpc 2.4.0 or higher.
>>>>>
>>>>> I'll work with sources from svn. This might mean that I'm a day or so
>>>>> behind in some cases since some of the older machines will take more
>>>>> than a day doing a full build.

>>>> Why don't you build your compiler with -O- -gl?
>>>
>>> I thought I had but I'll check... the version of the compiler I'm
>>> running was built with make NOGDB=1 OPT=-gl -vt -dFPC_ARMEL -CfSOFT all
>>> which I've generally found to give usable backtraces etc. Is adding -O-
>>> a useful precaution?
>>
>> Well, I'm not sure which optimisations are debugger safe, so I usually 
>> disable them all.  I pass OPT="-dFPC_ARMEL -O- -gl" and that seems to 
>> work for the traces.  I don't know if it'll help in your case, though.
> 
> OK. I'll apply Jonas's fix and recompile like that. I may be some time.

Using the modified 2.4.0 Lazarus builds (make all) on armel without 
problems. However I still get a failure during exit that I don't believe 
I've seen on other architectures:

TMainIDE.ParseCmdLineOptions:
   PrimaryConfigPath="/home/markMLl/.lazarus"
   SecondaryConfigPath="/etc/lazarus"
NOTE: miscellaneous options file not found - using defaults
TMainIDE.DoLoadLFM Creating designer for hidden component of 
/home/markMLl/unit1.pas
TMainIDE.DoOpenProjectFile Form1:TForm1 TDesigner
TApplication.HandleException Access violation
   Stack trace:
   $005D3AF0  SEARCH,  line 4407 of project.pp
   $005D36F8  TPROJECT__UPDATEUNITCOMPONENTDEPENDENCIES,  line 4485 of 
project.pp
   $00082BA8  TMAINIDE__UNITCOMPONENTISUSED,  line 7074 of main.pp
   $00082568  TMAINIDE__CLOSEUNITCOMPONENT,  line 6948 of main.pp
   $00087E78  TMAINIDE__DOCLOSEEDITORFILE,  line 8323 of main.pp
   $0008E57C  TMAINIDE__DOCLOSEPROJECT,  line 9831 of main.pp
   $000694D4  TMAINIDE__MAINIDEFORMCLOSEQUERY,  line 1720 of main.pp
   $00092134  TMAINIDE__QUITIDE,  line 10666 of main.pp
   $00072F0C  TMAINIDE__MNUQUITCLICKED,  line 3428 of main.pp
   $005AB748  TIDEMENUITEM__MENUITEMCLICK,  line 551 of menuintf.pas
   $005AF8E0  TIDEMENUCOMMAND__MENUITEMCLICK,  line 1616 of menuintf.pas
   $001FA534  TMENUITEM__CLICK,  line 75 of ./include/menuitem.inc
   $001FAD6C  TMENUITEM__DOCLICKED,  line 269 of ./include/menuitem.inc
   $00034898  TOBJECT__DISPATCH,  line 465 of 
/usr/local/src/fpc/fpcbuild-2.4.0/fpcsrc/rtl/inc/objpas.inc
   $002D915C  DELIVERMESSAGE,  line 112 of lclmessageglue.pas
   $002A8944  DELIVERMESSAGE,  line 3516 of gtk2proc.inc
   $0033FDD0  GTK2MENUITEMACTIVATE,  line 138 of gtk2wsmenus.pp
WARNING: TLCLComponent.Destroy with LCLRefCount>0. Hint: Maybe the 
component is processing an event?
[TMainIDE.Destroy] A
[TMainIDE.Destroy] B  -> inherited Destroy... TMainIDE
[TMainIDE.Destroy] END

I've not tried building a significant project yet. As noted before this 
is on a unit with extremely limited RAM, it's using swap heavily so 
there's scope for race conditions etc.

I find that I only get symbols on the backtrace (sent by Lazarus to 
stdout) if run in the directory with the lazarus binary 
(/usr/local/share/lazarus-trunk), I've not tried using gdb.

Any comments would be appreciated, otherwise I'll try a "make bigide" at 
the end of the day.

-- 
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]




More information about the Lazarus mailing list