View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0021571 | Lazarus | IDE | public | 2012-03-26 19:08 | 2012-03-27 10:08 |
Reporter | Gennadiy | Assigned To | Mattias Gaertner | ||
Priority | normal | Severity | major | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Platform | win64 | OS | Windows | ||
Product Version | 0.9.31 (SVN) | ||||
Summary | 0021571: Lazbuild syntax error in compileroptions.pp | ||||
Description | C:/Dev/FPC/2.7.1/bin/x86_64-win64/ppcx64.exe -gl -dlclnogui -Fu../lcl/units/x86_64-win64 -Fu../lcl/units/x86_64-win64/nogui -Fu../components/codetools/units/x86_64-win64 -Fu../components/lazutils/lib/x86_64-win64 -Fu../components/synedit/units/x86_64-win64/nogui -Fu../components/lazcontrols/lib/x86_64-win64/nogui -Fu../components/custom -Fu../ideintf/units/x86_64-win64/nogui -Fu../designer -Fu../debugger -Fu../debugger/frames -Fu../converter -Fu../packager -Fu../packager/frames -Fu../packager/units/x86_64-win64 -Fu../units/x86_64-win64/nogui -Fuframes -Fu. -Fiinclude -Fiinclude/win64 -Fi../images -FE.. -FU../units/x86_64-win64/nogui -dx86_64 lazbuild.lpr compileroptions.pp(2233,14) Error: Illegal expression compileroptions.pp(2233,15) Error: Illegal expression compileroptions.pp(2233,15) Fatal: Syntax error, ";" expected but "const char" found Fatal: Compilation aborted make[2]: *** [lazbuild.exe] Error 1 make[2]: Leaving directory `C:/Dev/Lazarus/Sources/trunk/ide' make[1]: *** [lazbuilder] Error 2 make[1]: Leaving directory `C:/Dev/Lazarus/Sources/trunk/ide' make: *** [lazbuild] Error 2 | ||||
Steps To Reproduce | make distclean make all | ||||
Additional Information | It complains to the changes introduced by svn revs 36314 - 36317 | ||||
Tags | No tags attached. | ||||
Fixed in Revision | 36376 | ||||
LazTarget | - | ||||
Widgetset | Win32/Win64 | ||||
Attached Files |
|
related to | 0021578 | closed | Mattias Gaertner | Patches | [Patch] Microsoft SQL Server and Sybase ASE connectors |
related to | 0021588 | resolved | Juha Manninen | Lazarus | Error when trying to install packages |
|
Please test with latest trunk version. It compiles well here. |
|
Just tried with rev 36347, same error. May it be caused by the using latest 2.7.1 trunk fpc ? |
|
The message : compileroptions.pp(2233,15) Fatal: Syntax error, ";" expected but "const char" found does not make sense. These are the lines 2230 - 2235 of compileroptions.pp: if CurCustomOptions<>'' then begin if Result<>'' then Result+=' '; Result+=CurCustomOptions; end; There is no "const char" anywhere near those lines. You must have local changes in that file. Please get a clean copy of the SVN. |
|
lazbuild compiles with fpc 2.7.1 from trunk 20636. |
|
It actually makes sense and here's why. I did not make any changes to any of fpc/lazarus trunks. I also tested this on my friend's machine with same results. If that helps, Lazarus svn rev 36126 compiles well on both our machines. Here now, I took the latest fpc trunk (svn rev 20636) and ran it on the latest lazarus trunk (svn rev 36366) and got the same error again! When I commented out these lines in compileroptions.pp it complained about lines 457 in lazbuild.lpr . The specifics of both snippets of code are their use of "C style operators" namely "+=" -- for some reason fpc does not expect them there. When I specified -Sc to enable them, everything compiled well. I don't know if there's any compiler directive concerning C style operators or it is that makefile may be amended. Are they assumed to be enabled by default? |
|
As a temporary workaround, I changed ide\Makefile.fpc as follows: Index: Makefile.fpc =================================================================== --- Makefile.fpc (revision 36366) +++ Makefile.fpc (working copy) @@ -14,7 +14,7 @@ programs=lazarus startlazarus lazbuild [compiler] -options=-gl -dlcl$(LCL_PLATFORM) +options=-Sc -gl -dlcl$(LCL_PLATFORM) unittargetdir=../units/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) unitdir=../lcl/units/$(CPU_TARGET)-$(OS_TARGET) \ ../lcl/units/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \ This made everything to compile well. |
|
> When I commented out these lines in compileroptions.pp ... Which lines? Did you have "const char" there? It means your sources are corrupted somehow. lazbuild.lpr has C style operators but it compiles fine for everybody else. Only you and your friend are having this problem. Please try getting a clean copy of everything. |
|
> Which lines? These lines: if CurCustomOptions<>'' then begin // if Result<>'' then // Result+=' '; // Result+=CurCustomOptions; end; This way it works. "Const char" is referring to the "+" symbol after "Result", not the explicit literal declaration of "const char". And I DID GET CLEAN copy of everything, I don't know how it can ever be cleaner. I'm no newbie to the subversion. My question is -- where in the Lazbuild compilation process it is specified that FPC enables C style operators? I want to check what goes wrong on our machines in this place. |
|
Ok, it is a FPC config issue then, indeed. I don't know the details of it unfortunately. |
|
For now, I solved this issue by locally stuffing "-Sc" in my fpc.cfg Nonetheless, this bug is legitimate in the sense that introducing C-style operators in Lazarus since r36126 does rely on implicit defaults, which may not be the case. I humbly request modifying makefile (as the patch above suggests) to make building process concrete. upd. Thank you, mattias :) |
Date Modified | Username | Field | Change |
---|---|---|---|
2012-03-26 19:08 | Gennadiy | New Issue | |
2012-03-26 19:08 | Gennadiy | Widgetset | => Win32/Win64 |
2012-03-26 19:58 | Juha Manninen | LazTarget | => - |
2012-03-26 19:58 | Juha Manninen | Note Added: 0058074 | |
2012-03-26 19:58 | Juha Manninen | Status | new => feedback |
2012-03-26 20:03 | Gennadiy | Note Added: 0058075 | |
2012-03-26 20:56 | Juha Manninen | Note Added: 0058077 | |
2012-03-26 21:53 | Mattias Gaertner | Note Added: 0058083 | |
2012-03-27 07:15 | Gennadiy | Note Added: 0058093 | |
2012-03-27 07:33 | Gennadiy | Note Added: 0058094 | |
2012-03-27 07:44 | Juha Manninen | Note Added: 0058095 | |
2012-03-27 07:50 | Gennadiy | Note Added: 0058096 | |
2012-03-27 08:02 | Gennadiy | Note Edited: 0058096 | |
2012-03-27 08:02 | Gennadiy | Note Edited: 0058096 | |
2012-03-27 08:05 | Gennadiy | Note Edited: 0058096 | |
2012-03-27 09:27 | Juha Manninen | Note Added: 0058101 | |
2012-03-27 09:48 | Gennadiy | Note Added: 0058102 | |
2012-03-27 10:06 | Gennadiy | Note Edited: 0058102 | |
2012-03-27 10:08 | Mattias Gaertner | Fixed in Revision | => 36376 |
2012-03-27 10:08 | Mattias Gaertner | Assigned To | => Mattias Gaertner |
2012-03-27 10:08 | Mattias Gaertner | Status | feedback => resolved |
2012-03-27 10:08 | Mattias Gaertner | Resolution | open => fixed |
2012-03-28 17:30 | Juha Manninen | Relationship added | related to 0021578 |
2012-04-05 23:07 | Juha Manninen | Relationship added | related to 0021588 |