I am using Laz 1.4.2/FPC 2.6.4 on Kubuntu 15.04 x86_64. I am getting an error every time I try to compile referring to globtype. The errors refer to identifiers not found for PInt, AWord, & AInt. The type declaration is shown above in several IFDEF's listing 64-bit, 32-bit, 16-bit and 8-bit cpu types. The problem that I am seeing is that every type of cpu is grey'd out and not applicable. Now that simply can't be right since the host cpu is identified as the first type listed.
In Project>project options>compiler options> I have selected Target OS (-T) Linux, Target CPU Family (-P) x86_64, Target Processor (-Cp) (Default). My host machine has an Intel i5-3570 CPU. I have run a test on the CPU using the libgpm-1.20.7 which passed all tests.
I have examined my code and found numerous ints, but nothing directly tied to <globtype>, although I don't doubt that somewhere under the hood the reference is needed. I'm at a loss . . .
This is the selection from globtype:
{ Integer type corresponding to pointer size } <---------------- %)the following are all grey'd out:
{$ifdef cpu64bitaddr}
PUint = qword;
PInt = int64;
{$endif cpu64bitaddr}
{$ifdef cpu32bitaddr}
PUint = cardinal;
PInt = longint;
{$endif cpu32bitaddr}
{$ifdef cpu16bitaddr}
PUint = word;
PInt = Smallint;
{$endif cpu16bitaddr}
{ Natural integer register type and size for the target machine }
{$ifdef cpu64bitalu}
AWord = qword;
AInt = Int64;
Const
AIntBits = 64;
{$endif cpu64bitalu}
{$ifdef cpu32bitalu}
AWord = longword;
AInt = longint;
Const
AIntBits = 32;
{$endif cpu32bitalu}
{$ifdef cpu16bitalu}
AWord = Word;
AInt = Smallint;
Const
AIntBits = 16;
{$endif cpu16bitalu}
{$ifdef cpu8bitalu}
AWord = Byte;
AInt = Shortint;
Const
AIntBits = 8;
{$endif cpu8bitalu} <grey out ends . . .>
Type
PAWord = ^AWord; <------ error showing
PAInt = ^AInt;
{ target cpu specific type used to store data sizes }
ASizeInt = PInt; <------------ error showing
ASizeUInt = PUInt; <------------error showing
{ type used for handling constants etc. in the code generator }
TCGInt = Int64;
{ This must be an ordinal type with the same size as a pointer
Note: Must be unsigned! Otherwise, ugly code like
pointer(-1) will result in a pointer with the value
$fffffffffffffff on a 32bit machine if the compiler uses
int64 constants internally (JM) }
TConstPtrUInt = AWord; <--------------error showing