Commit 897f1a1b authored by John van Groningen's avatar John van Groningen
Browse files

use -tcl option of the compiler if the dynamic linker is used

parent 5669c657
Pipeline #49777 passed with stage
in 57 seconds
......@@ -246,7 +246,7 @@ where
:+: TextControl "Initial Heap Size" []
// marking collector
:+: CheckControl
[ ( "Enable dynamics"
[ ( "Dynamic linker"
, Nothing
, if (lo.method == LM_Static) NoMark Mark
, noPS (\l->{l & lo = {l.lo & method = if (l.lo.method == LM_Static) LM_Dynamic LM_Static}})
......
......@@ -21,6 +21,7 @@ from PmDirCache import :: DirCache
, abcGenericFusion :: !Bool
, abc64Bits :: !Bool
, abcDynamics :: !Bool
, abcTclFile :: !Bool
}
DefaultABCOptions :: ABCOptions
......
......@@ -32,6 +32,7 @@ from StdLibMisc import :: Date{..}, :: Time{..}
, abcGenericFusion :: !Bool
, abc64Bits :: !Bool
, abcDynamics :: !Bool
, abcTclFile :: !Bool
}
DefaultABCOptions :: ABCOptions;
......@@ -48,6 +49,7 @@ DefaultABCOptions =
, abcGenericFusion = False
, abc64Bits = False
, abcDynamics = False
, abcTclFile = False
}
//-- abc file handling
......@@ -75,9 +77,10 @@ Abc64BitsOffset :==10;
DynamicsBitsOffset :==11;
GenericFusionOffset :==12;
CallgraphProfileOffset :==13;
TclFileOffset :==14;
MinimumNrOfOptions :== 9;
NrOfOptions :== 14;
NrOfOptions :== 15;
ParseABCInfoAndDependencies :: !Pathname !DATE !ABCCache !Files -> (!((!Bool, !Bool, !Int, !ABCOptions),(!List Modulename, !Maybe ModuleDate, !List ModuleDate, !List LinkObjFileName, !List LinkLibraryName),!ABCCache),!Files)
ParseABCInfoAndDependencies path date abccache files
......@@ -169,7 +172,8 @@ StringToCompilerOptions start end opt
abcGenericFusion = start+GenericFusionOffset<end && opt.[start+GenericFusionOffset]=='1',
abc64Bits = start+Abc64BitsOffset<end && opt.[start+Abc64BitsOffset]=='1',
abcDynamics = start+DynamicsBitsOffset<end && opt.[start+DynamicsBitsOffset]=='1',
abcCallgraphProfile = start+CallgraphProfileOffset<end && opt.[start+CallgraphProfileOffset]=='1'
abcCallgraphProfile = start+CallgraphProfileOffset<end && opt.[start+CallgraphProfileOffset]=='1',
abcTclFile = start+TclFileOffset<end && opt.[start+TclFileOffset]=='1'
};
ProjectABCFile :: !Int !String -> Bool;
......
......@@ -1537,8 +1537,10 @@ check_module_options modname info=:{version,abcOptions} co project_compiler_opti
= incorrect_option modname "Fusion"
| abcOptions.abcGenericFusion<>case co.fusion of FusionDefault -> project_compiler_options.pco_generic_fusion; _ -> False
= incorrect_option modname "Generic Fusion"
| abcOptions.abcDynamics <> project_compiler_options.pco_dynamics
| abcOptions.abcDynamics <> (project_compiler_options.pco_dynamics || project_compiler_options.pco_link_dynamic)
= incorrect_option modname "Dynamics"
| abcOptions.abcTclFile <> project_compiler_options.pco_link_dynamic
= incorrect_option modname "Dynamic Linking"
= (True,"")
where
expectedDescriptors = project_compiler_options.pco_desc_exl || project_compiler_options.pco_link_dynamic || (project_compiler_options.pco_memory_profiling && (not co.neverMemoryProfile))
......
......@@ -478,7 +478,7 @@ MakeCompilerOptionsString :: !CompileOrCheckSyntax !ProjectCompilerOptions !Comp
MakeCompilerOptionsString compileOrCheckSyntax
{pco_memory_profiling,pco_time_profiling,pco_callgraph_profiling,pco_desc_exl,pco_generic_fusion,pco_dynamics,pco_link_dynamic}
{neverMemoryProfile, neverTimeProfile,sa,gw,gc,listTypes,attr,reuseUniqueNodes,fusion}
= (add_dynamics_option (add_fusion_option (add_exl_option
= (add_dynamics_options (add_fusion_option (add_exl_option
(checksyntax +++ timeProfileSwitch +++ callgraphProfileSwitch +++ memoryProfileSwitch +++ strictness +++ warnings +++ comments +++listtypes+++show_attr+++reuse)
))) +++" "
where
......@@ -531,7 +531,12 @@ where
add_fusion_option s
= case fusion of FusionOn -> s+++" -fusion"; FusionDefault | pco_generic_fusion -> s+++" -generic_fusion"; _ -> s
add_dynamics_option s = if (pco_dynamics || pco_link_dynamic) (s+++" -dynamics") s
add_dynamics_options s
| pco_link_dynamic
= s+++" -tcl -dynamics"
| pco_dynamics
= s+++" -dynamics"
= s
/* Generates code for the given file:
*/
......
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