Sign in Join

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

Mailing lists / fpc-pascal / 2010-11

Building FPC trunk on XP win64

8 messages · 5 people · –

Reply by email Subscribe to this list Your subscription

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

Birger Jansen

Hi all,

I'm trying to build FPC trunk version on a XP win64 machine, but the make process just keeps failing. What I did:
- download FPC Win64 snapshot (Lazarus-0.9.29-28437-fpc-2.4.3-20101124-win64.exe)
- installed to E:\FPC\ (unfortunately I cannot use another folder on this machine)
- download FPC sources from svn to E:\FPC\lazarus\fpc\trunk
- added E:\FPC\lazarus\fpc\2.4.3\bin\x86_64-win64 to the path
- cd to E:\FPC\lazarus\fpc\trunk
- run make clean all

The make process goes on for a while, but stops befor it finishes. During the make process I get a lot of these warnings: "WARNING: bash couldn't find /tmp, please create one!". However, the TMP environment variable is set so I don't know why it complains about that. I have followed the same steps before on a win32 machine without problems.

Below are the last lines from the make output.

Does anyone have a suggestion about what to try next to get FPC on my win64 machine?

Kind regards,
Birger Jansen

E:/FPC/lazarus/fpc/2.4.3/bin/x86_64-win64/rm.exe -f *.o *.ppu *.rst *.s *.a *.so *.ppl
WARNING: bash couldn't find /tmp, please create one! E:/FPC/lazarus/fpc/2.4.3/bin/x86_64-win64/rm.exe -rf *.sl WARNING: bash couldn't find /tmp, please create one! E:/FPC/lazarus/fpc/2.4.3/bin/x86_64-win64/rm.exe -f fpcmade.* Package.fpc ppas.b at script.res link.res
WARNING: bash couldn't find /tmp, please create one! E:/FPC/lazarus/fpc/2.4.3/bin/x86_64-win64/rm.exe -f *_ppas.bat WARNING: bash couldn't find /tmp, please create one! make[6]: Leaving directory `E:/FPC/lazarus/fpc/trunk/compiler/utils' E:/FPC/lazarus/fpc/2.4.3/bin/x86_64-win64/rm.exe -rf x86_64/units E:/FPC/lazarus/fpc/2.4.3/bin/x86_64-win64/rm.exe -f x86_64/*.o x86_64/*.ppu x86_ 64/*.rst x86_64/*.s x86_64/*.a x86_64/*.so x86_64/*.ppl WARNING: bash couldn't find /tmp, please create one! E:/FPC/lazarus/fpc/2.4.3/bin/x86_64-win64/rm.exe -f x86_64/ppc386.exe x86_64/ppc axp.exe x86_64/ppc68k.exe x86_64/ppcx64.exe x86_64/ppcppc.exe x86_64/ppcppc.exe x86_64/ppcx64.exe
E:/FPC/lazarus/fpc/2.4.3/bin/x86_64-win64/rm.exe -f ppcx64.exe E:/FPC/lazarus/fpc/2.4.3/bin/x86_64-win64/gmkdir.exe -p x86_64/units/x86_64-win6 4
E:/FPC/lazarus/fpc/2.4.3/bin/x86_64-win64/ppcx64.exe -Ur -Xs -O2 -n -Fux86_64 -F usystems -FuE:/FPC/lazarus/fpc/trunk/rtl/units/x86_64-win64 -Fix86_64 -FE. -FUx8 6_64/units/x86_64-win64 -dRELEASE -dx86_64 -dGDB -dBROWSERLOG -Fux86 pp.pas aasmtai.pas(394,11) Warning: Constructor should be public optcse.pas(172,76) Warning: Conversion between ordinals and pointers is not port able
nadd.pas(904,11) Warning: unreachable code
symdef.pas(5240,10) Warning: User defined: : this is completely wrong on so many levels...
ncgcnv.pas(382,85) Warning: range check error while evaluating constants E:/FPC/lazarus/fpc/2.4.3/bin/x86_64-win64/mv.exe -f ./pp.exe ppcx64.exe make[5]: Leaving directory `E:/FPC/lazarus/fpc/trunk/compiler' make echotime
make[5]: Entering directory `E:/FPC/lazarus/fpc/trunk/compiler' process_begin: CreateProcess((null), echo Start now 09:16:48, ...) failed. make (e=2): The system cannot find the file specified. make[5]: *** [echotime] Error 2
make[5]: Leaving directory `E:/FPC/lazarus/fpc/trunk/compiler' make[4]: *** [next] Error 2
make[4]: Leaving directory `E:/FPC/lazarus/fpc/trunk/compiler' make[3]: *** [ppc1.exe] Error 2
make[3]: Leaving directory `E:/FPC/lazarus/fpc/trunk/compiler' make[2]: *** [cycle] Error 2
make[2]: Leaving directory `E:/FPC/lazarus/fpc/trunk/compiler' make[1]: *** [compiler_cycle] Error 2
make[1]: Leaving directory `E:/FPC/lazarus/fpc/trunk' make: *** [build-stamp.x86_64-win64] Error 2

