compiler: Fails to build itself for i386-win32
Summary
Building i386 compiler on i386 machine fails. Building on x86_64 succeeds but does not work.
make.exe install OS_TARGET=win32 CPU_TARGET=i386 FPC=C:\fpc-3.2.2\bin\i386-win32\ppc386.exe OVERRIDEVERSIONCHECK=1 FPCOPT="-CpPENTIUM3 -gl"
System Information
- Operating system: Windows 2003 server
- Processor architecture: x86
- Compiler version: trunk git 131331bc
- Device: Computer
What is the current bug behavior?
make.exe[7]: Entering directory `C:/projects/fpc/rtl/win32'
C:/projects/fpc/compiler/ppc1.exe -CpPENTIUM3 -gl -Ur -Xs -O2 -n -Fi../inc -Fi../i386 -Fi../win -Fi./i386 -Fi../win/wininc -FE
-FUC:/projects/fpc/rtl/units/i386-win32 -di386 -dRELEASE -Fu../win -Us -Sg system.pp
make.exe[7]: *** [system.ppu] Error 216
make.exe[7]: Leaving directory `C:/projects/fpc/rtl/win32'
make.exe[6]: *** [win32_all] Error 2
gdb says:
C:\projects\fpc\compiler>gdb ppc1.exe
GNU gdb (GDB) 7.2
...
Reading symbols from C:\projects\fpc\compiler/ppc1.exe...done.
(gdb) run
Starting program: C:\projects\fpc\compiler/ppc1.exe
[New Thread 1172.0xf24]
Program received signal SIGILL, Illegal instruction.
0x004035b6 in FPC_CPUCODEINIT () at C:/projects/fpc/rtl/i386/i386.inc:2137
2137 xorl %ecx,%ecx
(gdb)
Possible fixes
Looks like it is recent CPU feature detection changes
Edited by Anton Kavalenka