Browse Source

Refuse to run on Itanium. Partially reverts previous.

Martijn Laan 1 year ago
parent
commit
e1d2976a61
2 changed files with 9 additions and 5 deletions
  1. 7 3
      Projects/Src/Main.pas
  2. 2 2
      Projects/Src/Struct.pas

+ 7 - 3
Projects/Src/Main.pas

@@ -3253,8 +3253,9 @@ begin
   end;
   end;
   
   
   { Check processor architecture }
   { Check processor architecture }
-  if (SetupHeader.ArchitecturesAllowed <> '') and
-     not EvalExpression(SetupHeader.ArchitecturesAllowed, TDummyClass.EvalArchitectureIdentifier) then
+  if (ProcessorArchitecture = paIA64) or { Remove once Windows 8 (6.2+) becomes the new minimum }
+     ((SetupHeader.ArchitecturesAllowed <> '') and
+      not EvalExpression(SetupHeader.ArchitecturesAllowed, TDummyClass.EvalArchitectureIdentifier)) then
     AbortInit(msgWindowsVersionNotSupported);
     AbortInit(msgWindowsVersionNotSupported);
 
 
   { Check Windows version }
   { Check Windows version }
@@ -4408,7 +4409,7 @@ begin
     4. GetSystemWow64DirectoryA is available.
     4. GetSystemWow64DirectoryA is available.
     5. RegDeleteKeyExA is available.
     5. RegDeleteKeyExA is available.
     The system does not have to be one of the known 64-bit architectures
     The system does not have to be one of the known 64-bit architectures
-    (AMD64, Arm64) to be considered a "Win64" system. }
+    to be considered a "Win64" system. }
 
 
   IsWin64 := False;
   IsWin64 := False;
 
 
@@ -4419,6 +4420,7 @@ begin
     IsWin64 := True;
     IsWin64 := True;
     case NativeMachine of
     case NativeMachine of
       IMAGE_FILE_MACHINE_I386: ProcessorArchitecture := paX86;
       IMAGE_FILE_MACHINE_I386: ProcessorArchitecture := paX86;
+      IMAGE_FILE_MACHINE_IA64: ProcessorArchitecture := paIA64;
       IMAGE_FILE_MACHINE_AMD64: ProcessorArchitecture := paX64;
       IMAGE_FILE_MACHINE_AMD64: ProcessorArchitecture := paX64;
       IMAGE_FILE_MACHINE_ARM64: ProcessorArchitecture := paArm64;
       IMAGE_FILE_MACHINE_ARM64: ProcessorArchitecture := paArm64;
     else
     else
@@ -4438,6 +4440,7 @@ begin
 
 
     case SysInfo.wProcessorArchitecture of
     case SysInfo.wProcessorArchitecture of
       PROCESSOR_ARCHITECTURE_INTEL: ProcessorArchitecture := paX86;
       PROCESSOR_ARCHITECTURE_INTEL: ProcessorArchitecture := paX86;
+      PROCESSOR_ARCHITECTURE_IA64: ProcessorArchitecture := paIA64;
       PROCESSOR_ARCHITECTURE_AMD64: ProcessorArchitecture := paX64;
       PROCESSOR_ARCHITECTURE_AMD64: ProcessorArchitecture := paX64;
       PROCESSOR_ARCHITECTURE_ARM64: ProcessorArchitecture := paArm64;
       PROCESSOR_ARCHITECTURE_ARM64: ProcessorArchitecture := paArm64;
     else
     else
@@ -4456,6 +4459,7 @@ begin
     - x64: [paX86, paX64]
     - x64: [paX86, paX64]
       (but not paX86 in a future x64 build of Inno Setup if Windows was installed
       (but not paX86 in a future x64 build of Inno Setup if Windows was installed
        without support for x86 binaries (which is possible with Windows Server))
        without support for x86 binaries (which is possible with Windows Server))
+    - Itanium: [paX86, paIA64]
     - Arm64 Windows 10: [paX86, paArm64, paArm32]
     - Arm64 Windows 10: [paX86, paArm64, paArm32]
       (Arm32 support detected, not just assumed)
       (Arm32 support detected, not just assumed)
     - Arm64 Windows 11: [paX86, paX64, paArm64, paArm32]
     - Arm64 Windows 11: [paX86, paX64, paArm64, paArm32]

+ 2 - 2
Projects/Src/Struct.pas

@@ -69,7 +69,7 @@ type
   TSetupLanguageDetectionMethod = (ldUILanguage, ldLocale, ldNone);
   TSetupLanguageDetectionMethod = (ldUILanguage, ldLocale, ldNone);
   TSetupCompressMethod = (cmStored, cmZip, cmBzip, cmLZMA, cmLZMA2);
   TSetupCompressMethod = (cmStored, cmZip, cmBzip, cmLZMA, cmLZMA2);
   TSetupSalt = array[0..7] of Byte;
   TSetupSalt = array[0..7] of Byte;
-  TSetupProcessorArchitecture = (paUnknown, paX86, paX64, paArm32, paArm64);
+  TSetupProcessorArchitecture = (paUnknown, paX86, paX64, paIA64, paArm32, paArm64);
   TSetupProcessorArchitectures = set of TSetupProcessorArchitecture;
   TSetupProcessorArchitectures = set of TSetupProcessorArchitecture;
   TSetupDisablePage = (dpAuto, dpNo, dpYes);
   TSetupDisablePage = (dpAuto, dpNo, dpYes);
   TSetupPrivilegesRequired = (prNone, prPowerUser, prAdmin, prLowest);
   TSetupPrivilegesRequired = (prNone, prPowerUser, prAdmin, prLowest);
@@ -78,7 +78,7 @@ type
   TSetupWizardStyle = (wsClassic, wsModern);
   TSetupWizardStyle = (wsClassic, wsModern);
 const
 const
   SetupProcessorArchitectureNames: array[TSetupProcessorArchitecture] of String =
   SetupProcessorArchitectureNames: array[TSetupProcessorArchitecture] of String =
-    ('Unknown', 'x86', 'x64', 'Arm32', 'Arm64');
+    ('Unknown', 'x86', 'x64', 'Itanium', 'Arm32', 'Arm64');
 
 
 const
 const
   SetupHeaderStrings = 32;
   SetupHeaderStrings = 32;