Reply by email

Marco van de Voort
to Birger Jansen

In our previous episode, Birger Jansen said:

Show quoted text 5 lines
The make process goes on for a while, but stops befor it finishes. During the make process I get a lot of these warnings: "WARNING: bash couldn't find /tmp, please create one!". However, the TMP environment variable is set so I don't know why it complains about that. I have followed the same steps before on a win32 machine without problems.

Well, bash is probably the problem. FPC doesn't provide bash, so somehow unix utilities from some other set were used (cygwin,mingw) and they complain that they don't run in their own environment.

To test this, sanitize your PATH so that only Windows and FPC related dirs are in the PATH and try again.

Reply by email

Birger Jansen
to Marco van de Voort
Show quoted text 6 lines
Well, bash is probably the problem. FPC doesn't provide bash, so somehow unix utilities from some other set were used (cygwin,mingw) and they complain that they don't run in their own environment. To test this, sanitize your PATH so that only Windows and FPC related dirs are in the PATH and try again.

Thanks! I cleaned up the path (removed everything except the FPC path) and that took care of all the bash warnings. The make process seems to get further now, but it still stops with an error, below are the last lines from the output.

In the compiler folder I can see the files ppc1.exe, ppc2.exe, ppc3.exe and ppcx64.exe. Except for ppc1.exe they have the same size and modified time.

Any idea what causes a problem now?

Kind regards,
Birger Jansen

optcse.pas(172,76) Warning: Conversion between ordinals and pointers is not port able
nadd.pas(904,11) Warning: unreachable code
symdef.pas(5242,10) Warning: User defined: : this is completely wrong on so many levels...
/FPC/lazarus/fpc/2.4.3/bin/x86_64-win64/mv.exe -f ./pp.exe ppcx64.exe make[5]: Leaving directory `E:/FPC/lazarus/fpc/trunk/compiler' make echotime
make[5]: Entering directory `E:/FPC/lazarus/fpc/trunk/compiler' Start now 12:08:26
make[5]: Leaving directory `E:/FPC/lazarus/fpc/trunk/compiler' make[4]: Leaving directory `E:/FPC/lazarus/fpc/trunk/compiler' /FPC/lazarus/fpc/2.4.3/bin/x86_64-win64/rm.exe -f ppc2.exe /FPC/lazarus/fpc/2.4.3/bin/x86_64-win64/mv.exe -f ppcx64.exe ppc2.exe make 'FPC=E:/FPC/lazarus/fpc/trunk/compiler/ppc2.exe' 'OLDFPC=E:/FPC/lazarus/fpc /trunk/compiler/ppc1.exe' next
process_begin: CreateProcess((null), __missing_command_CMP -i218 E:/FPC/lazarus/ fpc/trunk/compiler/ppc1.exe E:/FPC/lazarus/fpc/trunk/compiler/ppc2.exe, ...) fai led.
make[4]: Entering directory `E:/FPC/lazarus/fpc/trunk/compiler' E:/FPC/lazarus/fpc/trunk/compiler/ppc1.exe and E:/FPC/lazarus/fpc/trunk/compiler /ppc2.exe are equal
/FPC/lazarus/fpc/2.4.3/bin/x86_64-win64/cp.exe -fp E:/FPC/lazarus/fpc/trunk/comp iler/ppc2.exe ppcx64.exe
make[4]: Leaving directory `E:/FPC/lazarus/fpc/trunk/compiler' /FPC/lazarus/fpc/2.4.3/bin/x86_64-win64/rm.exe -f ppc3.exe /FPC/lazarus/fpc/2.4.3/bin/x86_64-win64/mv.exe -f ppcx64.exe ppc3.exe make[3]: Leaving directory `E:/FPC/lazarus/fpc/trunk/compiler' make 'FPC=E:/FPC/lazarus/fpc/trunk/compiler/ppc3.exe' 'OLDFPC=E:/FPC/lazarus/fpc /trunk/compiler/ppc2.exe' next
process_begin: CreateProcess((null), __missing_command_CMP -i218 E:/FPC/lazarus/ fpc/trunk/compiler/ppc2.exe E:/FPC/lazarus/fpc/trunk/compiler/ppc3.exe, ...) fai led.
make[3]: Entering directory `E:/FPC/lazarus/fpc/trunk/compiler' E:/FPC/lazarus/fpc/trunk/compiler/ppc2.exe and E:/FPC/lazarus/fpc/trunk/compiler /ppc3.exe are equal
/FPC/lazarus/fpc/2.4.3/bin/x86_64-win64/cp.exe -fp E:/FPC/lazarus/fpc/trunk/comp iler/ppc3.exe ppcx64.exe
make[3]: Leaving directory `E:/FPC/lazarus/fpc/trunk/compiler' __missing_command_CMP -i218 ppc3.exe ppcx64.exe
process_begin: CreateProcess((null), __missing_command_CMP -i218 ppc3.exe ppcx64 .exe, ...) failed.
make (e=2): The system cannot find the file specified. make[2]: *** [cycle] Error 2
make[2]: Leaving directory `E:/FPC/lazarus/fpc/trunk/compiler' make[1]: *** [compiler_cycle] Error 2
make[1]: Leaving directory `E:/FPC/lazarus/fpc/trunk' make: *** [build-stamp.x86_64-win64] Error 2

