Hi,
I have a strange problem with rebuilding Lazarus.
First things first.
I'm on Windows.
I'm using Lazarus trunk (but the problem is the same with fixes branch)
My default compiler is currently fpc 3.2.0RC1 for i386-win32.
This compiler is also in my systems %PATH%
I also have fpc trunk installed (from source) in C:\pp (the default installation path), also 32-bit.
Both fpc's (trunk and 3.2.0RC1) are properly configured.
Now, whenever I try to (re)build Lazarus, the make process appends -Fuc:/pp/units/i386-win32/rtl to the fpc command.
This makes the compiler search for ppu's in that place.
And that place exists, and there is a system.ppu there (of course)
Fpc 3.2.0RC1 does not like that: it errors out with a "Fatal: (10016) Invalid PPU-File entry: 242"
There are several things that I don't understand here:
1.
Why does the build mechanism add the -Fuc:/pp/units/i386-win32/rtl parameter to the call to fpc?
C:/devel/fpc/3.2.0/bin/i386-Win32/fpc.exe -gl -vbqewnhi -Sci -dlclwin32 -Fu../designer -Fu../debugger -Fu../debugger/frames -Fu../converter -Fu../packager -Fu../packager/frames -Fu../components/custom -Fuinclude/win -Fuframes -Fu. -Fuc:/pp/units/i386-win32/rtl -Fiinclude -Fiinclude/win32 -Fi../images -FE.. -FU../units/i386-win32/win32 -WG @C:\Users\Bart\AppData\Local\lazarus\idemake.cfg -di386 lazarus.pp
This -Fu path is nowhere in fpc.cfg of the compiler, it is not in the idemake.cfg file.
This happens when you build from within the IDE, but also if you do a simple make bigide from the commandline.
2.
When I build with fpc 3.0.4 the same -Fuc:/pp/units/i386-win32/rtl is appended to the fpc commandline by the build process, but fpc 3.0.4 does not mind: it determines this is not the correct PPU and tries the one specified in it's fpc.cfg file.
3.
If I use -Fu and point to fpc's 3.0.4 units, the fpc 3.2.0RC1 happily compiles a test program. Just like I described in point 2, the compiler determines this is not the correct PPU and tries the one specified in it's fpc.cfg file. It does NOT give a fatal error in this case, it only does that if you point it to the units directory of fpc trunk.
4.
Now for the weird part:
If I remove the c:\PP folder (I just renamed it), then the build mechanisme does
NOT add the -Fuc:/pp/units/i386-win32/rtl parameter to fpc's commandline.
Building succeeds.
This sucks.
What have I tried.
- Removed lazarus config folder: doesn't solve the problem
- Removed fpc's config folder (config for fppkg system): doesn't solve the problem
- Tried to build fpc fixes branch (a separate folder, and the ide uses a different config folder): same problem
- Asked on lazarus-devel ML: no reply
- Asked on fpc-devel ML: no solution
This is driving me crazy.
As it is now, my fpc trunk installation cannot co-exist with the combination Lazarus/Fpc 3.2.0RC1
Does anybody here have any idea of what the hell is going on on my system?
Bart