]> git.eshelyaron.com Git - emacs.git/commitdiff
export native_compiled_emacs_lisp symbol and make it loadable.
authorAndrea Corallo <andrea_corallo@yahoo.it>
Fri, 16 Aug 2019 20:09:29 +0000 (22:09 +0200)
committerAndrea Corallo <akrl@sdf.org>
Wed, 1 Jan 2020 10:34:01 +0000 (11:34 +0100)
src/comp.c
src/emacs-module.c

index b150292041bd73692da82a2149c6d659a120ef77..e3343afc7ba0827d6dfab4ea1d06876d75707bbe 100644 (file)
@@ -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;
 }
 
index bbb0e3dadd94e44497476c29759857ab7e74546e..1ebcf19c2dabc9262954839d77d33646f2537088 100644 (file)
@@ -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");