Reply by email

Tomas Hajny
to Birger Jansen
Birger Jansen wrote 18 lines
> Well, bash is probably the problem. FPC doesn't provide bash, so somehow > unix utilities from some other set were used (cygwin,mingw) and they > complain that they don't run in their own environment. > > To test this, sanitize your PATH so that only Windows and FPC related > dirs > are in the PATH and try again. Thanks! I cleaned up the path (removed everything except the FPC path) and that took care of all the bash warnings. The make process seems to get further now, but it still stops with an error, below are the last lines from the output. In the compiler folder I can see the files ppc1.exe, ppc2.exe, ppc3.exe and ppcx64.exe. Except for ppc1.exe they have the same size and modified time. Any idea what causes a problem now?

.
.

Show quoted text 5 lines
make[3]: Leaving directory `E:/FPC/lazarus/fpc/trunk/compiler' __missing_command_CMP -i218 ppc3.exe ppcx64.exe process_begin: CreateProcess((null), __missing_command_CMP -i218 ppc3.exe ppcx64 .exe, ...) failed.

Yes - this means that you don't have GNU tool called "cmp" in the PATH.

Tomas

Reply by email

Birger Jansen
to Tomas Hajny
Show quoted text 9 lines
> make[3]: Leaving directory `E:/FPC/lazarus/fpc/trunk/compiler' > __missing_command_CMP -i218 ppc3.exe ppcx64.exe > process_begin: CreateProcess((null), __missing_command_CMP -i218 ppc3.exe > ppcx64 > .exe, ...) failed. Yes - this means that you don't have GNU tool called "cmp" in the PATH. Tomas

Ah... cmp is a tool... It is indeed included with the 32 bit Lazarus installation, but not with the 64 bit. I managed to build a 64 bit compiler by crosscompiling from my 32 bit installation, but will try again now from 64 bit.

I'll see if I can find the missing cmp.exe in 64 bit version or try with the 32 bit version.

Thanks!

Kind regards,
Birger

Reply by email

Pierre Free Pascal
to Birger Jansen
Show quoted text 26 lines
-----Message d'origine----- De : [mailto:fpc-pascal- De la part de Birger Jansen Envoyé : vendredi 26 novembre 2010 14:13 À : Objet : RE: [fpc-pascal] Building FPC trunk on XP win64 > > make[3]: Leaving directory `E:/FPC/lazarus/fpc/trunk/compiler' > > __missing_command_CMP -i218 ppc3.exe ppcx64.exe > > process_begin: CreateProcess((null), __missing_command_CMP -i218 ppc3.exe > > ppcx64 > > .exe, ...) failed. > > Yes - this means that you don't have GNU tool called "cmp" in the PATH. > > Tomas Ah... cmp is a tool... It is indeed included with the 32 bit Lazarus installation, but not with the 64 bit. I managed to build a 64 bit compiler by crosscompiling from my 32 bit installation, but will try again now from 64 bit. I'll see if I can find the missing cmp.exe in 64 bit version or try with the 32 bit version.

You can just copy the executable from your win32 installation into the directory of your win64 installation, this should work fine.

Pierre Muller

Reply by email

Vincent Snijders
to Birger Jansen

2010/11/26 Birger Jansen :

Show quoted text 5 lines
> I'll see if I can find the missing cmp.exe in 64 bit version or try with the 32 > bit version. Copying the cmp.exe that comes with the Lazarus 32 bit installer to a 64 bit installation worked. Can this file be included in the 64 bit installer to prevent nono's like me running into the same problem in the future?

Yes, I think it is already added for the 64 bits installer with fpc 2.5.1, because it is in
http://svn.freepascal.org/svn/fpcbuild/trunk/install/binw64/

Vincent

Reply by email