Browse Source

Prepare for use of fpmkunit table by adding o_none and c_none as first element in TOS and TCPU types

Pierre Muller 1 year ago
parent
commit
1d4d71b5a0
3 changed files with 96 additions and 87 deletions
  1. 4 4
      utils/fpcm/fpcmake.pp
  2. 84 75
      utils/fpcm/fpcmmain.pp
  3. 8 8
      utils/fpcm/fpcmwr.pp

+ 4 - 4
utils/fpcm/fpcmake.pp

@@ -107,8 +107,8 @@ program fpcmake;
 
           { Add the subdirs }
           subdirs:='';
-          for c:=low(tcpu) to high(tcpu) do
-           for t:=low(tos) to high(tos) do
+          for c:=succ(low(tcpu)) to high(tcpu) do
+           for t:=succ(low(tos)) to high(tos) do
             if CurrFPCMake.IncludeTargets[c,t] then
              begin
                s2:=CurrFPCMake.GetTargetVariable(c,t,'target_dirs',true);
@@ -119,8 +119,8 @@ program fpcmake;
                  AddTokenNoDup(subdirs,s,' ');
                until false;
              end;
-          for c:=low(tcpu) to high(tcpu) do
-           for t:=low(tos) to high(tos) do
+          for c:=succ(low(tcpu)) to high(tcpu) do
+           for t:=succ(low(tos)) to high(tos) do
             if CurrFPCMake.IncludeTargets[c,t] then
              begin
                s2:=CurrFPCMake.GetTargetVariable(c,t,'target_exampledirs',true);

+ 84 - 75
utils/fpcm/fpcmmain.pp

