Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2008-02

make RELEASE=1 ?

3 messages · 2 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Denis Golovan

Hi, all!

Some time I was building LCL using standart command: make clean all # for current target cpu,os
and
make clean all OS_TARGET=wince CPU_TARGET=arm PP=ppcarm

... and everything seem working well.

The problem is that I got some special bugs - some components such TMemDataset are unable to work with ARM processors without proper data alignment. Such bugs are hard to find without debug info (-gl switch) and later stack tracing. Another problem is my executable with debug info about 18Mb size and due its size it just refuses to run on Windows CE :(. So I decided to switch -gl only on some potentially problematic units and remove debug info from others. (Strip removes entire debug info)

I tried to build LCL using:

make clean all RELEASE=1 OS_TARGET=wince CPU_TARGET=arm PP=pparm

but it just cannot find some base units (i.e. contnrs - fcl-base package). Its because makefile generated by fpcmake contains -n switch (do not read standart fcp config). Removing -n from makefile (not makefile.fpc of course) does the job and LCL successfully compiles with RELEASE=1.

Maybe someone give a hint how to use RELEASE=1 conditional without removing -n manually from makefiles? Or how to debug on wince :) ?

P.S. Gentoo Linux, Lazarus SVN, FPC SVN

Best regards, Denis Golovan aka MageSlayer
Peter Vreman
Show quoted text 31 lines
Hi, all! Some time I was building LCL using standart command: make clean all # for current target cpu,os and make clean all OS_TARGET=wince CPU_TARGET=arm PP=ppcarm ... and everything seem working well. The problem is that I got some special bugs - some components such TMemDataset are unable to work with ARM processors without proper data alignment. Such bugs are hard to find without debug info (-gl switch) and later stack tracing. Another problem is my executable with debug info about 18Mb size and due its size it just refuses to run on Windows CE :(. So I decided to switch -gl only on some potentially problematic units and remove debug info from others. (Strip removes entire debug info) I tried to build LCL using: make clean all RELEASE=1 OS_TARGET=wince CPU_TARGET=arm PP=pparm but it just cannot find some base units (i.e. contnrs - fcl-base package). Its because makefile generated by fpcmake contains -n switch (do not read standart fcp config). Removing -n from makefile (not makefile.fpc of course) does the job and LCL successfully compiles with RELEASE=1. Maybe someone give a hint how to use RELEASE=1 conditional without removing -n manually from makefiles? Or how to debug on wince :) ? P.S. Gentoo Linux, Lazarus SVN, FPC SVN

It is known issue and a shortcomming of the lazarus Makefile.fpc's. They rely on the paths configured in fpc.cfg. Instead of RELEASE=1 you can use 'OPT=-g-' to disable debug info.

Peter

Denis Golovan
to Peter Vreman
Peter Vreman wrote 10 lines
> Maybe someone give a hint how to use RELEASE=1 conditional without removing -n manually from > makefiles? > Or how to debug on wince :) ? > > P.S. Gentoo Linux, Lazarus SVN, FPC SVN It is known issue and a shortcomming of the lazarus Makefile.fpc's. They rely on the paths configured in fpc.cfg. Instead of RELEASE=1 you can use 'OPT=-g-' to disable debug info. Peter

Thanks, Peter. Seems this is the only way :(

Best regards, Denis Golovan aka MageSlayer