@@ -7696,7 +7696,7 @@ static jl_cgval_t emit_cfunction(jl_codectx_t &ctx, jl_value_t *output_type, con
76967696
76977697// do codegen to create a C-callable alias/wrapper, or if sysimg_handle is set,
76987698// restore one from a loaded system image.
7699- const char *jl_generate_ccallable (Module *llvmmod, void *sysimg_handle, jl_value_t *nameval, jl_value_t *declrt, jl_value_t *sigt, jl_codegen_params_t ¶ms)
7699+ const char *jl_generate_ccallable (Module *llvmmod, jl_value_t *nameval, jl_value_t *declrt, jl_value_t *sigt, jl_codegen_params_t ¶ms)
77007700{
77017701 ++GeneratedCCallables;
77027702 jl_datatype_t *ft = (jl_datatype_t *)jl_tparam0 (sigt);
@@ -7725,25 +7725,12 @@ const char *jl_generate_ccallable(Module *llvmmod, void *sysimg_handle, jl_value
77257725 function_sig_t sig (" cfunction" , lcrt, crt, toboxed, false ,
77267726 argtypes, NULL , false , CallingConv::C, false , ¶ms);
77277727 if (sig.err_msg .empty ()) {
7728- if (sysimg_handle) {
7729- // restore a ccallable from the system image
7730- void *addr;
7731- int found = jl_dlsym (sysimg_handle, name, &addr, 0 );
7732- if (found)
7733- add_named_global (name, addr);
7734- else {
7735- err = jl_get_exceptionf (jl_errorexception_type, " %s not found in sysimg" , name);
7736- jl_throw (err);
7737- }
7738- }
7739- else {
7740- // Safe b/c params holds context lock
7741- Function *cw = gen_cfun_wrapper (llvmmod, params, sig, ff, name, declrt, sigt, NULL , NULL , NULL );
7742- auto alias = GlobalAlias::create (cw->getValueType (), cw->getType ()->getAddressSpace (),
7743- GlobalValue::ExternalLinkage, name, cw, llvmmod);
7744- if (params.TargetTriple .isOSBinFormatCOFF ()) {
7745- alias->setDLLStorageClass (GlobalValue::DLLStorageClassTypes::DLLExportStorageClass);
7746- }
7728+ // Safe b/c params holds context lock
7729+ Function *cw = gen_cfun_wrapper (llvmmod, params, sig, ff, name, declrt, sigt, NULL , NULL , NULL );
7730+ auto alias = GlobalAlias::create (cw->getValueType (), cw->getType ()->getAddressSpace (),
7731+ GlobalValue::ExternalLinkage, name, cw, llvmmod);
7732+ if (params.TargetTriple .isOSBinFormatCOFF ()) {
7733+ alias->setDLLStorageClass (GlobalValue::DLLStorageClassTypes::DLLExportStorageClass);
77477734 }
77487735 JL_GC_POP ();
77497736 return name;
0 commit comments