@@ -69,11 +69,13 @@ interface
 
     type
       TCpu=(
-        c_i386,c_m68k,c_powerpc,c_sparc,c_x86_64,c_arm,c_powerpc64,c_avr,c_armeb,c_armel,c_mips,c_mipsel,c_mips64,c_mips64el,c_jvm,c_i8086,c_aarch64,c_wasm32,c_sparc64,c_riscv32,c_riscv64,c_xtensa,c_z80, c_loongarch64
+        c_none,c_i386,c_m68k,c_powerpc,c_sparc,c_x86_64,c_arm,c_powerpc64,c_avr,
+	c_armeb,c_armel,c_mips,c_mipsel,c_mips64,c_mips64el,c_jvm,c_i8086,c_aarch64,
+	c_wasm32,c_sparc64,c_riscv32,c_riscv64,c_xtensa,c_z80, c_loongarch64
       );
 
       TOS=(
-        o_linux,o_go32v2,o_win32,o_os2,o_freebsd,o_beos,o_haiku,o_netbsd,
+        o_none,o_linux,o_go32v2,o_win32,o_os2,o_freebsd,o_beos,o_haiku,o_netbsd,
         o_amiga,o_atari, o_solaris, o_qnx, o_netware, o_openbsd,o_wdosx,
         o_palmos,o_macosclassic,o_darwin,o_emx,o_watcom,o_morphos,o_netwlibc,
         o_win64,o_wince,o_gba,o_nds,o_embedded,o_symbian,o_nativent,o_iphonesim,
@@ -85,19 +87,25 @@ interface
 
     const
       CpuStr : array[TCpu] of string=(
-        'i386','m68k','powerpc','sparc','x86_64','arm','powerpc64','avr','armeb', 'armel', 'mips', 'mipsel', 'mips64', 'mips64el', 'jvm','i8086','aarch64','wasm32','sparc64','riscv32','riscv64','xtensa','z80', 'loongarch64'
+        'none','i386','m68k','powerpc','sparc','x86_64','arm','powerpc64','avr',
+	'armeb', 'armel', 'mips', 'mipsel', 'mips64', 'mips64el', 'jvm','i8086','aarch64',
+	'wasm32','sparc64','riscv32','riscv64','xtensa','z80', 'loongarch64'
       );
 
       CpuSuffix : array[TCpu] of string=(
-        '_i386','_m68k','_powerpc','_sparc','_x86_64','_arm','_powerpc64','_avr','_armeb', '_armel', '_mips', '_mipsel', '_mips64', '_mips64el', '_jvm','_i8086','_aarch64','_wasm32','_sparc64','_riscv32','_riscv64','xtensa','_z80', 'loongarch64'
+        '_none','_i386','_m68k','_powerpc','_sparc','_x86_64','_arm','_powerpc64','_avr',
+	'_armeb', '_armel', '_mips', '_mipsel', '_mips64', '_mips64el', '_jvm','_i8086','_aarch64',
+	'_wasm32','_sparc64','_riscv32','_riscv64','xtensa','_z80', 'loongarch64'
       );
 
       ppcSuffix : array[TCpu] of string=(
-        '386','68k','ppc','sparc','x64','arm','ppc64','avr','armeb', 'armel', 'mips', 'mipsel', 'mips64', 'mips64el', 'jvm','8086','a64','wasm32','sparc64','rv32','rv64','xtensa','z80', 'loongarch64'
+        'none','386','68k','ppc','sparc','x64','arm','ppc64','avr',
+	'armeb', 'armel', 'mips', 'mipsel', 'mips64', 'mips64el', 'jvm','8086','a64',
+	'wasm32','sparc64','rv32','rv64','xtensa','z80', 'loongarch64'
       );
 
       OSStr : array[TOS] of string=(
-        'linux','go32v2','win32','os2','freebsd','beos','haiku','netbsd',
+        'none','linux','go32v2','win32','os2','freebsd','beos','haiku','netbsd',
         'amiga','atari','solaris', 'qnx', 'netware','openbsd','wdosx',
         'palmos','macosclassic','darwin','emx','watcom','morphos','netwlibc',
         'win64','wince','gba','nds','embedded','symbian','nativent',
@@ -107,7 +115,7 @@ interface
       );
 
       OSSuffix : array[TOS] of string=(
-        '_linux','_go32v2','_win32','_os2','_freebsd','_beos','_haiku','_netbsd',
+        '_none','_linux','_go32v2','_win32','_os2','_freebsd','_beos','_haiku','_netbsd',
         '_amiga','_atari','_solaris', '_qnx', '_netware','_openbsd','_wdosx',
         '_palmos','_macosclassic','_darwin','_emx','_watcom','_morphos','_netwlibc',
         '_win64','_wince','_gba','_nds','_embedded','_symbian','_nativent',
@@ -118,52 +126,53 @@ interface
 
       { This table is kept OS,Cpu because it is easier to maintain (PFV) }
       OSCpuPossible : array[TOS,TCpu] of boolean = (
-        { os          i386    m68k  ppc    sparc  x86_64 arm    ppc64  avr    armeb  armel  mips   mipsel mips64 misp64el jvm    i8086  aarch64 wasm32 sparc64 riscv32 riscv64 xtensa z80   loongarch64 }
-        { linux }   ( true,  true,  true,  true,  true,  true,  true,  false, true,  false, true,  true,  true,  true,    false, false, true,   false, true,  true,   true,   true,  false, true),
-        { go32v2 }  ( true,  false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
-        { win32 }   ( true,  false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
-        { os2 }     ( true,  false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
-        { freebsd } ( true,  false, false, false, true,  false, false, false, false, false, false, false, false, false,   false, false, true,   false, false, false,  false,  false, false, false),
-        { beos }    ( true,  false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
-        { haiku }   ( true,  false, false, false, true,  false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
-        { netbsd }  ( true,  true,  true,  true,  true,  true,  false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
-        { amiga }   ( false, true,  true,  false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
-        { atari }   ( false, true,  false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
-        { solaris } ( true,  false, false, true,  true,  false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
-        { qnx }     ( false, false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
-        { netware } ( true,  false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
-        { openbsd } ( true,  false, false, false, true,  false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
-        { wdosx }   ( true,  false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
-        { palmos }  ( false, true,  false, false, false, true,  false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
-   { macosclassic } ( false, true,  true,  false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
-        { darwin }  ( true,  false, true,  false, true,  false, true,  false, false, false, false, false, false, false,   false, false, true,   false, false, false,  false,  false, false, false),
-        { emx }     ( true,  false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
-        { watcom }  ( true,  false, false, false ,false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
-        { morphos } ( false, false, true,  false ,false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
-        { netwlibc }( true,  false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
-        { win64   } ( false, false, false, false, true,  false, false, false, false, false, false, false, false, false,   false, false, true,   false, false, false,  false,  false, false, false),
-        { wince    }( true,  false, false, false, false, true,  false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
-        { gba    }  ( false, false, false, false, false, true,  false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
-        { nds    }  ( false, false, false, false, false, true,  false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
-        { embedded }( true,  true,  true,  true,  true,  true,  true,  true,  true , false, false, true , false, false,   false, true , true ,  true,  false, true,   true,   true,  true,  false),
-        { symbian } ( true,  false, false, false, false, true,  false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
-        { nativent }( true,  false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
-        { iphonesim }( true, false, false, false, true,  false, false, false, false, false, false, false, false, false,   false, false, true ,  false, false, false,  false,  false, false, false),
-        { wii }     ( false, false, true,  false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
-        { aix }     ( false, false, true,  false, false, false, true,  false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
-        { java }    ( false, false, false, false, false, false, false, false, false, false, false, false, false, false,   true,  false, false,  false, false, false,  false,  false, false, false),
-        { android } ( true,  false, false, false, true,  true,  false, false, false, false, false, true,  false, false,   true,  false, true,   false, false, false,  false,  false, false, false),
-        { msdos }   ( false, false, false, false, false, false, false, false, false, false, false, false, false, false,   false, true , false,  false, false, false,  false,  false, false, false),
-        { aros }    ( true,  false, false, false, true,  true,  false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
-        {dragonfly} ( false, false, false, false, true,  false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
-        { win16 }   ( false, false, false, false, false, false, false, false, false, false, false, false, false, false,   false, true , false,  false, false, false,  false,  false, false, false),
-        { freertos }( false, false, false, false, false, true,  false, false, false, false, false, false, false, false,   false, false, false,  false, false, true,   false,   true, false, false),
-        {zxspectrum}( false, false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, true,  false),
-        { msxdos}   ( false, false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, true,  false),
-        { ios }     ( false, false, false, false, false, true,  false, false, false, false, false, false, false, false,   false, false, true ,  false, false, false,  false,  false, false, false),
-        {amstradcpc}( false, false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, true,  false),
-        {sinclairql}( false, true,  false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
-        { wasi }    ( false, false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  true,  false, false,  false,  false, false, false)
+        { os          none   i386    m68k  ppc    sparc  x86_64 arm    ppc64  avr    armeb  armel  mips   mipsel mips64 misp64el jvm    i8086  aarch64 wasm32 sparc64 riscv32 riscv64 xtensa z80   loongarch64 }
+        { none  }   ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
+        { linux }   ( false, true,  true,  true,  true,  true,  true,  true,  false, true,  false, true,  true,  true,  true,    false, false, true,   false, true,  true,   true,   true,  false, true),
+        { go32v2 }  ( false, true,  false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
+        { win32 }   ( false, true,  false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
+        { os2 }     ( false, true,  false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
+        { freebsd } ( false, true,  false, false, false, true,  false, false, false, false, false, false, false, false, false,   false, false, true,   false, false, false,  false,  false, false, false),
+        { beos }    ( false, true,  false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
+        { haiku }   ( false, true,  false, false, false, true,  false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
+        { netbsd }  ( false, true,  true,  true,  true,  true,  true,  false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
+        { amiga }   ( false, false, true,  true,  false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
+        { atari }   ( false, false, true,  false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
+        { solaris } ( false, true,  false, false, true,  true,  false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
+        { qnx }     ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
+        { netware } ( false, true,  false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
+        { openbsd } ( false, true,  false, false, false, true,  false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
+        { wdosx }   ( false, true,  false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
+        { palmos }  ( false, false, true,  false, false, false, true,  false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
+   { macosclassic } ( false, false, true,  true,  false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
+        { darwin }  ( false, true,  false, true,  false, true,  false, true,  false, false, false, false, false, false, false,   false, false, true,   false, false, false,  false,  false, false, false),
+        { emx }     ( false, true,  false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
+        { watcom }  ( false, true,  false, false, false ,false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
+        { morphos } ( false, false, false, true,  false ,false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
+        { netwlibc }( false, true,  false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
+        { win64   } ( false, false, false, false, false, true,  false, false, false, false, false, false, false, false, false,   false, false, true,   false, false, false,  false,  false, false, false),
+        { wince    }( false, true,  false, false, false, false, true,  false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
+        { gba    }  ( false, false, false, false, false, false, true,  false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
+        { nds    }  ( false, false, false, false, false, false, true,  false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
+        { embedded }( false, true,  true,  true,  true,  true,  true,  true,  true,  true , false, false, true , false, false,   false, true , true ,  true,  false, true,   true,   true,  true,  false),
+        { symbian } ( false, true,  false, false, false, false, true,  false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
+        { nativent }( false, true,  false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
+        { iphonesim }( false, true, false, false, false, true,  false, false, false, false, false, false, false, false, false,   false, false, true ,  false, false, false,  false,  false, false, false),
+        { wii }     ( false, false, false, true,  false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
+        { aix }     ( false, false, false, true,  false, false, false, true,  false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
+        { java }    ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false,   true,  false, false,  false, false, false,  false,  false, false, false),
+        { android } ( false, true,  false, false, false, true,  true,  false, false, false, false, false, true,  false, false,   true,  false, true,   false, false, false,  false,  false, false, false),
+        { msdos }   ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false,   false, true , false,  false, false, false,  false,  false, false, false),
+        { aros }    ( false, true,  false, false, false, true,  true,  false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
+        {dragonfly} ( false, false, false, false, false, true,  false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
+        { win16 }   ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false,   false, true , false,  false, false, false,  false,  false, false, false),
+        { freertos }( false, false, false, false, false, false, true,  false, false, false, false, false, false, false, false,   false, false, false,  false, false, true,   false,   true, false, false),
+        {zxspectrum}( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, true,  false),
+        { msxdos}   ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, true,  false),
+        { ios }     ( false, false, false, false, false, false, true,  false, false, false, false, false, false, false, false,   false, false, true ,  false, false, false,  false,  false, false, false),
+        {amstradcpc}( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, true,  false),
+        {sinclairql}( false, false, true,  false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  false, false, false,  false,  false, false, false),
+        { wasi }    ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false,   false, false, false,  true,  false, false,  false,  false, false, false)
       );
 
     type
@@ -651,8 +660,8 @@ implementation
         c : tcpu;
       begin
         FSections:=TDictionary.Create;
-        for c:=low(tcpu) to high(tcpu) do
-         for t:=low(tos) to high(tos) do
+        for c:=succ(low(tcpu)) to high(tcpu) do
+         for t:=succ(low(tos)) to high(tos) do
           FRequireList[c,t]:=TStringList.Create;
         FVariables:=TKeyValue.Create;
         FCommentChars:=[';','#'];
@@ -674,8 +683,8 @@ implementation
         c : tcpu;
       begin
         FSections.Free;
-        for c:=low(tcpu) to high(tcpu) do
-         for t:=low(tos) to high(tos) do
+        for c:=succ(low(tcpu)) to high(tcpu) do
+         for t:=succ(low(tos)) to high(tos) do
           FRequireList[c,t].Free;
         FVariables.Free;
       end;
@@ -836,8 +845,8 @@ implementation
           { target 'all' includes all targets }
           if hs='all' then
            begin
-             for c:=low(TCpu) to high(TCpu) do
-              for t:=low(TOs) to high(TOs) do
+             for c:=succ(low(TCpu)) to high(TCpu) do
+              for t:=succ(low(TOs)) to high(TOs) do
                if OSCpuPossible[t,c] then
                 FIncludeTargets[c,t]:=true;
              targetset:=true;
@@ -849,11 +858,11 @@ implementation
             begin
               hcpu:=copy(hs,1,i-1);
               htarget:=copy(hs,i+1,length(hs)-i);
-              for c:=low(TCpu) to high(TCpu) do
+              for c:=succ(low(TCpu)) to high(TCpu) do
                 begin
                   if hcpu=CpuStr[c] then
                     begin
-                      for t:=low(TOs) to high(TOs) do
+                      for t:=succ(low(TOs)) to high(TOs) do
                         begin
                           if htarget=OSStr[t] then
                             begin
@@ -871,9 +880,9 @@ implementation
             end
           else
             begin
-              for c:=low(TCpu) to high(TCpu) do
+              for c:=succ(low(TCpu)) to high(TCpu) do
                 begin
-                  for t:=low(TOS) to high(TOS) do
+                  for t:=succ(low(TOS)) to high(TOS) do
                     begin
                       if hs=OSStr[t] then
                         begin
@@ -893,8 +902,8 @@ implementation
         else
          begin
            hs:='';
-           for c:=low(TCpu) to high(TCpu) do
-            for t:=low(TOs) to high(TOs) do
+           for c:=succ(low(TCpu)) to high(TCpu) do
+            for t:=succ(low(TOs)) to high(TOs) do
              if FIncludeTargets[c,t] then
               AddToken(hs,CpuStr[c]+'-'+OSStr[t],' ');
            Verbose(FPCMakeDebug,Format(s_targets_info,[hs]));
@@ -953,8 +962,8 @@ implementation
         FExportSec.AddKey('name',FPackageName);
         FExportSec.AddKey('version',FPackageVersion);
         { Add required packages }
-        for c:=low(TCpu) to high(TCpu) do
-         for t:=low(TOS) to high(TOS) do
+        for c:=succ(low(TCpu)) to high(TCpu) do
+         for t:=succ(low(TOS)) to high(TOS) do
           FExportSec.AddKey('require'+CpuSuffix[c]+OSSuffix[t],FPackageSec['require'+CpuSuffix[c]+OSSuffix[t]]);
         { Unit dir }
         {FExportSec.AddKey('unitdir','$(UNITSDIR)/'+Lowercase(PackageName));}
@@ -1143,8 +1152,8 @@ implementation
            SetVariable('require_packages',s,false);
          end;
         { Load recursively all required packages starting with this Makefile.fpc }
-        for c:=low(TCpu) to high(TCpu) do
-          for t:=low(Tos) to high(Tos) do
+        for c:=succ(low(TCpu)) to high(TCpu) do
+          for t:=succ(low(Tos)) to high(Tos) do
             if FIncludeTargets[c,t] then
               LoadRequires(c,t,self);
       end;
@@ -1212,14 +1221,14 @@ implementation
            exit;
          end;
         { for LLVM compiler support, and dwarf eh }
-        for c:=low(tcpu) to high(tcpu) do
+        for c:=succ(low(tcpu)) to high(tcpu) do
           if FIncludeTargets[c,o_linux] then
             begin
               Result:=true;
               exit;
             end;
-        for c:=low(tcpu) to high(tcpu) do
-          for t:=low(tos) to high(tos) do
+        for c:=succ(low(tcpu)) to high(tcpu) do
+          for t:=succ(low(tos)) to high(tos) do
             if FIncludeTargets[c,t] then
               begin
                 for i:=0 to RequireList[c,t].Count-1 do
@@ -1276,7 +1285,7 @@ implementation
          begin
 {$ifdef UNIX}
 {$ifndef NO_UNIX_UNIT}
-           cpu := low(TCpu);
+           cpu := succ(low(TCpu));
            while(cpuStr[cpu] <> {$I %FPCTARGETCPU%}) do begin
              Inc(cpu);
              if cpu > high(TCpu) then
@@ -1605,8 +1614,8 @@ implementation
         t:TOS;
       begin
         result:=false;
-        for c:=low(tcpu) to high(tcpu) do
-          for t:=low(tos) to high(tos) do
+        for c:=succ(low(tcpu)) to high(tcpu) do
+          for t:=succ(low(tos)) to high(tos) do
            if FIncludeTargets[c,t] then
              begin
                if (GetVariable(inivar,false)<>'') or

+ 8 - 8
utils/fpcm/fpcmwr.pp

@@ -285,8 +285,8 @@ implementation
         T : TOs;
         C : TCpu;
       begin
-        for c:=low(TCpu) to high(TCpu) do
-          for t:=low(TOS) to high(TOS) do
+        for c:=succ(low(TCpu)) to high(TCpu) do
+          for t:=succ(low(TOS)) to high(TOS) do
             if FInput.IncludeTargets[c,t] then
               begin
                 s:=FInput.GetTargetVariable(c,t,IniVar,false);
@@ -342,8 +342,8 @@ implementation
         C : TCpu;
       begin
         result:='';
-        for c:=low(TCpu) to high(TCpu) do
-          for t:=low(TOS) to high(TOS) do
+        for c:=succ(low(TCpu)) to high(TCpu) do
+          for t:=succ(low(TOS)) to high(TOS) do
             if FInput.IncludeTargets[c,t] then
               begin
                 s:=FInput.GetTargetVariable(c,t,IniVar,false);
@@ -609,8 +609,8 @@ implementation
         prefix:='REQUIRE_PACKAGES_';
         reqs:='';
         { Add target defines }
-        for c:=low(tcpu) to high(tcpu) do
-          for t:=low(tos) to high(tos) do
+        for c:=succ(low(tcpu)) to high(tcpu) do
+          for t:=succ(low(tos)) to high(tos) do
             if FInput.IncludeTargets[c,t] then
               begin
                 sl:=FInput.GetTargetRequires(c,t);
@@ -663,8 +663,8 @@ implementation
         t : Tos;
       begin
         s:='';
-        for c:=low(tcpu) to high(tcpu) do
-         for t:=low(tos) to high(tos) do
+        for c:=succ(low(tcpu)) to high(tcpu) do
+         for t:=succ(low(tos)) to high(tos) do
           if FInput.IncludeTargets[c,t] then
            AddToken(s,CpuStr[c]+'-'+OSStr[t],' ');
         FOutput.Add('MAKEFILETARGETS='+s);