From 311c278c5bb26291fbe6d2e28130c43a08dce096 Mon Sep 17 00:00:00 2001 From: Andrea Corallo Date: Fri, 16 Aug 2019 22:09:29 +0200 Subject: [PATCH] export native_compiled_emacs_lisp symbol and make it loadable. --- src/comp.c | 5 +++++ src/emacs-module.c | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/comp.c b/src/comp.c index b150292041b..e3343afc7ba 100644 --- a/src/comp.c +++ b/src/comp.c @@ -2500,6 +2500,11 @@ DEFUN ("comp-init-ctxt", Fcomp_init_ctxt, Scomp_init_ctxt, define_add1_sub1 (); define_negate (); + gcc_jit_context_new_global (comp.ctxt, + NULL, + GCC_JIT_GLOBAL_EXPORTED, + comp.int_type, + "native_compiled_emacs_lisp"); return Qt; } diff --git a/src/emacs-module.c b/src/emacs-module.c index bbb0e3dadd9..1ebcf19c2da 100644 --- a/src/emacs-module.c +++ b/src/emacs-module.c @@ -954,7 +954,7 @@ DEFUN ("module-load", Fmodule_load, Smodule_load, 1, 1, 0, { dynlib_handle_ptr handle; emacs_init_function module_init; - void *gpl_sym; + void *gpl_sym, *native_comp; CHECK_STRING (file); handle = dynlib_open (SSDATA (file)); @@ -962,7 +962,8 @@ DEFUN ("module-load", Fmodule_load, Smodule_load, 1, 1, 0, xsignal2 (Qmodule_open_failed, file, build_string (dynlib_error ())); gpl_sym = dynlib_sym (handle, "plugin_is_GPL_compatible"); - if (!gpl_sym) + native_comp = dynlib_sym (handle, "native_compiled_emacs_lisp"); + if (!gpl_sym && !native_comp) xsignal1 (Qmodule_not_gpl_compatible, file); module_init = (emacs_init_function) dynlib_func (handle, "emacs_module_init"); -- 2.39.5