View Issue Details

IDProjectCategoryView StatusLast Update
0018894FPCCompilerpublic2011-04-14 14:54
ReporterCyrax Assigned ToJoost van der Sluis  
Status closedResolutionfixed 
Product Version2.5.1 
Fixed in Version2.6.0 
Summary0018894: Since SVN revision 17094 FPC cannot compile win64-version of itself.
DescriptionWhen trying to compile it gives following error messages:

globals.pas(726,49) Error: Identifier not found "HWND"
globals.pas(752,40) Error: Identifier not found "GetSystemDirectory"
globals.pas(756,39) Error: Identifier not found "LoadLibrary"
globals.pas(759,58) Error: Identifier not found "GetProcAddress"
globals.pas(762,33) Error: Identifier not found "FreeLibrary"
globals.pas(1588,16) Error: Identifier not found "FreeLibrary"
globals.pas(1591) Fatal: There were 6 errors compiling module, stopping
TagsNo tags attached.
Fixed in Revision17115
Attached Files



2011-03-09 01:03

reporter   ~0046521

Here is patch which fixes this bug.

2011-03-09 01:04


globals.pas.diff (271 bytes)   
Index: globals.pas
--- globals.pas	(revision 17094)
+++ globals.pas	(working copy)
@@ -26,7 +26,7 @@
-{$ifdef win32}
+{$ifdef windows}
 {$ifdef os2}
globals.pas.diff (271 bytes)   


2011-03-10 17:55

reporter   ~0046553

Related issue (after the patch): cannot build wince-arm crosscompiler:

D:/Distrib/Programming/Lazarus/trunk/fpc/compiler/ppcrossarm.exe -Twince -Parm -
XParm-wince- -Xr -Ur -Xs -O2 -n -Fuarm -Fusystems -FuD:/Distrib/Programming/Laza
rus/trunk/fpc/rtl/units/arm-wince -Fiarm -FE. -FUarm/units/arm-wince -dRELEASE
 -darm -dGDB -dBROWSERLOG pp.pas
globals.pas(752,40) Error: Identifier not found "GetSystemDirectory"
globals.pas(756,47) Error: Incompatible type for arg no. 1: Got "Array[0..259] O
f Char", expected "PWideChar"
globals.pas(1591) Fatal: There were 2 errors compiling module, stopping
Fatal: Compilation aborted

Joost van der Sluis

2011-03-10 20:09

manager   ~0046554

Last edited: 2011-03-10 20:11

Can you try again, using r17115 or later?


2011-03-11 19:11

reporter   ~0046561

Last edited: 2011-03-11 19:14

r17116: arm-wince crosscompiler has been built successfully, x86_64-win64 cannot be built (on my winXp HE sp2)
make -C gdbint all
make[3]: Entering directory `D:/Distrib/Programming/Lazarus/trunk/fpc/packages/gdbint'
c:/lazarus/fpc/2.5.1/bin/i386-win32/gmkdir.exe -p units/x86_64-win64
c:/lazarus/fpc/2.5.1/bin/i386-win32/cp.exe src/ src/
Different target os or cpu, using default GDB GDB_V606
D:/Distrib/Programming/Lazarus/trunk/fpc/compiler/ppcrossx64.exe -Twin64 -Px86_64 -XPx86_64-win64- -Xr -Ur -Xs -O2 -n -FuD:/Distrib/Programming/Lazarus/trunk/fpc/rtl/units/x86_64-win64 -FlD:/Distrib/Programming/Lazarus/trunk/fpc/libgdb/win64 -FoD:/Distrib/Programming/Lazarus/trunk/fpc/libgdb/win64 -FiD:/Distrib/Programming/Lazarus/trunk/fpc/libgdb/win64 -Fisrc -FE. -FUunits/x86_64-win64 -dx86_64 -dRELEASE -dGDB_V606 -Fisrc -Fusrc src/gdbint.pp
gdbint.pp(3087) Error: Invalid DLL C:\WINDOWS\system32\kernel32.dll, invalid header size
gdbint.pp(3087) Error: Invalid DLL C:\WINDOWS\system32\user32.dll, invalid header size
Fatal: There were 2 errors compiling module, stopping
Fatal: Compilation aborted
make[3]: *** [gdbint.ppu] Error 1
make[3]: Leaving directory `D:/Distrib/Programming/Lazarus/trunk/fpc/packages/gdbint'
make[2]: *** [gdbint_all] Error 2
make[2]: Leaving directory `D:/Distrib/Programming/Lazarus/trunk/fpc/packages'
make[1]: *** [packages_all] Error 2
make[1]: Leaving directory `D:/Distrib/Programming/Lazarus/trunk/fpc'
make: *** [build-stamp.x86_64-win64] Error 2

Marco van de Voort

2011-03-12 15:49

manager   ~0046569

I think that Anton's issue is not related to the earlier problem

I tested on 64-bit and there it works fine so Anton's problem is a win32->win64 crosscompiling problem.

Anton's might be related to a clash between kernel32.dll and the mingw kernel32.a import lib.

Anton: could you try to add "lib" and ".a" to lines 488 and 489 of gdbint, so that the linklibs for win64 read "libkernel32.a" and "libuser32.a", and then test if the problem persists?


2011-03-12 17:01

reporter   ~0046572

Marco: after applying changes you mentioned x86_64-win64 crosscompiler (and packages) has been built without any errors, thank you

Issue History

Date Modified Username Field Change
2011-03-09 00:30 Cyrax New Issue
2011-03-09 00:34 Jonas Maebe Status new => assigned
2011-03-09 00:34 Jonas Maebe Assigned To => Joost van der Sluis
2011-03-09 01:03 Cyrax Note Added: 0046521
2011-03-09 01:04 Cyrax File Added: globals.pas.diff
2011-03-10 17:55 Anton Note Added: 0046553
2011-03-10 20:09 Joost van der Sluis Note Added: 0046554
2011-03-10 20:11 Joost van der Sluis Note Edited: 0046554
2011-03-11 19:11 Anton Note Added: 0046561
2011-03-11 19:13 Anton Note Edited: 0046561
2011-03-11 19:14 Anton Note Edited: 0046561
2011-03-11 19:14 Anton Note Edited: 0046561
2011-03-12 15:49 Marco van de Voort Note Added: 0046569
2011-03-12 17:01 Anton Note Added: 0046572
2011-03-13 11:58 Jonas Maebe FPCOldBugId => 0
2011-03-13 11:58 Jonas Maebe Fixed in Revision => 17115
2011-03-13 11:58 Jonas Maebe Status assigned => resolved
2011-03-13 11:58 Jonas Maebe Resolution open => fixed
2011-03-13 11:58 Jonas Maebe Fixed in Version => 2.5.1
2011-04-14 14:54 Cyrax Status resolved => closed