>> return stub_names
HscJava -> outputJava dflags filenm mod_name tycons core_binds
>> return stub_names
+ HscILX ->
#ifdef ILX
- HscILX -> outputIlx dflags filenm mod_name tycons stg_binds
+ outputIlx dflags filenm mod_name tycons stg_binds
>> return stub_names
+#else
+ panic "ILX support not compiled into this ghc"
#endif
}
stub_c_file_exists
<- outputForeignStubs_help (hscStubCOutName dflags) stub_c_output_w
- (hc_header ++ "#include \"RtsAPI.h\"\n")
+ ("#define IN_STG_CODE 0\n" ++
+ hc_header ++
+ "#include \"RtsAPI.h\"\n")
+ -- we're adding the default hc_header to the stub file, but this
+ -- isn't really HC code, so we need to define IN_STG_CODE==0 to
+ -- avoid the register variables etc. being enabled.
return (stub_h_file_exists, stub_c_file_exists)
where
-- turn out to be empty, in which case no file should be created.
outputForeignStubs_help fname "" injects = return False
outputForeignStubs_help fname doc_str injects
- = do writeFile fname (injects ++ doc_str)
+ = do writeFile fname (injects ++ doc_str ++ "\n")
return True
\end{code}