View Issue Details

IDProjectCategoryView StatusLast Update
0037010LazarusOtherpublic2020-05-05 20:46
ReporterBart Broersma Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status confirmedResolutionopen 
Platformi386OSWindows 
Product Version2.1 (SVN) 
Summary0037010: The Lazarus buildsystem erroneously adds "-Fuc:/pp/units/i386-win32/rtl" parameter to calls to the compiler
DescriptionWhen you have (trunk) compiler installed in C:\pp then -Fuc:/pp/units/i386-win32/rtl is added as a paramter to calls to the compiler, making the compiler look for the wrong units.
Steps To ReproduceThis is my setup in which it happens (reproduced on a new system that did not have Lazarus or fpc installed ever).

Did a fresh svn checkout of lazarus trunk in c:\devel\lazarus
Installed fpc3.2.0RC1 in c:\devel\fpc\3.2.0
So fpc 3.2.0RC1 is now in %PATH%

c:\devel\lazarus> make bigide
Build Lazarus as expected.
There is NO -Fuc:/pp/units/i386-win32/rtl in the calls to fpc

Did fresh svn checkout of fpc trunk in c:\devel\fpc
c:\devel\fpc\trunk>make all
Builds OK
c:\devel\fpc\trunk>make install
Installs fpc to C:\pp

So my tree looks something like:
C:\
  devel\
    lazarus\
    fpc\
      3.2.0\
       bin\
       units\
pp\
  bin\
    i386-win32\
  units\
    i386\win32


Now try to build Lazarus once again:

C:\devel\lazarus>make bigide OPT="-g -gl"
make -C packager/registration
make[1]: Entering directory `C:/devel/lazarus/packager/registration'
c:\devel\fpc\3.2.0\bin\i386-win32\fpc.exe -MObjFpc -Scghi -O1 -g -gl -i -vewnhibq -Fu.  -Fuc:/pp/units/i386-win32/rtl -FE. -FU../units/i386-win32 -g -gl -di386 fcllaz.pas

Notice that there is no reference to "c:/pp/units/i386-win32/rtl" in either the fpc.cfg of the 3.2.0 compiler, nor in C:\Users\Bart\AppData\Local\lazarus\idemake.cfg
Also the fpc trunk compiler is not in the system's %PATH%
There are also no environment variables set that have anything to do with fpc, lazarus or the build system.

If I rename C:\pp to C:\_pp then the "Fuc:/pp/units/i386-win32/rtl" will (again) not be added.
Additional InformationInitially this made fpc3.2.0RC1 error out with "Fatal: (10016) Invalid PPU-File entry: 242"
This is because the major version of the PPU file was the same for fpc trunk and 3.2.0RC1.
Sven has kindly increased the major PPU version of fpc trunk, so at least I can build lazarus again, but still the compiler looks for each rtl unit in the wrong directory and has to reject that one.
TagsNo tags attached.
Fixed in Revision
LazTarget-
Widgetset
Attached Files

Activities

Bart Broersma

2020-05-03 12:04

developer   ~0122614

See also https://forum.lazarus.freepascal.org/index.php/topic,49606.0.html

Bart Broersma

2020-05-04 14:16

developer   ~0122621

Confirmed by user TRon on the forum.

Alfred

2020-05-05 20:46

reporter   ~0122638

I have encountered this before. AFAIK, this is caused by the Lazarus makesfiles.

The Makefiles try to get a result for the FPCDIR. But setting this directory is not enough.
Many tests of the validity of FPCDIR follow. These tests will fail in nearly all cases.
Resulting in the validity (or use) of the final line:
override FPCDIR=c:/pp
This definition is used by many other settings in the Makefiles.

Issue History

Date Modified Username Field Change
2020-05-03 11:44 Bart Broersma New Issue
2020-05-03 11:53 Bart Broersma Steps to Reproduce Updated View Revisions
2020-05-03 11:53 Bart Broersma LazTarget => -
2020-05-03 11:56 Bart Broersma Steps to Reproduce Updated View Revisions
2020-05-03 11:58 Bart Broersma Steps to Reproduce Updated View Revisions
2020-05-03 11:59 Bart Broersma Steps to Reproduce Updated View Revisions
2020-05-03 12:00 Bart Broersma Steps to Reproduce Updated View Revisions
2020-05-03 12:01 Bart Broersma Steps to Reproduce Updated View Revisions
2020-05-03 12:03 Bart Broersma Steps to Reproduce Updated View Revisions
2020-05-03 12:04 Bart Broersma Note Added: 0122614
2020-05-03 12:06 Bart Broersma Summary The Lazarus buildsystem erroneously adds "-Fuc:/pp/units/i386-win32/rtl" parametr to calls to the compiler => The Lazarus buildsystem erroneously adds "-Fuc:/pp/units/i386-win32/rtl" parameter to calls to the compiler
2020-05-03 12:07 Bart Broersma Description Updated View Revisions
2020-05-04 14:16 Bart Broersma Status new => confirmed
2020-05-04 14:16 Bart Broersma Note Added: 0122621
2020-05-05 20:46 Alfred Note Added: 0122638