Commit 8c516bea authored by John van Groningen's avatar John van Groningen

recompile if abc file was generated for architecture with different word size (32 or 64 bits)

parent 1ada6375
......@@ -17,6 +17,7 @@ from PmDirCache import :: DirCache
, abcGenerateComments :: !Bool
, abcReuseUniqueNodes :: !Bool
, abcFusion :: !Bool
, abc64Bits :: !Bool
}
DefaultABCOptions :: ABCOptions
......
......@@ -28,6 +28,7 @@ from StdLibMisc import :: Date{..}, :: Time{..}
, abcGenerateComments :: !Bool
, abcReuseUniqueNodes :: !Bool
, abcFusion :: !Bool
, abc64Bits :: !Bool
}
DefaultABCOptions :: ABCOptions;
......@@ -40,6 +41,7 @@ DefaultABCOptions =
, abcGenerateComments = False
, abcReuseUniqueNodes = False
, abcFusion = False
, abc64Bits = False
}
//-- abc file handling
......@@ -63,9 +65,10 @@ VerboseMask :== 6;
WarningsMask :== 7;
SystemMask :== 8;
FusionOffset :== 9;
Abc64BitsOffset :==10;
MinimumNrOfOptions :== 9;
NrOfOptions :== 10;
NrOfOptions :== 11;
Combined :: !Pathname !DATE !ABCCache !Files -> (!((!Bool, !Bool, !Int, !ABCOptions),(!List Modulename, !Maybe ModuleDate, !List ModuleDate, !List LinkObjFileName, !List LinkLibraryName),!ABCCache),!Files)
Combined path date abccache files
......@@ -147,7 +150,8 @@ StringToCompilerOptions start end opt
abcBeVerbose = opt .[start+VerboseMask] == '1',
abcGenerateComments = opt .[start+DebugMask] == '1',
abcReuseUniqueNodes = not (opt.[start+DontReuseUniqueNodesMask] == '1'),
abcFusion = start+FusionOffset<end && opt.[start+FusionOffset]=='1'
abcFusion = start+FusionOffset<end && opt.[start+FusionOffset]=='1',
abc64Bits = start+Abc64BitsOffset<end && opt.[start+Abc64BitsOffset]=='1'
};
ProjectABCFile :: !Int !String -> Bool;
......
......@@ -1087,7 +1087,8 @@ UpdateDependencies force next rest compinfo dircache ds ps`
# ps = showInfo line ps
= (ps,dircache,False,False,rest,compinfo,ds,False)
# (okA,whyA,dircache) = check_dependant_dates modname info.abcpath mods xxx_md xxx_dd dircache
# (okC,whyC) = check_module_options modname info co mp tp eod version
# (use_64_bit_processor,ps) = getCurrent64BitProcessor ps
# (okC,whyC) = check_module_options modname info co mp tp eod use_64_bit_processor version
| okA && okC
# (ok,paths,dircache) = LookupModulePaths mods dircache
......@@ -1405,11 +1406,13 @@ where
| ld.year <> rd.year = False
= True
check_module_options :: !String !.FileInfo !.CompilerOptions !.Bool !.Bool !.Bool !.Int -> (.Bool,{#Char});
check_module_options modname info=:{version,abcOptions} co mp tp expectedEagerOrDynamic expectedVersion
check_module_options :: !String !.FileInfo !.CompilerOptions !.Bool !.Bool !.Bool !Bool !.Int -> (.Bool,{#Char});
check_module_options modname info=:{version,abcOptions} co mp tp expectedEagerOrDynamic use_64_bit_processor expectedVersion
| version <> expectedVersion
= (False,"["+++modname+++".icl,]: .abc out of date, different abc version.")
| abcOptions.abc64Bits<>use_64_bit_processor
= incorrect_option modname "32 or 64 bit code"
| abcOptions.abcBeVerbose <> expectedBeVerbose
= incorrect_option modname "Dynamics"
| abcOptions.abcTimeProfile <> expectedTimeProfile
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment